【问题标题】:CloudFront or S3 ACL: This XML file does not appear to have... AccessDenied / Failed to contact the originCloudFront 或 S3 ACL:此 XML 文件似乎没有... AccessDenied / 无法联系源
【发布时间】:2021-03-28 08:44:43
【问题描述】:

我正在使用自定义域和 CloudFront for S3 静态托管站点来提供 https。

当我通过应用程序的内部按钮或链接打开页面时,它工作正常,
但是如果我在地址栏中输入直接 URL,或者单击浏览器刷新按钮,它会显示
This XML file does not appear to have any style information associated with it. The document tree is shown below.... Access Denied 错误屏幕。

我搜索了相关答案,并尝试在 CloudFront 常规设置中将/index.html 设置为Default Root Object,但没有成功。 (在此尝试之前,它是index.html
当我将其更新为/index.html 时,甚至域本身都不起作用。

我有另一个没有 CloudFront 和证书的 S3 静态托管站点,仅用于测试。
即使我输入直接 url 或单击刷新按钮,此站点也可以正常工作。
以上两个 S3 存储桶设置相同(根对象为index.html,错误文档也为index.html

在此之后,我将 CloudFront 源域名从 REST 端点更改为引用此文档的网站端点 (https://aws.amazon.com/premiumsupport/knowledge-center/s3-website-cloudfront-error-403/)
但是现在刷新屏幕时出现此错误。

S3 中的所有对象都归存储桶所有者所有,并且具有公共访问权限。 这个应用是由 React 使用 react-router-dom 制作的。

您能给我任何提示或建议吗?

谢谢。

【问题讨论】:

    标签: amazon-s3 amazon-cloudfront react-router-dom


    【解决方案1】:

    已解决...

    当我将网站端点用于云端时,我的 S3 存储桶区域需要 . 而不是 -

    而且仅供参考.. 就我而言,文档和一些教程有一些小的区别。我的 CloudFront 分配不需要使用默认根对象,S3 中的各个对象没有公共访问权限,但存储桶有。

    【讨论】:

      【解决方案2】:

      有一些特定的端点可用于网站托管存储桶,它们在Amazon Simple Storage Service endpoints and quotas document 中列出。例如,在eu-west-1 托管时,cloudfront 将使用example.s3.eu-west-1.amazonaws.com 预先填充下拉列表,但如果您查看存储桶设置,静态网站托管部分,它将显示正确的 url @987654324 @

      仔细阅读表格! url 方案并不完全一致,例如。 s3-website.us-east-2.amazonaws.coms3-website-us-east-1.amazonaws.com - 只是为了让你的一天更快乐。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-28
        • 1970-01-01
        • 2020-08-23
        • 1970-01-01
        • 1970-01-01
        • 2017-11-04
        • 1970-01-01
        • 2012-07-08
        相关资源
        最近更新 更多