amazon-web-services - Cloudfront 到 s3 重定向到子域给出访问被拒绝错误

标签 amazon-web-services amazon-s3

我使用 Cloudfront 和路由 53 在 aws s3 上设置了一个静态网站。
目前我可以通过https://www.example.com正确访问网站
我正在尝试重定向 http://example.comhttps://example.comhttps://www.example.com (http://www.example.com 已经正确重定向)。
似乎设置它的唯一方法是使用两个云端分布和两个 s3 存储桶(以及路由 53 中的两个别名 A 记录)。
我已经配置了 example.com桶重定向到www.example.com使用 https 协议(protocol)。
其中一个云端发行版指向 www.example.com带有 http 到 https 重定向的存储桶,默认根对象为 index.html备用域名为 www.example.com其他云端发行版指向 example.com没有 http 到 https 重定向的存储桶,并且在默认根对象中没有设置任何内容(我也尝试过 index.html,但没有帮助),备用域名为 example.com .
两个发行版在 ACM 中使用相同的证书设置,涵盖 *.example.comexample.com(其他设置使用默认值)。
当我尝试通过 https://example.com 访问时,我不清楚为什么会收到拒绝访问错误。 (或 http://example.com )我的设置有什么问题?

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>....</RequestId>
<HostId>.....</HostId>
</Error>
更新有关存储桶的更多详细信息:
正如下面评论中提到的,根域 s3 存储桶在没有云端的情况下正确重定向。重新添加 cloudfront 并且拒绝访问错误再次出现。
两个存储桶都具有公共(public)访问权限,即 Block all public access设置为关闭。
两者的存储桶策略设置为:
{
    "Version": "2012-10-17",
    "Id": "Policy1595518880784",
    "Statement": [
        {
            "Sid": "Stmt1595518834954",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::example.com/*"
        }
    ]
}
对于子域存储桶,它有一个 ..:::www.example.com/*在资源中。
Cloudfront 中使用的存储桶来源是 example.com.s3.amazonaws.comwww.example.com.s3.amazonaws.com

最佳答案

问题在于重定向存储桶前面的云端分布。虽然 cloudfront 中 www 存储桶的来源的自动完成工作正常,但它不适用于重定向存储桶。相反,您需要手动添加它,它不是 s3 rest api 格式,而是静态站点版本。因此,请改为输入 example.com.s3-website-us-east-1.amazonaws.com 形式的内容。这似乎有点像 aws 控制台中的错误,它不应该在 s3 重定向存储桶之前自动完成无效的存储桶名称。

关于amazon-web-services - Cloudfront 到 s3 重定向到子域给出访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63178996/

相关文章:

node.js - 如何在dynamodb中查询主键值数组

amazon-web-services - 如何使用 CloudFormation 创建 AWS API Gateway 自定义域?

amazon-web-services - 无法在同一 cloudformation 堆栈中创建带有死信队列的 FIFO 队列

hadoop - 有没有办法在 Flink 中以编程方式定义 S3 连接详细信息?

bash - aws cli s3 同步 : how to exclude multiple files

android - 带标签/标签的照片的云存储架构/解决方案

javascript - 如何在没有主键或排序键的情况下查询 dynamo db?

json - 具有 50 个 CIDR IP 的安全组的 Cloudformation 模板(JSON)(入口)

amazon-web-services - S3 存储桶策略 - 隐式允许 GET

python-3.x - 使用 SAS token 将文件从 Amazon AWS s3 传输到 Azure Blob 的 python 脚本