5

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

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

4

3 回答 3

12

我在 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

于 2011-09-23T14:34:01.940 回答
1

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

于 2009-07-15T03:36:11.443 回答
1

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

于 2009-07-15T13:58:12.957 回答