【发布时间】:2017-09-29 14:06:07
【问题描述】:
我面临一个非常奇怪的问题,要么是我缺乏知识,要么是 aws s3 中的错误:
所以我创建了一个任何人都无法在公共场合访问的 s3bucket,然后我将图像放入其中。所以当我尝试那个绝对不是每个人都可以看到的图像时,这是好的。(所以我的存储桶和图像都没有公共访问权限) 然后我向其中添加了以下存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy1506624486110",
"Statement": [
{
"Sid": "Stmt1506624421375",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucketname/*"
}
]
}
根据我的理解,此时此图像可以访问所有 aws 资源,但公众中的任何其他人都无法访问。奇怪的是,我看到公共场合的人,任何陌生人都可以访问此图像。谁能解释一下该存储桶策略的神奇之处在于它使公众可以使用它吗?
【问题讨论】:
-
您是否希望提供对特定 IAM 角色或所有 AWS 服务的访问权限?
-
@VijayanathViswanathan 希望向所有 aws 用户提供访问权限,但不向任何公开的陌生人提供访问权限
-
@HamedMinaee
"AWS": "*"表示绝对是任何人和每个人。和"*"是一回事。 -
@Michael-sqlbot thanx,对,这正是它的行为方式,也是迄今为止我唯一能同意的答案。但那为什么一开始就是aws呢?那有什么意义呢? aws 中是否有任何引用说 aws:* 和 * 是一样的?
标签: amazon-web-services amazon-s3