Amazon web services 如何在Amazon S3 Bucket上设置公共只读访问?
我在StackOverflow上发现了两个类似的问题,但它们都很老了,从那以后S3的情况似乎发生了变化。他们添加了以下四种设置,这四种设置非常混乱: 如果我关闭这些功能,是否意味着它使我的存储桶可以被公共写入? 此外,我还添加了以下策略:Amazon web services 如何在Amazon S3 Bucket上设置公共只读访问?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我在StackOverflow上发现了两个类似的问题,但它们都很老了,从那以后S3的情况似乎发生了变化。他们添加了以下四种设置,这四种设置非常混乱: 如果我关闭这些功能,是否意味着它使我的存储桶可以被公共写入? 此外,我还添加了以下策略: { "Version": "2008-10-17", "Statement": [ { "Sid": "PublicReadForGetBucketObjects", "Effect": "Allow",
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::REDACTED/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::REDACTED:user/REDACTED"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::REDACTED",
"arn:aws:s3:::REDACTED/*"
]
}
]
这个CORS配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>REDACTED</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
编辑
得到
邮递
放
*
我试图授予公共读取权限,并限制我在IAM中创建的用户的完全访问权限。
如果有人能确认我的设置是正确的,或者如果设置不正确,我将不胜感激。要使对象可以公开访问,请使用如下策略:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicRead",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
}
]
}
请注意,使用“主体”:“*”
,这与使用“主体”:{“AWS”:“*”}
的策略不同
这允许访问对象(GetObject
),但不能列出bucket的内容。这需要对bucket本身拥有ListBucket
权限(没有/*
)
您还需要关闭与Bucket策略相关的两个Block Public Access设置。您的策略似乎是错误的。从中,设置策略并关闭块公共访问(已完成)。否,禁用块公共访问不会使您的存储桶公开可写(或可读)。禁用它只会让您将对象公开。谢谢,在您的帮助下,我找到了正确的设置!是的,我也有类似的问题。。这些设置不必要地混淆了+1,以解释列出bucket内容的权限以及哪些块设置需要关闭。这正是我需要知道的。