【发布时间】:2016-01-28 00:04:22
【问题描述】:
我有一个采用此策略的 S3 存储桶:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-bucket"
}
]
}
无需任何身份验证即可从任何 Web 客户端上传和删除对象,例如卷曲。
但是,如果我作为 IAM 用户进行身份验证(没有任何策略,甚至没有 AmazonS3ReadOnlyAccess 策略),我在尝试访问 (GET) 匿名上传的对象时会收到 403 错误.可以访问非匿名(例如通过 S3 控制台)上传的其他对象。发生了什么?
回顾一下:
- 匿名用户:
- 可以上传文件到桶中
- 可以自己或任何其他用户从bucket上传中下载文件
- 经过身份验证的 IAM 用户:
- 可以上传文件到桶中
- 可以自己从bucket上传下载文件
- 无法下载匿名用户上传的文件
PS:根据 IAM Policy Simulator,匿名上传的文件应该是 IAM 用户可以下载的。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-iam