クロスアカウントバケットアクセス - Research and Engineering Studio

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

クロスアカウントバケットアクセス

RES は、これらのバケットに適切なアクセス許可がある場合、他の AWS アカウントからバケットをマウントできます。次のシナリオでは、アカウント A の RES 環境がアカウント B に S3 バケットをマウントしたいと考えています。

ステップ 1: RES がデプロイされているアカウントに IAM ロールを作成します (これはアカウント A と呼ばれます)
  1. S3 バケット (アカウント A) へのアクセスを必要とする RES アカウントの AWS マネジメントコンソールにサインインします。

  2. IAM コンソールを開きます。

    1. IAM ダッシュボードに移動します。

    2. ナビゲーションペインで、ポリシー を選択してください。

  3. ポリシーを作成する:

    1. [Create policy] (ポリシーの作成) を選択します。

    2. [JSON] タブを選択します。

    3. 次の JSON ポリシーを貼り付けます ( をアカウント B にある S3 バケットの名前<BUCKET-NAME>に置き換えます)。

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::<BUCKET-NAME>", "arn:aws:s3:::<BUCKET-NAME>/*" ] } ] }
    4. [次へ] を選択します。

  4. ポリシーを確認して作成します。

    1. ポリシーの名前を指定します (例: "S3AccessPolicy")。

    2. ポリシーの目的を説明するオプションの説明を追加します。

    3. ポリシーを確認し、ポリシーの作成を選択します。

  5. IAM コンソールを開きます。

    1. IAM ダッシュボードに移動します。

    2. ナビゲーションペインで Roles (ロール) を選択してください。

  6. ロールを作成する:

    1. [ロールの作成] を選択してください。

    2. 信頼されたエンティティのタイプとしてカスタム信頼ポリシーを選択します。

    3. 次の JSON ポリシーを貼り付けます ( をアカウント A の実際のアカウント ID <ACCOUNT_ID>に置き換え、 を RES デプロイの環境名<ENVIRONMENT_NAME>に置き換えます。

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNT_ID>:role/<ENVIRONMENT_NAME>-custom-credential-broker-lambda-role-<REGION>" }, "Action": "sts:AssumeRole" } ] }
    4. [次へ] を選択します。

  7. アクセス許可ポリシーをアタッチする:

    1. 前に作成したポリシーを検索して選択します。

    2. [次へ] を選択します。

  8. ロールのタグ付け、確認、作成:

    1. ロール名 (S3AccessRole」など) を入力します。

    2. ステップ 3 で、タグの追加を選択し、次のキーと値を入力します。

      • キー: res:Resource

      • 値: s3-bucket-iam-role

    3. ロールを確認し、ロールの作成を選択します。

  9. RES で IAM ロールを使用します。

    1. 作成した IAM ロール ARN をコピーします。

    2. RES コンソールにログインします。

    3. 左側のナビゲーションペインで、S3 バケットを選択します。

    4. バケットの追加を選択し、フォームにクロスアカウントの S3 バケット ARN を入力します。

    5. 詳細設定 - オプションのドロップダウンを選択します。

    6. IAM ロール ARN フィールドにロール ARN を入力します。

    7. バケットの追加 を選択します。

ステップ 2: アカウント B でバケットポリシーを変更する
  1. アカウント B の AWS マネジメントコンソールにサインインします。

  2. S3 コンソールを開きます。

    1. S3 ダッシュボードに移動します。

    2. アクセスを許可するバケットを選択します。

  3. バケットポリシーを編集します。

    1. アクセス許可タブを選択し、バケットポリシーを選択します。

    2. 次のポリシーを追加して、アカウント A からバケットへのアクセス権を IAM ロールに付与します (<AccountA_ID> をアカウント A の実際のアカウント ID に置き換え、<BUCKET-NAME> を S3 バケットの名前に置き換えます)。

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/S3AccessRole" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::<BUCKET-NAME>", "arn:aws:s3:::<BUCKET-NAME>/*" ] } ] }
    3. [保存] を選択します。