【问题标题】:How to set a bucket's ACL on S3?如何在 S3 上设置存储桶的 ACL?
【发布时间】:2010-11-10 18:35:53
【问题描述】:

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

我想为我正在开发的应用程序授予对FlixCloud 的读写访问权限。他们需要有权写入输出文件。

【问题讨论】:

    标签: amazon-s3 acl


    【解决方案1】:

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

    【讨论】:

    • 您是在 1 分钟或 2 分钟后检查 ACL 吗?就我而言,ACL 始终重置为仅所有者。
    【解决方案2】:

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

    【讨论】:

    • 忘记回答这个问题了。我的问题是我编写的脚本在几分钟后覆盖了 ACL。
    【解决方案3】:

    我在 ACL 与存储桶策略方面苦苦挣扎,发现以下内容很有用。

    ACL

    ACL 定义附加到存储桶中单个文件的权限。存储桶策略是一个脚本,用于解释存储桶中任何文件夹或文件的权限。使用存储桶策略来限制热链接、授予或拒绝对特定或所有文件的访问、限制 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

    【讨论】:

    • 存储桶策略很棒,需要注意的是...它们仅适用于存储桶所有者拥有的对象。因此,如果您的内容最终通过存储桶所有者以外的用户帐户进入您的存储桶,您需要使用 ACL 或将存储桶中的对象复制粘贴为所有者以重置所有者。
    • 感谢史蒂夫的提示,我不知道对象所有者警告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2022-11-21
    • 2019-02-01
    • 2020-04-09
    相关资源
    最近更新 更多