【问题标题】:AWS Cloudfront can't access S3 files deployed with CodeBuildAWS Cloudfront 无法访问使用 CodeBuild 部署的 S3 文件
【发布时间】:2020-09-16 01:23:08
【问题描述】:

我正在努力使用 AWS Codebuild 部署一个静态网站,托管在 S3 存储桶中,并通过 Cloudfront 访问。除了从 Cloudfront 访问之外,一切似乎都有效。从 Cloudfront,我可以访问我手动上传的文件,并且使用存储桶 URL,我可以访问所有文件。查看各个文件设置/权限,无论它们是手动上传还是通过 Codebuild 部署,它们看起来都是一样的。我尝试过使 Cloudfront 缓存失效,并通过 Codebuild 重新部署了几次。


附加信息:

我在设置 Cloudfront 分发时提供了 S3 存储桶作为源。

通过 Cloudfront 访问会出现以下错误:

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>0211CBE618946F</RequestId>
<HostId>
7sRZhaJS4x2W7Iaeo4y8KAjvsOJcNWh3PxCdgnhXPE22oyp1RxZhwpjrqbsWapsUSaqBK+jqE=
</HostId>
</Error>

我还应该检查什么?

【问题讨论】:

  • 通过 CloudFront 访问时收到什么错误代码或消息?您是如何向 CloudFront 提供对您的 S3 存储桶的访问权限的?
  • @jarmod 检查问题的编辑
  • 您最近是如何部署它的?除非您使用美国东部(弗吉尼亚北部)作为您的区域,否则为新创建的 S3 存储桶创建和传播 DNS 记录需要一些时间 - 很好的解释 in this answer
  • @OscarSchafer 谢谢!自从我使用手动上传的文件进行测试(效果很好)之前,它就已经部署了。

标签: amazon-web-services amazon-s3 amazon-cloudfront aws-codebuild


【解决方案1】:

由于某种原因,添加默认根对象解决了这个问题。

FWIW,我最初将值更改为 dist/index.html,这允许我通过 Cloudfront URL 访问已部署的存储桶内容,但需要 index.html 后缀。将其更改为 index.html 后,一切正常。

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2015-03-14
    • 2021-04-19
    • 2017-07-04
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多