我已经发现一对夫妇像在计算器上类似的问题这一个,但他们都已经陈旧,它似乎从那时起事情已经与S3改变。他们添加了这四个设置,这很令人困惑:如果我将其关闭,是否意味着我的存储桶可公开写入?此外,我还添加了以下政策:
{
"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/*"]
}
]
}
请注意,of的使用"Principal": "*"
与您使用的策略不同"Principal": {"AWS": "*"}
。
这允许访问对象(GetObject
),但无法列出存储桶的内容。这将需要ListBucket
对存储桶本身(不带/*
)的权限。
您还需要关闭与存储桶策略相关的两个阻止公共访问设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句