首页 文章

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

提问于
浏览
73

我已经通过亚马逊AWS管理上传了一些文件 .

我确实收到403错误 . Acess否认 . 我发现我需要设置权限才能查看 .

如何为存储桶中的所有文件执行此操作?我知道可以为每个文件设置权限 . 当需要为每个人查看真正的许多文件时,需要花费很多时间 .

9 回答

  • 1

    我建议您将存储桶策略[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/*"
            }
        ]
    }
    

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

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

  • 1

    我使用Cloudberry Explorer来完成工作:)那就是:http://cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx

  • 111

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

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

  • 4

    您只能修改唯一项目(桶或项目)的ACL,大 beans 必须逐个更改 .

    某些S3管理应用程序允许您将相同的ACL应用于存储桶中的所有项目,但在内部,它会逐个应用ACL .

    如果以编程方式上载文件,则在上载文件时指定ACL非常重要,因此您不必在以后进行修改 . 使用S3管理应用程序(如Cloudberry,Transmit,...)的问题是,当您上传每个文件时,大多数使用默认ACL(私有只读) .

  • 5

    通过程序(java)将文件上传到s3存储桶时,我遇到了同样的问题 .

    Error: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 403

    我添加了 origin identity 并更改了 bucket policyCORS configuration 然后一切正常 .

  • 0

    使用S3 Browser,您可以使用gui更新权限,也可以递归 . 它是一个有用的工具,可以免费用于非商业用途 .

  • 0

    要公开大量文件,请执行以下操作:

    • 转到S3 web interface

    • 打开所需的桶

    • 单击列表左侧的复选框,选择所需的文件和文件夹

    • 点击列表顶部的«更多»按钮,点击«公开»

    • 点击«公开»确认 . 尽管警告说“...读取此对象,读取和写入权限”,文件将没有公共写入权限 .

  • 5

    传输5

    我想在这里为潜在的macOS用户添加这个,这些用户已经拥有名为Transmit by Panic的精美FTP应用程序 .

    我已经有恐慌,它支持S3桶(不知道这个版本是什么版本,但我认为升级是免费的) . 它还支持递归更新读写权限 .

    您只需右键单击要更新的目录,然后选择要将其设置为的读写权限 .

    它看起来并不快,但您可以通过Window> Transcript打开日志文件,这样您至少知道它正在做某事 .

  • 2

    使用AWS policy generator生成符合您需求的策略 . 策略生成器中的主体应该是您用于访问对象的IAM用户/角色 . 资源ARN应该是arn:aws:s3 ::: mybucket / sub / dirs / are / supported / *

    接下来,单击“添加语句”并按照说明操作 . 你最终会得到一个代表政策的JSON . 将其粘贴到s3存储桶策略管理部分,该部分位于“您在AWS中的s3存储桶页面 - >权限 - >存储桶策略”中 .

相关问题