在 Amazon S3 中公开存储桶 [关闭]
Posted
技术标签:
【中文标题】在 Amazon S3 中公开存储桶 [关闭]【英文标题】:Make a bucket public in Amazon S3 【发布时间】:2011-02-02 13:45:42 【问题描述】:如何在 Amazon S3 中设置存储桶,使所有文件默认为公开只读?
【问题讨论】:
我很生气这个问题被标记为离题。 AWS 对于认真的程序员来说至关重要。我想添加你可以使用带有 acl 参数的 cli 同步命令,如下所示:aws s3 sync ./local-folder-name s3://remote-bucket-name --acl=public-read
对类似帖子的回答可能会有所帮助:***.com/a/23102551/475882
【参考方案1】:
您可以按照这篇博文中的详细说明设置存储桶策略:
http://ariejan.net/2010/12/24/public-readable-amazon-s3-bucket-policy/
根据@robbyt 的建议,使用以下 JSON 创建存储桶策略:
"Version": "2008-10-17",
"Statement": [
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": "AWS": "*" ,
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::bucket/*" ]
]
重要提示:将Resource
行中的bucket
替换为您的存储桶名称。
【讨论】:
使用官方AWS CLI时arn:aws:s3:::bucket
也需要添加到Resource
数组中。 (所以没有/*
。)我希望这可以帮助像我这样苦苦挣扎的其他人。
我的错。仅当您计划 sync
而不仅仅是查看存储桶时才需要这样做。
为了支持通过python的boto匿名访问,除了设置这个策略之外,我还必须在bucket的Properties > Permissions部分将List
权限授予Everyone
。
Version的写法是什么?我正在使用当前日期 2017-11-16,它报告:错误:策略必须包含有效的版本字符串
@Timothy.Li 你记得用引号括起来吗? "2017-11-16",
【参考方案2】:
亚马逊提供了一个策略生成工具:
https://awspolicygen.s3.amazonaws.com/policygen.html
之后,您可以在 AWS 控制台上输入存储桶的策略要求:
https://console.aws.amazon.com/s3/home
【讨论】:
这是>的官方文档docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html 很好的链接。语法非常复杂,他们不得不为它编写一个生成器。 docs.aws.amazon.com/AmazonS3/latest/dev/…以上是关于在 Amazon S3 中公开存储桶 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
对 Amazon S3 存储桶的 FTP/SFTP 访问 [关闭]