我有两个主要和次要帐户。在主帐户中,我有一个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.