如何将 CloudFront 和 S3 与备用域一起使用?

How to use CloudFront and S3 with alternate domain?

假设我有一个名为 example.com 的 S3 存储桶,我想使用备用域 example.com.

通过 CloudFront 提供其内容

我添加了 CNAME 记录以将 example.com 定向到 CloudFront 端点,并使用 AWS SSL 证书保护域。

在 CloudFront 中,当我转到 select Origin 时,它会显示我的存储桶。例如:example.com.s3.amazonaws.com

如果我选择这个来源,然后浏览到 https://example.com/my-bucket-item.jpg, I get redirected to https://example.com.s3-us-east-2.amazonaws.com/my-bucket-item.jpg,就会出现“连接不安全”SSL 错误。

如果我将源仅设置为域 example.com,那么我会从 CloudFront 收到 403 错误请求错误。

据我所知,我的存储桶必须共享我的域名,否则我会收到“存储桶不存在”错误。

我已经关注了 AWS 文档。我在这里做错了什么?

更新

我通过将源策略更改为 Managed-CORS-S3Origin,成功让 CloudFront 识别我的备用域。

新问题:即使我已经 select 将 'Yes' 编辑为 'Restrict Bucket Access',我仍然可以通过 S3 url 访问文件。我是否需要关闭 public 对我的存储桶的访问权限?如果我这样做,它似乎会覆盖我的 CloudFront 策略...

我不得不将我的源请求策略更改为 Managed-CORS-S3Origin - 这解决了我的一般问题。