gpt4 book ai didi

amazon-web-services - 我应该将我的 S3 存储桶公开用于静态站点托管吗?

转载 作者:行者123 更新时间:2023-12-04 14:18:12 26 4
gpt4 key购买 nike

我有一个 s3 存储桶,用于托管通过云端访问的静态站点。我想使用 s3 <RoutingRules>将任何 404 重定向到请求主机名的根目录。为此,我需要将云端源设置为使用 s3“网站端点”。

但是,似乎要允许 Cloudfront 通过“网站端点”而不是“s3 REST API 端点”访问 s3 存储桶,我需要显式地将存储桶公开,即使用如下策略规则:

{
"Sid": "AllowPublicGetObject",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::dev.ts3.online-test/*"
},
{
"Sid": "AllowPublicListBucket",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::dev.ts3.online-test"
}

一切都很好。有用。然而 AWS 给了我一个漂亮的大 Shiny 警告说:

This bucket has public access. You have provided public access to this bucket. We highly recommend that you never grant any kind of public access to your S3 bucket.

所以我想有两个问题:

  1. 当然应该注意这个警告,这只是 AWS 的懒惰吗?存储桶中的所有内容都是可以自由请求的静态文件。存储桶中没有 protected 或 secret 的内容。我完全不明白为什么公开阅读是一个安全漏洞...
  2. 为了让您高枕无忧,有没有什么方法可以在存储桶策略中指定一个 principalId,它只会将其授予 cloudfront? (我知道如果我使用 REST 端点我可以将它设置为 OAI,但我不能使用 rest 端点)

最佳答案

关于警告的第一件事。

列表存储桶 View 显示您的存储桶是否可公开访问。 Amazon S3 如下标记存储桶的权限:

公开 –

  • 每个人都可以访问以下一项或多项:列出对象、写入对象、读取和写入权限。

对象可以是公开的——::

  • 存储桶不是公开的,但任何具有适当权限的人都可以授予对对象的公开访问权限。

不公开的桶和对象 –:- 存储桶和对象没有任何公共(public)访问权限。

仅限此帐户的授权用户 –:

  • 访问权限仅限于此账户​​中的 IAM 用户和角色以及 AWS 服务委托(delegate)人,因为存在授予公共(public)访问权限的策略。

所以第一个警告。 AWS 推荐的 s3 静态网站策略如下。

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

Add a bucket policy to the website bucket that grants everyone access to the objects in the bucket. When you configure a bucket as a website, you must make the objects that you want to serve publicly readable. To do so, you write a bucket policy that grants everyone s3:GetObject permission. The following example bucket policy grants everyone access to the objects in the example-bucket bucket.

顺便说一句,公共(public)访问应该只是GET,而不是其他任何东西,允许对 S3 上的静态网站的GET 请求是完全没问题的。

enter image description here static-website-hosting

关于amazon-web-services - 我应该将我的 S3 存储桶公开用于静态站点托管吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57998242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com