共有 VPC の VPC エンドポイントを使用して Amazon Keyspaces へのクロスアカウントアクセスを設定する - Amazon Keyspaces (Apache Cassandra 向け)

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

共有 VPC の VPC エンドポイントを使用して Amazon Keyspaces へのクロスアカウントアクセスを設定する

異なる を作成して AWS アカウント 、アプリケーションからリソースを分離できます。たとえば、Amazon Keyspaces テーブル用に 1 つのアカウントを作成し、開発環境のアプリケーション用に別のアカウントを作成し、本番環境のアプリケーション用に別のアカウントを作成するといったことができます。このトピックでは、共有 VPC のインターフェイス VPC エンドポイントを使用した Amazon Keyspaces のクロスアカウントアクセスを設定するために必要な設定手順を順を追って説明します。

Amazon Keyspaces の VPC エンドポイントを設定する方法の詳細な手順については、「ステップ 3: Amazon Keyspaces 用の VPC エンドポイントを作成する」を参照してください。

この例では、共有 VPC で次の 3 つのアカウントを使用します。

  • Account A:111111111111 — このアカウントには、VPC エンドポイント、VPC サブネット、Amazon Keyspaces テーブルなどのインフラストラクチャが含まれています。

  • Account B:222222222222 — このアカウントには、Account A:111111111111 の Amazon Keyspaces テーブルに接続する必要がある開発環境のアプリケーションが含まれています。

  • Account C:333333333333 — このアカウントには、Account A:111111111111 の Amazon Keyspaces テーブルに接続する必要がある本番環境のアプリケーションが含まれています。

同じ AWS リージョン 内の同じ組織が所有し、共有 VPC を使用する 3 つの異なるアカウントを示す図。

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

Account A:111111111111 の設定
  1. AWS Resource Access Manager を使用してサブネットのリソース共有を作成し、プライベートサブネットを Account B:222222222222および と共有しますAccount C:333333333333

    Account B:222222222222Account C:333333333333 は、共有されているサブネット内のリソースを表示し、作成できます。

  2. を使用した Amazon Keyspaces プライベート VPC エンドポイントを作成します AWS PrivateLink。これにより、Amazon Keyspaces サービスエンドポイントの共有サブネットと DNS エントリに複数のエンドポイントが作成されます。

  3. Amazon Keyspaces キースペースとテーブルを作成します。

  4. 次のポリシー例に示すように、Amazon Keyspaces テーブルへのAccount A:111111111111フルアクセス、Amazon Keyspaces システムテーブルへの読み取りアクセス、Amazon EC2 VPC リソースを記述できる IAM ロールを に作成します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountAccess", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "cassandra:*" ], "Resource": "*" } ] }
  5. 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 ユーザーガイド』の「クロスアカウントポリシー」を参照してください。

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    プリンシパルが共有ロールを引き受けることを許可するには、 AWS Security Token Service () の AssumeRole API を使用しますAWS STS。詳細については、「IAM ユーザーガイド」の「自分が所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する」を参照してください。

  2. Account B:222222222222Account C:333333333333 では、SIGV4 認証プラグインを利用するアプリケーションを作成できます。これにより、アプリケーションは共有ロールを引き受け、共有 VPC の VPC エンドポイントを介して Account A:111111111111 にある Amazon Keyspaces テーブルに接続できます。SIGV4 認証プラグインの詳細については、「Amazon Keyspaces にプログラムによってアクセスするための認証情報を作成する 」を参照してください。別の AWS アカウントでロールを引き受けるようにアプリケーションを設定する方法の詳細については、 SDK およびツールリファレンスガイドの「認証とアクセス」を参照してください。 AWS SDKs