Amazon S3权限问题 - 如何一次为所有文件设置权限?

Rai*_*ner 75 amazon-s3 amazon-web-services

我使用亚马逊AWS管理控制台上传了一些文件.

我收到了一个HTTP 403 Access denied错误.我发现我需要设置权限view.

如何为存储桶中的所有文件执行此操作?

我知道可以为每个文件设置权限,但是当需要为每个人查看许多文件时,这很费时间.

小智 117

我建议您将存储桶策略[1]应用于要存储公共内容的存储桶.这样您就不必为每个对象设置ACL.以下是一个策略示例,该策略将使存储桶mybucket中的所有文件公开.

{
    "Version": "2008-10-17",
    "Id": "http better policy",
    "Statement": [
        {
            "Sid": "readonly policy",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

*"Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"允许递归.

[1]请注意,Bucket Policy与IAM Policy不同.(例如,如果您尝试包含Principal在IAM策略中,则会出现错误.)可以通过在AWS Web控制台中转到存储桶的根目录并展开"属性">"权限"来编辑存储桶策略.存储桶的子目录也具有"属性">"权限",但没有选项Edit bucket policy

  • 如果有人想知道如何设置存储桶策略,请参阅官方AWS文档:http://docs.amazonwebservices.com/AmazonS3/latest/dev/setpolicyonbucket.html (9认同)
  • 他们还有一个有用的工具来生成这些:http://awspolicygen.s3.amazonaws.com/policygen.html (6认同)
  • 为了防止其他任何人被这个问题所困扰,版本必须完全符合规定. (4认同)
  • 我尝试将其粘贴到S3控制台中.它抱怨它是无效的json,你必须删除"资源"行之后的尾随逗号和第一个{之前的初始空格. (3认同)
  • S3 Browser是可以执行此操作的UI工具包。它具有一个免费软件版本,我认为应该可以满足您的需求。http://s3browser.com/我们使用他们的付费版本(约30美元),而且我知道它只需几次点击即可完成所有这些操作,而您无需支付诸如编码之类的快速任务 (2认同)

小智 5

您可以选择要将其公开的目录.

按"更多"并将其标记为公开; 它将使目录和所有文件可以作为公共访问.