翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
共有 VPC を利用せずに Amazon Keyspaces へのクロスアカウントアクセスを設定する
Amazon Keyspaces テーブルとプライベート VPC エンドポイントを別のアカウントが所有していて、VPC を共有していない場合でも、アプリケーションは VPC エンドポイントを使用してクロスアカウントに接続できます。アカウントは VPC エンドポイントを共有していないため、Account A
、Account B
、Account C
には独自の VPC エンドポイントが必要です。Cassandra クライアントドライバーは、Amazon Keyspaces はマルチノードクラスターではなく単一ノードとして認識します。接続すると、クライアントドライバーは DNS サーバーにアクセスし、DNS サーバーはアカウントの VPC で使用可能なエンドポイントの 1 つを返します。
パブリックエンドポイントを使用するか、各アカウントにプライベート VPC エンドポイントをデプロイすることで、共有 VPC エンドポイントを使用せずに、異なるアカウントの Amazon Keyspaces テーブルにアクセスすることもできます。共有 VPC を使用しない場合、各アカウントには独自の VPC エンドポイントが必要です。この例では、Account A
、Account B
、Account C
が Account A
のテーブルにアクセスするには独自の VPC エンドポイントが必要です。この設定で VPC エンドポイントを使用する場合、Cassandra クライアントドライバーに、Amazon Keyspaces は、マルチノードクラスターではなく単一ノードクラスターとして認識されます。接続すると、クライアントドライバーは DNS サーバーにアクセスし、DNS サーバーはアカウントの VPC で使用可能なエンドポイントの 1 つを返します。ただし、クライアントドライバーは system.peers
テーブルにアクセスして追加のエンドポイントを検出することはできません。利用できるホストの数が少ないため、ドライバーによる接続数は少なくなります。これを調整するには、ドライバーの接続プール設定を 3 倍に増やします。

Account A
は、 Account B
がアクセスAccount C
する必要があるリソース (Amazon Keyspaces テーブル) を含むアカウントであり、 Account A
は信頼するアカウントです。 Account B
と Account C
は、 のリソース (Amazon Keyspaces テーブル) へのアクセスを必要とするプリンシパルを持つアカウントでありAccount A
、 Account B
と Account C
は信頼されたアカウントです。信頼するアカウントは IAM ロールを共有して、信頼されたアカウントに権限を与えます。次の手順では、Account A
に必要な設定ステップを簡単に説明します。
Account A
の設定
で Amazon Keyspaces キースペースとテーブルを作成します
Account A
。Amazon Keyspaces テーブルへのフルアクセスと Amazon Keyspaces システムテーブルへの読み取りアクセス権
Account A
を持つ IAM ロールを に作成します。{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "cassandra:Select", "cassandra:Modify" ], "Resource":[ "arn:aws:cassandra:region:Account-A:/keyspace/mykeyspace/table/mytable", "arn:aws:cassandra:region:Account-A:/keyspace/system*" ] } ] }
と のプリンシパルが信頼
Account B
Account C
されたアカウントとしてロールを引き受けAccount A
られるように、 で IAM ロールの信頼ポリシーを設定します。以下の例ではこれを示しています。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB:role/Cross-Account-Role-B", "AWS": "arn:aws:iam::AccountC:role/Cross-Account-Role-C" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
クロスアカウント IAM ポリシーの詳細については、『IAM ユーザーガイド』の「クロスアカウントポリシー」を参照してください。
で VPC エンドポイントを設定し
Account A
、VPC エンドポイントAccount A
を使用してAccount B
と のロールが でロールを引き受けることを許可するアクセス許可をエンドポイントAccount C
にアタッチします。これらのアクセス許可は、アタッチされている VPC エンドポイントに対して有効です。VPC エンドポイントポリシーの詳細については、「Amazon Keyspaces のインターフェイス VPC エンドポイントへのアクセスの制御」を参照してください。{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-from-specific-IAM-roles", "Effect": "Allow", "Principal": "*", "Action": "cassandra:*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": "arn:aws:iam::AccountB:role/Cross-Account-Role-B", "aws:PrincipalArn": "arn:aws:iam::AccountC:role/Cross-Account-Role-C" } } } ] }
Account B
と Account C
における設定
Account B
とAccount C
で新しいロールを作成し、Account A
で作成した共有ロールをプリンシパルが引き受けることを許可する以下のポリシーをアタッチします。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::Account-A:role/keyspaces_access" } }
プリンシパルが共有ロールを引き受けることを許可するには、 AWS Security Token Service () の
AssumeRole
API を使用しますAWS STS。詳細については、「IAM ユーザーガイド」の「自分が所有する別の の IAM ユーザーへのアクセスを提供する AWS アカウント」を参照してください。Account B
および ではAccount C
、SIGV4 認証プラグインを使用するアプリケーションを作成できます。これにより、アプリケーションは共有ロールを引き受けて、 にある Amazon Keyspaces テーブルに接続できますAccount A
。SIGV4 認証プラグインの詳細については、「Amazon Keyspaces にプログラムによってアクセスするための認証情報を作成する 」を参照してください。別の AWS アカウントでロールを引き受けるようにアプリケーションを設定する方法の詳細については、 SDK およびツールリファレンスガイドの「認証とアクセス」を参照してください。 AWS SDKs