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

时间:2009-07-14 19:13:14

标签: amazon-s3 acl

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

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

3 个答案:

答案 0 :(得分:11)

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

<强> 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/*"
          }
     ]
}

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

{ 
    "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/*"
                ]
            }
        }
    }]
}

生成政策

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

示例存储区政策

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

答案 1 :(得分:1)

我刚刚仔细检查了一下 - S3fm能够成功更改ACL。我使用他们的电子邮件 s3@flixcloud.com 作为用户ID。您可以在列表中看到 flixclouds3 后面的用户。

答案 2 :(得分:1)

是的,10分钟后再次检查。 ACL保持配置状态。我想这就是你最后的事情。尝试不同的帐户/工作站。