【问题标题】:Make a bucket public in Amazon S3在 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
  • 对类似帖子的回答可能会有所帮助:stackoverflow.com/a/23102551/475882

标签: amazon-web-services amazon-s3


【解决方案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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-09-06
  • 2020-09-10
  • 2019-02-25
  • 2018-10-22
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多