

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

# ステップ 4: VPC エンドポイント接続の権限を設定する
<a name="vpc-endpoints-tutorial.permissions"></a>

このステップの手順では、Amazon Keyspaces でVPC エンドポイントを使用するためのルールと権限の設定方法を説明します。

**TCP インバウンドトラフィックを許可するインバウンドルールを新しいエンドポイントに設定するには**

1. Amazon VPC コンソールの左側のパネルで、[**エンドポイント**] を選択し、前のステップで作成したエンドポイントを選択します。

1. **セキュリティグループの管理**を選択し、このエンドポイントに関連付けられたセキュリティグループを選択します。

1. [**インバウンドルール**] を選択し、[**インバウンドルールを編集**] を選択します。

1. インバウンドルールを追加し、**[タイプ]** を **[CQLSH/CASSANDRA]** にします。これにより、**[ポート範囲]** が自動的に **[9142]** に設定されます。

1. 新しいインバウンドルールを保存するには、[**ルールを保存**] を選択します。

**IAM ユーザーの権限を設定するには**

1. Amazon Keyspaces までの接続に使用する IAM ユーザーに、適切な権限があることを確認します。 AWS Identity and Access Management (IAM) では、 AWS 管理ポリシーを使用して`AmazonKeyspacesReadOnlyAccess`、IAM ユーザーに Amazon Keyspaces への読み取りアクセスを許可できます。

   1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

   1. IAM コンソールダッシュボードで [**Users (ユーザー)**] を選択してから、リストから IAM ユーザーを選択します。

   1. [**Summary (概要)**] ページで、[**Add permissions (許可の追加)**] を選択します。

   1. **[Attach existing policies directly (既存のポリシーを直接アタッチする)**] を選択します。

   1. ポリシーリストから **AmazonKeyspacesReadOnlyAccess**、[**Next: Review (次へ: 確認)**] を選択します。

   1. [**Add permissions (許可の追加)**] を選択します。

1. VPC エンドポイント経由で Amazon Keyspaces にアクセスできることを確認します。

   ```
   aws keyspaces list-tables --keyspace-name 'my_Keyspace'
   ```

   必要に応じて、Amazon Keyspaces の他の AWS CLI コマンドを試すことができます。詳細については、『[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)』を参照してください。
**注記**  
以下のポリシーにあるように、IAM ユーザーやロールが Amazon Keyspaces にアクセスに最低限必要な権限は、システムテーブルの読み取り権限です。このポリシーベースの許可に関する詳細については、「[Amazon Keyspaces のアイデンティティベースポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "cassandra:Select"
            ],
            "Resource":[
               "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
            ]
         }
      ]
   }
   ```

1. IAM ユーザーに VPC の Amazon EC2 インスタンスの読み取りアクセス権限を与えます。

   Amazon Keyspaces を VPC エンドポイントで使用するとき、Amazon Keyspaces にアクセスする IAM ユーザーまたはロールに、*Amazon EC2 インスタンスと VPC に対する読み取り専用アクセス権限を設定して、エンドポイントとネットワークインターフェイスのデータを収集する必要があります*。Amazon Keyspaces はこの情報を `system.peers` テーブルに保存し、それで接続を管理します。
**注記**  
管理ポリシー `AmazonKeyspacesReadOnlyAccess_v2` と `AmazonKeyspacesFullAccess` には、Amazon Keyspaces が Amazon EC2 インスタンスにアクセスして、使用可能なインターフェイス VPC エンドポイントに関する情報を読み取るためのアクセス権限が設定されています。

   1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

   1. IAM コンソールのダッシュボードで [**ポリシー**] を選択します。

   1. [**ポリシーを作成**] を選択し、[**JSON**] タブを選択します。

   1. 次のポリシーをコピーして [**次へ: タグ**] を選択します。

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

   1. [**ポリシーを確認**] を選択してポリシーの名前 `keyspacesVPCendpoint` を入力し、[**ポリシーを作成**] を選択します。

   1. IAM コンソールダッシュボードで [**Users (ユーザー)**] を選択して、リストから IAM ユーザーを選択します。

   1. [**Summary (概要)**] ページで、[**Add permissions (許可の追加)**] を選択します。

   1. **[Attach existing policies directly (既存のポリシーを直接アタッチする)**] を選択します。

   1. ポリシーリストから [**keyspacesVPCendpoint**] を選択し、次に [**Next: Review (次へ: 確認)**] を選択します。

   1. [**Add permissions (許可の追加)**] を選択します。

1. Amazon Keyspaces `system.peers` テーブルが VPC 情報で更新されていることを確認するには、`cqlsh` で Amazon EC2 インスタンスから次のクエリを実行します。ステップ 2 で Amazon EC2 インスタンスに `cqlsh` をインストールしていない場合は、[`cqlsh-expansion` による Amazon Keyspaces までの接続](programmatic.cqlsh.md#using_cqlsh) の指示に従ってください。

   ```
   SELECT * FROM system.peers;
   ```

   出力は、 AWS リージョンの VPC とサブネットの設定に応じて、プライベート IPv6 IP アドレスを持つノードを返します。

   ```
    peer                                    | data_center | host_id                              | preferred_ip                            | rack      | release_version | rpc_address                             | schema_version                       | tokens
   -----------------------------------------+-------------+--------------------------------------+-----------------------------------------+-----------+-----------------+-----------------------------------------+--------------------------------------+---------------------------------------------
     2600:1111:2222:3333:283b:8e6:d04f      |   us-east-1 | dddddddd-7a22-3582-a73d-49338a686a53 |  2600:1111:2222:3333:283b:8e6:d04f      | us-east-1 |          3.11.2 |  2600:1111:2222:3333:283b:8e6:d04f      | 05deae2d-6405-494d-a965-c0e5836bcb3c |  {'85070591730234615865843651857942052863'}
    2600:1111:2222:4444:7d26:5a09:1b44      |   us-east-1 | 66666666-035d-37ef-a247-19a6a867ab09 | 2600:1111:2222:4444:7d26:5a09:1b44      | us-east-1 |          3.11.2 | 2600:1111:2222:4444:7d26:5a09:1b44      | 05deae2d-6405-494d-a965-c0e5836bcb3c | {'170141183460469231731687303715884105726'}
   ```
**注記**  
Amazon Keyspaces までの `cqlsh` 接続で、VPC エンドポイントが正しく設定されていることを確認してください。ローカル環境または AWS マネジメントコンソールの Amazon Keyspaces CQL エディタを使用する場合、接続ルートは VPC エンドポイントではなくパブリックエンドポイントを自動的に経由します。9 個の IP アドレスが表示される場合、これらはパブリックエンドポイント接続の際に Amazon Keyspaces によって `system.peers` テーブルに自動的に書き込まれるエントリです。