

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# インターフェイス VPC エンドポイントと Amazon Keyspaces の使用
<a name="vpc-endpoints"></a>

インターフェイス VPC エンドポイントでは、Amazon VPC で実行されている仮想プライベートクラウド (VPC) と Amazon Keyspaces 間のプライベート通信ができます。インターフェイス VPC エンドポイントは AWS PrivateLink、VPC と AWS AWS サービス間のVPCs。

AWS PrivateLink は、ネットワークトラフィックが Amazon ネットワークを離れないように、VPC 内のプライベート IP アドレスを持つ Elastic Network Interface を使用してこれを可能にします。インターフェイス VPC エンドポイントは、インターネットゲートウェイ、NAT デバイス、VPN 接続、または Direct Connect 接続を必要としません。詳細については、[「Amazon Virtual Private CloudAmazon」](https://docs.aws.amazon.com/vpc/latest/userguide/)(仮想プライベートクラウド) と[「Interface VPC endpoints (AWS PrivateLink)」](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)(インターフェイス VPC エンドポイント ()) を参照してください。

**Topics**
+ [Amazon Keyspaces 用インターフェイス VPC エンドポイントの使用](#using-interface-vpc-endpoints)
+ [インターフェイス VPC エンドポイント情報を含む `system.peers` テーブルエントリの入力](#system_peers)
+ [Amazon Keyspaces のインターフェイス VPC エンドポイントへのアクセスの制御](#interface-vpc-endpoints-policies)
+ [利用可能な状況](#availability)
+ [VPC エンドポイントポリシーと Amazon Keyspaces ポイントインタイムリカバリ (PITR)](#VPC_PITR_restore)
+ [よくあるエラーおよび警告](#vpc_troubleshooting)

## Amazon Keyspaces 用インターフェイス VPC エンドポイントの使用
<a name="using-interface-vpc-endpoints"></a>

Amazon Keyspaces と Amazon VPC リソース間のトラフィックがインターフェイス VPC エンドポイントを経由して流れるように、インターフェイス VPC エンドポイントを作成することができます。開始するには、[インターフェイスエンドポイントの作成](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint)手順を実行します。次に、前のステップで作成したエンドポイントに関連付けられたセキュリティグループを編集し、ポート 9142 のインバウンドルールを設定します。詳細については、[「Adding, removing, and updating rules」](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#AddRemoveRules)(ルールの追加、削除、および更新) を参照してください。

VPC エンドポイントを介して Amazon Keyspaces への接続を設定するステップバイステップのチュートリアルについては、「[チュートリアル: インターフェイス VPC エンドポイントを使用して Amazon Keyspaces に接続する](vpc-endpoints-tutorial.md)」を参照してください。VPC AWS アカウント 内の異なる のアプリケーションから分離された Amazon Keyspaces リソースのクロスアカウントアクセスを設定する方法については、「」を参照してください[VPC エンドポイントを使用して Amazon Keyspaces へのクロスアカウントアクセスを設定する](access.cross-account.md)。

## インターフェイス VPC エンドポイント情報を含む `system.peers` テーブルエントリの入力
<a name="system_peers"></a>

Apache Cassandra ドライバーにより、`system.peers` テーブルを使用してクラスターに関するノード情報のクエリが行われます。Cassandra ドライバーでは、ノード情報を使用して接続のロードバランスと再試行オペレーションが行われます。Amazon Keyspaces では、パブリックエンドポイント経由のクライアント接続のために、9 つのエントリが `system.peers` テーブルに自動で入力されます。

同様の機能を備えたインターフェイス VPC エンドポイントを経由するクライアント接続を実現するために、Amazon Keyspaces では、VPC エンドポイントを利用できる各アベイラビリティーゾーンのエントリが含まれているアカウント内で、`system.peers` テーブルへの入力が行われます。Amazon Keyspaces では、使用可能な VPC エンドポイントを探し出して `system.peers` テーブルに保存する場合、Amazon Keyspaces への接続に使用する IAM エンティティ対して、エンドポイントとネットワークインターフェイスの情報について VPC をクエリするためのアクセス許可を付与する必要があります。

**重要**  
`system.peers` テーブルに使用可能なインターフェイス VPC エンドポイントを入力することで、ロードバランシングが改善され、読み取り/書き込みスループットが向上します。全てのクライアントがインターフェイス VPC エンドポイントを使用して Amazon Keyspaces にアクセスすることが推奨され、Apache Spark に必要です。

Amazon Keyspaces への接続に使用する IAM エンティティに、必要なインターフェイス VPC エンドポイント情報を検索するための許可を付与するには、既存の IAM ロールまたはユーザーポリシーを更新するか、または、次の例に示すように新しい IAM ポリシーを作成します。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"ListVPCEndpoints",
         "Effect":"Allow",
         "Action":[
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeVpcEndpoints"
         ],
         "Resource":"*"
      }
   ]
}
```

**注記**  
管理ポリシー `AmazonKeyspacesReadOnlyAccess_v2` および `AmazonKeyspacesFullAccess` には、Amazon Keyspaces が Amazon EC2 インスタンスにアクセスして、使用可能なインターフェイス VPC エンドポイントに関する情報を読み取れるようにするために必要なアクセス権限が含まれています。

ポリシーが正しく設定されていることを確認するには、`system.peers` テーブルをクエリしてネットワーク情報を表示します。`system.peers` テーブルが空である場合は、ポリシーが正常に設定されなかったこと、または `DescribeNetworkInterfaces` と `DescribeVPCEndpoints` API アクションのリクエストレートクォータを超過していることを示している可能性があります。`DescribeVPCEndpoints` は `Describe*` カテゴリーになって*不変アクション*とみなされます。`DescribeNetworkInterfaces` は*フィルター処理とページ分割が施されていない不変アクション*のサブセットになり、別のクォータが適用されます。詳細については、「Amazon EC2 API Reference」(Amazon EC2 API リファレンス) の[「Request token bucket sizes and refill rates」](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/throttling.html#throttling-limits-rate-based)(リクエストトークンのバケットサイズと補充レート) を参照してください。

空のテーブルが表示された場合は、数分待ってから、リクエストレートクォータ問題の除外を再試行してください。VPC エンドポイントが正しく設定されていることを確認するには、「[VPC エンドポイント接続が正しく機能しない](troubleshooting.connecting.md#troubleshooting.connection.vpce)」を参照してください。クエリによりテーブルから結果が返された場合は、ポリシーが正しく設定されています。



## Amazon Keyspaces のインターフェイス VPC エンドポイントへのアクセスの制御
<a name="interface-vpc-endpoints-policies"></a>

VPC エンドポイントポリシーによって、次の 2 つの方法でリソースへのアクセスを制御できます。
+ **IAM ポリシー** – 特定の VPC エンドポイントを経由する Amazon Keyspaces へのアクセスを許可されているリクエスト、ユーザー、またはグループを管理できます。これを実行するには、IAM ユーザー、グループ、またはロールにアタッチされているポリシー内で[条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)を使用します。
+ **VPC ポリシー** — ポリシーをアタッチすることで、Amazon Keyspaces リソースへのアクセス権が付与されている VPC エンドポイントを制御できます。特定のキースペースまたはテーブルへのアクセスを制限して、特定の VPC エンドポイントを通過するトラフィックのみを許可するには、リソースアクセスを制限する既存のIAMポリシーを編集し、その VPC エンドポイントを追加します。



以下は、Amazon Keyspaces リソースにアクセスするためのエンドポイントポリシーです。
+ **IAM ポリシー例: トラフィックが指定 VPCエンドポイントからのものでない限り特定の Amazon Keyspaces テーブルへのすべてのアクセスを制限する** - このサンプルポリシーは IAM ユーザー、ロール、またはグループにアタッチできます。これにより、受信トラフィックが指定の VPC エンドポイントから発信されない限り、指定の Amazon Keyspaces テーブルへのアクセスが制限されます。

  ```
  {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
        {
           "Sid": "UserOrRolePolicyToDenyAccess",
           "Action": "cassandra:*",
           "Effect": "Deny",
           "Resource": [
                          "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable",
                          "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
             ],
           "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-abc123" } }
        }
     ]
  }
  ```
**注記**  
特定のテーブルへのアクセスを制限するには、システムテーブルへのアクセスも含める必要があります。システムテーブルは読み取り専用です。
+ **VPC ポリシーの例: 読み取り専用アクセス** - このサンプルポリシーは VPC エンドポイントにアタッチできます。詳細については、[「Controlling access to Amazon VPC resources」](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html#vpc-endpoint-policies)(Amazon VPC のリソースに対するアクセスの制御) を参照してください。これにより、このポリシーがアタッチされている VPC エンドポイントを経由する Amazon Keyspaces リソースへの読み取り専用アクセスに、アクションが制限されます。

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "ReadOnly",
        "Principal": "*",
        "Action": [
          "cassandra:Select"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```
+ **VPC ポリシーの例: 特定の Amazon Keyspaces テーブルへのアクセスを制限する** - このサンプルポリシーは VPC エンドポイントにアタッチできます。これにより、このポリシーがアタッチされている VPC エンドポイントを経由する特定のデータストリームへのアクセスが制限されます。

  ```
  {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
          {
              "Sid": "RestrictAccessToTable",
              "Principal": "*",
              "Action": "cassandra:*",
              "Effect": "Allow",
              "Resource": [
                          "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable",
                          "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
             ]
          }
     ]
  }
  ```
**注記**  
特定のテーブルへのアクセスを制限するには、システムテーブルへのアクセスも含める必要があります。システムテーブルは読み取り専用です。

## 利用可能な状況
<a name="availability"></a>

Amazon Keyspaces は、 AWS リージョン サービスが利用可能なすべての でインターフェイス VPC エンドポイントの使用をサポートしています。詳細については、「[Amazon Keyspaces のサービスエンドポイント](programmatic.endpoints.md)」を参照してください。

## VPC エンドポイントポリシーと Amazon Keyspaces ポイントインタイムリカバリ (PITR)
<a name="VPC_PITR_restore"></a>

IAM ポリシーを[条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)とともに使用して受信トラフィックを制限している場合は、テーブルの復元オペレーションが失敗することがあります。例えば、`aws:SourceVpce` 条件キーを使用してソーストラフィックを特定のエンドポイントに制限している場合、テーブルの復元オペレーションは失敗します。プリンシパルの代わりに Amazon Keyspaces によって復元オペレーションが実行されるようにするには、IAM ポリシーに `aws:ViaAWSService` 条件キーを追加する必要があります。`aws:ViaAWSService` 条件キーは、任意の AWS サービスがプリンシパルの認証情報を使用してリクエストを行うときにアクセスを許可します。詳細については、*「IAM ユーザーガイド」*の[「IAM JSON policy elements: Condition key」](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)(IAM JSON ポリシー要素: 条件キー) を参照してください。以下のポリシーはこの例です。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CassandraAccessForVPCE",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"false"
            },
            "StringEquals":{
               "aws:SourceVpce":[
                  "vpce-12345678901234567"
               ]
            }
         }
      },
      {
         "Sid":"CassandraAccessForAwsService",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"true"
            }
         }
      }
   ]
}
```

## よくあるエラーおよび警告
<a name="vpc_troubleshooting"></a>

**Amazon Virtual Private Cloud を使用していて Amazon Keyspaces に接続すると、次の警告が表示される場合があります。**

```
Control node cassandra.us-east-1.amazonaws.com/1.111.111.111:9142 has an entry for itself in system.peers: this entry will be ignored. This is likely due to a misconfiguration; 
please verify your rpc_address configuration in cassandra.yaml on all nodes in your cluster.
```

この警告は、接続している Amazon VPC エンドポイントを含め、Amazon Keyspaces が表示権限を持つすべての Amazon VPC エンドポイントのエントリが `system.peers` テーブルに含まれているために発生します。この警告を無視しても問題ありません。

その他のエラーについては、「[VPC エンドポイント接続が正しく機能しない](troubleshooting.connecting.md#troubleshooting.connection.vpce)」を参照してください。