主账户允许辅助账户访问bucket,但辅助账户在同一bucket内创建的数据不能被主账户访问



我有两个主要次要帐户。在主帐户中,我有一个S3 bucket,比如说com.primary.backets.1.

在该bucket上,我的辅助帐户通过ACL具有读写权限

辅助帐户创建新密钥时,比如说sub/sub2/name.txt,主帐户具有列表(仅)访问权限,并且不能下载、修改甚至添加密钥sub/different_sub/new_key.txt(403权限错误)。

有趣的是,主帐户无法访问自己存储桶中的内容!!!

这让我很沮丧。有人知道如何允许主帐户访问主存储桶中测试帐户创建的数据吗?

主账户中存储桶的ACL:

{
    "Version": "2008-10-17",
    "Id": "PolicyXXXXXXXXXX",
    "Statement": [
        {
            "Sid": "PolicyXXXXXXXXXX",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<secondary account ID>:root"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::com.primary.buckets.1/*",
                "arn:aws:s3:::com.primary.buckets.1"
            ]
        }
    ]
}

我认为应该在密钥本身设置ACL,允许访问所有经过身份验证的用户。默认情况下,对象只允许其所有者(创建者)访问。

对于PHP,我在下面链接了创建对象(和设置ACL)的文档:http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html#_putObject.

最新更新