

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

# 共有 VPC を利用せずに Amazon Keyspaces へのクロスアカウントアクセスを設定する
<a name="access.cross-account.noVPC.setup"></a>

Amazon Keyspaces テーブルとプライベート VPC エンドポイントを別のアカウントが所有していて、VPC を共有していない場合でも、アプリケーションは VPC エンドポイントを使用してクロスアカウントに接続できます。アカウントは VPC エンドポイントを共有していないため、`Account A:111111111111`、`Account B:222222222222` 、`Account C:333333333333` には独自の VPC エンドポイントが必要です。Cassandra クライアントドライバーは、Amazon Keyspaces はマルチノードクラスターではなく単一ノードとして認識します。接続すると、クライアントドライバーは DNS サーバーにアクセスし、DNS サーバーはアカウントの VPC で使用可能なエンドポイントの 1 つを返します。

パブリックエンドポイントを使用するか、各アカウントにプライベート VPC エンドポイントをデプロイすることで、共有 VPC エンドポイントなしで異なるアカウントの Amazon Keyspaces テーブルにアクセスすることもできます。共有 VPC を使用しない場合、各アカウントには独自の VPC エンドポイントが必要です。この例では、`Account A:111111111111`、`Account B:222222222222`、`Account C:333333333333` が `Account A:111111111111` のテーブルにアクセスするには独自の VPC エンドポイントが必要です。この設定で VPC エンドポイントを使用する場合、Cassandra クライアントドライバーに、Amazon Keyspaces は、マルチノードクラスターではなく単一ノードクラスターとして認識されます。接続すると、クライアントドライバーは DNS サーバーにアクセスし、DNS サーバーはアカウントの VPC で使用可能なエンドポイントの 1 つを返します。ただし、クライアントドライバーは `system.peers` テーブルにアクセスして追加のエンドポイントを検出することはできません。利用できるホストの数が少ないため、ドライバーによる接続数は少なくなります。これを調整するには、ドライバーの接続プール設定を 3 倍に増やします。

![\[共有 VPC がない同じ AWS リージョン 内の同じ組織に属する 3 つの異なるアカウントを示す図\]](http://docs.aws.amazon.com/ja_jp/keyspaces/latest/devguide/images/keyspaces_cross-account_noVPC.png)


`Account A:111111111111` は、 `Account B:222222222222`がアクセス`Account C:333333333333`する必要があるリソース (Amazon Keyspaces テーブル) を含むアカウントであり、 `Account A:111111111111` は*信頼する*アカウントです。 `Account B:222222222222`と `Account C:333333333333`は、 のリソース (Amazon Keyspaces テーブル) にアクセスする必要があるプリンシパルを持つアカウントであり`Account A:111111111111`、 `Account B:222222222222` と `Account C:333333333333`は*信頼*されたアカウントです。信頼するアカウントは IAM ロールを共有して、信頼されたアカウントに権限を与えます。次の手順では、`Account A:111111111111` に必要な設定ステップを簡単に説明します。

**`Account A:111111111111` の設定**

1. で Amazon Keyspaces キースペースとテーブルを作成します`Account A:111111111111`。

1. Amazon Keyspaces テーブルへのフルアクセスと Amazon Keyspaces システムテーブルへの読み取りアクセス権`Account A:111111111111`を持つ IAM ロールを に作成します。

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

1. と のプリンシパルが信頼`Account B:222222222222``Account C:333333333333`されたアカウントとしてロールを引き受け`Account A:111111111111`られるように、 で IAM ロールの信頼ポリシーを設定します。以下の例ではこれを示しています。

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": [
             "arn:aws:iam::222222222222:role/Cross-Account-Role-B",
             "arn:aws:iam::333333333333:role/Cross-Account-Role-C"
           ]
         },
         "Action": "sts:AssumeRole",
         "Condition": {}
       }
     ]
   }
   ```

   クロスアカウント IAM ポリシーの詳細については、『IAM ユーザーガイド』の「[クロスアカウントポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html)」を参照してください。

1. で VPC エンドポイントを設定し`Account A:111111111111`、VPC エンドポイント`Account A`を使用して `Account B:222222222222`と のロールが でロールを引き受けることを許可するアクセス許可をエンドポイント`Account C:333333333333`にアタッチします。これらのアクセス許可は、アタッチされている VPC エンドポイントに対して有効です。VPC エンドポイントポリシーの詳細については、「[Amazon Keyspaces のインターフェイス VPC エンドポイントへのアクセスの制御](vpc-endpoints.md#interface-vpc-endpoints-policies)」を参照してください。

   ```
   {{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowAccessfromSpecificIAMroles",
         "Effect": "Allow",
         "Action": "cassandra:*",
         "Resource": "*",
         "Principal": "*",
         "Condition": {
           "ArnEquals": {
             "aws:PrincipalArn": [
               "arn:aws:iam::222222222222:role/Cross-Account-Role-B",
               "arn:aws:iam::333333333333:role/Cross-Account-Role-C"
             ]
           }
         }
       }
     ]
   }
   ```

**`Account B:222222222222` と `Account C:333333333333` における設定**

1. `Account B:222222222222` と `Account C:333333333333` で新しいロールを作成し、`Account A:111111111111` で作成した共有ロールをプリンシパルが引き受けることを許可する以下のポリシーをアタッチします。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": {
               "Effect": "Allow",
               "Action": "sts:AssumeRole",
               "Resource": "arn:aws:iam::111111111111:role/keyspaces_access"
           }
   }
   ```

   プリンシパルが共有ロールを引き受けることを許可するには、 AWS Security Token Service () の `AssumeRole` API を使用しますAWS STS。詳細については、[「IAM ユーザーガイド」の「所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)」を参照してください。

1. `Account B:222222222222` および では`Account C:333333333333`、SIGV4 認証プラグインを使用するアプリケーションを作成できます。これにより、アプリケーションは共有ロールを引き受けて、 にある Amazon Keyspaces テーブルに接続できます`Account A:111111111111`。SIGV4 認証プラグインの詳細については、「[Amazon Keyspaces にプログラムによってアクセスするための認証情報を作成する](programmatic.credentials.md)」を参照してください。別の AWS アカウントでロールを引き受けるようにアプリケーションを設定する方法の詳細については、 SDK およびツールリファレンスガイドの[「認証とアクセス](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)」を参照してください。 *AWS SDKs *