代码之家  ›  专栏  ›  技术社区  ›  corgrath

与对象上的公共访问相比,bucket上的公共访问做了什么?

  •  1
  • corgrath  · 技术社区  · 7 年前

    我是AWS S3的新手,正在尝试弄清楚它是如何工作的。

    看起来,为了在Internet上公开单个文件,您必须将特定对象上的“公共访问”设置为“所有人”。

    enter image description here

    但是,Bucket本身具有相同的权限;

    enter image description here

    如果是这样的话,Bucket上的“公共访问”到底是做什么的?

    2 回复  |  直到 7 年前
        1
  •  1
  •   thomasmichaelwallace    7 年前

    S3访问权限是一件混乱的事情,主要是因为有三种“类型”需要理解。

    有关权限模型(bucket访问权限、控制列表和策略)的完整讨论,请参阅文档(请参阅: Setting Bucket and Object Access Permissions - Amazon Simple Storage Service ).但正如你所注意到的:

    Bucket和object权限是相互独立的。对象不会从其bucket继承权限。例如,如果创建一个bucket并向用户授予写访问权限,则除非用户明确授予您访问权限,否则您将无法访问该用户对象。

    “公共访问”是指“来自您帐户之外的用户没有IAM或S3 ACL访问权限”。

    n、 b.如果你问这个问题是因为你想让你的S3存储桶可以公开访问,那么可以找到一个这样做的指南 in this answer

        2
  •  0
  •   John Rotenstein    7 年前

    授予对AmazonS3存储桶或其一部分的公共访问权的最佳方法是使用 Bucket Policy . 这比在每个对象上授予公共访问权限更容易。

    {
      "Version":"2012-10-17",
      "Statement":[
        {
          "Sid":"AddPerm",
          "Effect":"Allow",
          "Principal": "*",
          "Action":["s3:GetObject"],
          "Resource":["arn:aws:s3:::examplebucket/*"]
        }
      ]
    }