如何将 CloudFront 和 S3 与备用域一起使用?
Posted
技术标签:
【中文标题】如何将 CloudFront 和 S3 与备用域一起使用?【英文标题】:How to use CloudFront and S3 with alternate domain? 【发布时间】:2021-06-18 19:15:48 【问题描述】:假设我有一个名为 example.com 的 S3 存储桶,我想使用备用域 example.com 通过 CloudFront 提供其内容。
我已添加 CNAME 记录以将 example.com 定向到 CloudFront 端点,并使用 AWS SSL 证书保护域。
在 CloudFront 中,当我选择源时,它会显示我的存储桶。例如:example.com.s3.amazonaws.com
如果我选择此来源并浏览到https://example.com/my-bucket-item.jpg,我会被重定向到https://example.com.s3-us-east-2.amazonaws.com/my-bucket-item.jpg,并出现“连接不安全”SSL 错误。
如果我将源设置为域 example.com
,则会从 CloudFront 收到 403 Bad Request 错误。
据我了解,我的存储桶必须共享我的域名,否则我会收到“存储桶不存在”错误。
我已遵循 AWS 文档。我在这里做错了什么?
更新
通过将我的源策略更改为 Managed-CORS-S3Origin,我成功让 CloudFront 识别我的备用域。
新问题:即使我选择了“是”来“限制存储桶访问”,我仍然能够通过 S3 url 访问文件。我是否需要关闭对我的存储桶的公共访问?如果我这样做,它似乎会覆盖我的 CloudFront 策略...
【问题讨论】:
AWS SSL 证书中的域配置是什么? @MichaelDesigaud 域example.com
,配置状态为“成功”,证书状态为“已发行”。关联资源是我的 CloudFront 分配。
@HWD 使用原始访问身份并将您的 AWS S3 限制为只能由 Cloud Front 访问:docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
【参考方案1】:
我不得不将我的源请求策略更改为 Managed-CORS-S3Origin - 这解决了我的一般问题。
【讨论】:
以上是关于如何将 CloudFront 和 S3 与备用域一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
Amazon Cloudfront 允许所有备用域名 (CNAMES)
Cloudfront:设置与 Origin 的 s3 路径差异