

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

# クロスアカウントバケットアクセス
<a name="S3-buckets-cross-account-access"></a>

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

**ステップ 1: RES がデプロイされているアカウントに IAM ロールを作成します *(これはアカウント A と呼ばれます)*。**

1. S3 バケット (アカウント A) へのアクセスを必要とする RES アカウントの AWS マネジメントコンソールにサインインします。

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

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

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

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

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

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

   1. 次の JSON ポリシーを貼り付けます ( をアカウント B にある S3 バケットの名前`amzn-s3-demo-bucket`に置き換えます）。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:ListBucket",
                      "s3:DeleteObject",
                      "s3:AbortMultipartUpload"
                  ],
                  "Resource": [
                      "arn:aws:s3:::amzn-s3-demo-bucket",
                      "arn:aws:s3:::amzn-s3-demo-bucket/*"
                  ]
              }
          ]
      }
      ```

------

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

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

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

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

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

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

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

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

1. ロールを作成する:

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

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

   1. 次の JSON ポリシーを貼り付けます ( をアカウント A の実際のアカウント ID `111122223333`に置き換え、 を RES デプロイの環境名`{RES_ENVIRONMENT_NAME}`に置き換えます。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/<ENVIRONMENT_NAME>-vdc-custom-credential-broker-lambda-role"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

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

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

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

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

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

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

   1. ステップ 3 で、**タグの追加**を選択し、次のキーと値を入力します。
      + キー: `res:Resource` 
      + 値: `s3-bucket-iam-role` 

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

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

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

   1. RES コンソールにサインインします。

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

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

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

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

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

**ステップ 2: アカウント B でバケットポリシーを変更する**

1. アカウント B の AWS マネジメントコンソールにサインインします。

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

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

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

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

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

   1. 次のポリシーを追加して、アカウント A の IAM ロールにバケットへのアクセスを許可します (*111122223333* をアカウント A の実際のアカウント ID に置き換え、*amzn-s3-demo-bucket* を 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:::amzn-s3-demo-bucket",
                      "arn:aws:s3:::amzn-s3-demo-bucket/*"
                  ]
              }
          ]
      }
      ```

------

   1. **[保存]** を選択します。