[英]AWS S3 ACL Permissions
所以我的存储桶过去和现在都正常运行,我可以通过 API 毫无问题地上传图像。 但是,我在搞乱用户策略,我对我的用户策略的资源进行了更改,这导致一些设置发生了变化。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1420751757000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": CHANGE MADE HERE
}
]
}
当我尝试通过我的 AWS 账户(不使用 API)上传图像时,默认情况下 ACL 公共访问是私有的。 我尝试将我的政策版本改回原来的版本,但没有任何变化。 我对 S3 非常缺乏经验,所以如果我缺少有关此问题的重要信息,我可以提供。
如果您希望所有对象都是公共的,那么您应该使用 Bucket Policy 。
这通常应限于仅允许人们下载(获取)object,前提是他们知道 object 的名称。 您可以使用此存储桶策略(存储桶本身):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::YOUR-BUCKET-NAME/*"
]
}
]
}
这个政策是说: “允许任何人从这个桶中得到一个 object,而不知道他们是谁”
它不允许列出存储桶、上传到存储桶或从存储桶中删除。 如果您希望执行任何这些操作,则需要通过 API 调用或使用 AWS CLI 使用您自己的凭证。
有关存储桶策略的示例,请参阅: 存储桶策略示例 - Amazon Simple Storage Service
您的IAM 用户可能应该有这样的政策:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
"Resource": [
"arn:aws:s3:::YOUR-BUCKET-NAME",
"arn:aws:s3:::YOUR-BUCKET-NAME/*"
]
}
]
}
这就是说: “允许此 IAM 用户在 Amazon S3 中对此存储桶和此存储桶的内容执行任何操作”
这将授予您对存储桶执行任何操作的权限(包括上传、下载和删除对象,以及删除存储桶)。
有关IAM 策略的示例,请参阅: 用户策略示例 - Amazon Simple Storage Service
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.