跳至內容

如何授與其他 AWS 帳戶中的使用者權限,使其能將物件上傳到我的 Amazon S3 儲存貯體?

1 分的閱讀內容
0

我想授予另一個帳戶中的 AWS Identity and Access Management (IAM) 使用者,存取我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體的權限。此外,我想授予跨帳戶存取權,讓使用者可以將物件上傳到我的 Amazon S3 儲存貯體。

解決方法

若要授予帳戶 A 中的 IAM 使用者將物件上傳到帳戶 B 中的 S3 儲存貯體的權限,請依照下列步驟操作:

  1. 從帳戶 A,將政策附加到 IAM 使用者。此政策必須允許使用者在帳戶 B 中的儲存貯體上執行 s3:PutObjects3:PutObjectAcl 動作:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
          ],
          "Resource": [
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
          ]
        }
      ]
    }

    **注意:**在為上傳指定物件存取控制清單 (ACL) 之前,您必須擁有 s3:PutObjectAcl 權限。否則,當您上傳包含 ACL (例如 bucket-owner-full control ACL) 的物件時,您會收到 Access Denied 錯誤。

  2. 從帳戶 A 取得 IAM 使用者的 Amazon Resource Name (ARN)

  3. 從帳戶 B 附加一個儲存貯體政策,該政策會授予帳戶 A 中的 IAM 使用者執行 s3:PutObjects3:PutObjectAcl 動作的權限:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "DelegateS3Access",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::999999999999:user/UploadData"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
          ],
          "Resource": [
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
          ]
        }
      ]
    }

    **重要:**對於 Principal (主體) 的值,請務必輸入帳戶 A 中 IAM 使用者的 ARN。

IAM 使用者現在可以將物件上傳到 Amazon S3。

相關資訊

範例 2: 儲存貯體擁有者授予跨帳戶儲存貯體權限