阻止公共访问设置的哪种组合使我的s3存储桶对所有人可见?

时间:2019-10-01 00:46:37

标签: amazon-web-services amazon-s3

我是AWS的新手,并为静态站点托管创建了s3存储桶。我想允许所有人以只读方式访问,以便他们可以访问该网站。什么设置组合给我这种情况?我是否需要取消选中“阻止公共访问”设置中的所有4个设置?如果全部4个设置都设置为off,我是否还需要添加存储桶策略?我只想确保存储桶从不写入,而是帐户持有者。谢谢。 enter image description here

1 个答案:

答案 0 :(得分:2)

块公共访问充当保护的附加层,以防止意外将Amazon S3存储桶公开。

默认情况下,Amazon S3中的所有内容都是私有的。然后,您可以通过几种不同的方式使内容可访问:

  • 在存储桶级别,通过在所需存储桶上创建存储桶策略。添加到此存储桶的规则可用于授予对对象(GetObject),列表内容,上载,删除等的访问权限。这些策略也可以变得非常具体,例如仅允许访问特定的IP地址。 / li>
  • 在对象级别,通过在每个单个对象上配置访问控制列表(ACL)。例如,可以使一个对象公开访问。
  • 在IAM用户或IAM组级别,通过直接向用户/组添加 IAM策略。这对于只授予特定IAM用户组访问权限(相对于公开访问)非常有用。
  • 通过使用以编程方式生成的预签名URL ,并提供对特定对象的限时访问。应用程序通常使用它来授予对私有对象的访问权限。例如,一个照片共享网站将所有照片保密,但是授权用户将能够查看他们自己的照片或通过应用程序与他们共享的照片。

因此,在您的问题中,您说您想“允许所有人以只读方式访问,以便他们可以访问网站”。通常可以通过创建桶策略来完成此操作,例如:

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

您应该首先停用引用存储桶策略的两个“阻止公共访问”设置(底部两个)。