翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
共有 VPC を利用せずに Amazon Keyspaces へのクロスアカウントアクセスを設定する
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 倍に増やします。
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 の設定
で Amazon Keyspaces キースペースとテーブルを作成します
Account A:111111111111。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*" ] } ] }と のプリンシパルが信頼
Account B:222222222222Account 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 ユーザーガイド』の「クロスアカウントポリシー」を参照してください。
で VPC エンドポイントを設定し
Account A:111111111111、VPC エンドポイントAccount Aを使用してAccount B:222222222222と のロールが でロールを引き受けることを許可するアクセス許可をエンドポイントAccount C:333333333333にアタッチします。これらのアクセス許可は、アタッチされている VPC エンドポイントに対して有効です。VPC エンドポイントポリシーの詳細については、「Amazon Keyspaces のインターフェイス VPC エンドポイントへのアクセスの制御」を参照してください。{{ "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 における設定
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 () の
AssumeRoleAPI を使用しますAWS STS。詳細については、「IAM ユーザーガイド」の「所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する」を参照してください。Account B:222222222222および ではAccount C:333333333333、SIGV4 認証プラグインを使用するアプリケーションを作成できます。これにより、アプリケーションは共有ロールを引き受けて、 にある Amazon Keyspaces テーブルに接続できますAccount A:111111111111。SIGV4 認証プラグインの詳細については、「Amazon Keyspaces にプログラムによってアクセスするための認証情報を作成する 」を参照してください。別の AWS アカウントでロールを引き受けるようにアプリケーションを設定する方法の詳細については、 SDK およびツールリファレンスガイドの「認証とアクセス」を参照してください。 AWS SDKs