我尝试了几件事:S3Browse、RightAws Ruby gem和其他工具。所有这些都允许在单个密钥的基础上授予访问权限,但我无法在存储桶上设置 ACL。实际上,我在存储桶上设置了 ACL,没有返回错误。但是当我刷新或签入另一个工具时,存储桶的 ACL 被重置为仅所有者。
我想为我正在开发的应用程序授予对FlixCloud的读写访问权限。他们需要有权写入输出文件。
我尝试了几件事:S3Browse、RightAws Ruby gem和其他工具。所有这些都允许在单个密钥的基础上授予访问权限,但我无法在存储桶上设置 ACL。实际上,我在存储桶上设置了 ACL,没有返回错误。但是当我刷新或签入另一个工具时,存储桶的 ACL 被重置为仅所有者。
我想为我正在开发的应用程序授予对FlixCloud的读写访问权限。他们需要有权写入输出文件。
我在 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
示例存储桶策略
我刚刚为您仔细检查了 - S3fm能够成功更改 ACL。我使用他们的电子邮件s3@flixcloud.com作为用户 ID。您可以在列表后缀中看到用户为flixclouds3。
是的,10分钟后再次检查。ACL 保持配置不变。我想这是你最后的事情。尝试不同的帐户/工作站。