这是情况:
->在S3控制台中浏览时,由A_2上传的文件可以完全控制A_1。
但 -Cloudfront拒绝访问A_2拥有的文件(在A_1拥有的文件上工作良好) -使用S3网站网址,我可以访问A_1拥有的文件(存储桶中的公共ACL),但不能访问A_2拥有的文件
问题: 为什么存储桶策略不适用于A_1拥有FULL_CONTROL的A_2拥有的文件?
注意 -通过为我的云平台创建访问身份并要求A_2专门读取云平台规范帐户ID,我能够“规避”该问题,但这很麻烦。
时段政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Grant read access to the world",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my_bucket/*"
},
{
"Sid": "Grant write access to other account user",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::8566072xxxxx:root"
},
"Action": [
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my_bucket/*",
"arn:aws:s3:::my_bucket"
]
}
]
}
答案 0 :(得分:0)
S3访问特权要接受三组概念上不同的测试-IAM主体(用户或角色),存储桶和对象上下文。
如果存储桶和对象所有者相同,则可以在存储桶策略中授予对对象的访问权限,该策略在存储桶上下文中进行评估。如果所有者不同,则对象所有者必须使用对象ACL授予权限。
https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-auth-workflow-object-operation.html
bucket-owner-full-control
罐头ACL不会更改实际的对象所有权,因此仅使存储桶所有者具有使用用户和角色策略(而不是存储桶策略)授予对对象的访问权限的能力。
您的用户策略是您可以在控制台中访问它们的原因。
存储桶策略仍然可以明确地拒绝对存储桶所有者不拥有的对象的访问,但不能授予它们。