跨帳戶儲存貯體存取 - 研究與工程 Studio

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

跨帳戶儲存貯體存取

RES 能夠從其他 AWS 帳戶掛載儲存貯體,前提是這些儲存貯體具有適當的許可。在下列案例中,帳戶 A 中的 RES 環境想要在帳戶 B 中掛載 S3 儲存貯體。

步驟 1:在部署 RES 的帳戶中建立 IAM 角色 (這將稱為帳戶 A)
  1. 登入需要存取 S3 儲存貯體 (帳戶 A) 之 RES 帳戶的 AWS 管理主控台。

  2. 開啟 IAM 主控台:

    1. 導覽至 IAM 儀表板。

    2. 在導覽窗格中,選擇政策

  3. 建立政策:

    1. 選擇建立政策

    2. 選取 JSON 標籤。

    3. 貼上下列 JSON 政策 (<BUCKET-NAME>以帳戶 B 中的 S3 儲存貯體名稱取代):

      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. 在導覽窗格中,選擇角色

  6. 建立角色:

    1. 選擇建立角色

    2. 選擇自訂信任政策作為信任實體的類型。

    3. 貼上下列 JSON 政策 (<ACCOUNT_ID>以帳戶 A 的實際帳戶 ID 取代,<ENVIRONMENT_NAME>並以 RES 部署的環境名稱取代:

      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. 選擇儲存