我希望其他 AWS 账户中的 AWS Identity and Access Management (IAM) 用户能够将对象上传到我的 Amazon Simple Storage Service (Amazon S3) 存储桶。我该如何授予这种跨账户访问权限?

按照以下步骤操作,授予一个账户(账户 A)中的 IAM 用户向另一个账户(账户 B)中的 S3 存储桶上传对象的访问权限:

1.    在账户 A 中,向 IAM 用户附加一条策略,允许该用户在账户 B 的存储桶上运行 s3:PutObjects3:ListBucket 操作,类似于下面的例子:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*"
            ]
        }
    ]
}

2.    在账户 A 中,获取 IAM 用户的 Amazon 资源名称 (ARN)

3.    在账户 B 中,附加一条存储桶策略,授权账户 A 中的 IAM 用户运行 s3:PutObjects3:ListBucket 操作,类似于下面的例子:

重要提示:对于 Principal 的值,请务必输入账户 A 中 IAM 用户的 ARN。

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

设置好账户 A 中的 IAM 用户策略、账户 B 中的存储桶策略之后,IAM 用户即可将对象上传到存储桶。


此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2019 年 1 月 22 日