繁体   English   中英

AWS S3 ACL 权限

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM