如何在S3上设置存储桶的ACL?

Fra*_*eil 5 acl amazon-s3

我尝试了几件事:S3Browse,RightAws Ruby gem和其他工具.所有允许在单个密钥的基础上授予访问权限,但我无法在存储桶上设置ACL.实际上,我在存储桶上设置了ACL,没有返回任何错误.但是当我刷新或检入其他工具时,存储桶的ACL仅重置为所有者.

我想为我正在开发的应用程序提供对FlixCloud的读写访问权限.他们需要访问权来编写输出文件.

Dyl*_*ade 12

我正在努力解决ACL与Bucket Policy的问题,并发现以下内容非常有用.

ACL

ACL定义附加到存储桶中单个文件的权限.Bucket Policy是一个脚本,用于解释存储桶中任何文件夹或文件的权限.使用存储桶策略来限制热链接,授予或拒绝对特定或所有文件的访问,限制IP地址等.

编辑S3存储桶策略

登录Amazon Web Services,单击S3并单击左列中的存储桶名称.查看页面底部的存储桶"属性"面板.单击右下角显示"编辑存储桶策略"的按钮.这会打开一个灯箱,您可以将策略脚本粘贴到其中.如果脚本验证失败,则无法保存.

启用对所有人的读访问权限的示例策略(如果将存储桶用作内容传送网络,则非常有用)

{
     "Version": "2008-10-17",
     "Id": "",
     "Statement": [
          {
               "Sid": "AddPerm",
               "Effect": "Allow",
               "Principal": {
                    "AWS": "*"
               },
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::my_bucket_name/*"
          }
     ]
}
Run Code Online (Sandbox Code Playgroud)

示例策略以防止未经授权的热链接(链接到它的第三方站点)但允许任何人下载文件:

{ 
    "Version":"2008-10-17", 
    "Id":"preventHotLinking",

    "Statement":[ { 

        "Sid":"1", 
        "Effect":"Allow",
        "Principal": {
            "AWS":"*"
        },

        "Action":"s3:GetObject",
        "Resource":"arn:aws:s3:::your.bucket.name/*",

        "Condition":{

            "StringLike": { 

                "aws:Referer": [
                    "http://yourwebsitename.com/*", 
                    "http://www.yourwebsitename.com/*"
                ]
            }
        }
    }]
}
Run Code Online (Sandbox Code Playgroud)

生成政策

http://awspolicygen.s3.amazonaws.com/policygen.html

示例存储桶策略

http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?AccessPolicyLanguage_UseCases_s3_a.html

  • 存储桶策略很棒,但有一点需要注意......它们仅适用于存储桶拥有者拥有的对象.因此,如果您的内容通过桶所有者以外的用户帐户进入您的存储桶,则需要使用ACL或复制粘贴存储桶中的对象作为所有者以重置所有者. (4认同)

小智 1

是的,10分钟后又检查了一下。ACL 保持配置不变。我想这就是你的结局了。尝试不同的帐户/工作站。