可是你说的跟我看到的完全不一样啊。我在创建这个 CloudFront 的 Distribution 的时候,它就不允许我使用 HTTPS 啊,只能使用 HTTP 啊,就那个 Origin 它只能使用 HTTP, 那个 Origin Access 是要 Business Plan 才行啊。我不知道你是不是搞混掉了,这个非常的让我感到混乱。
S3 Bucket Policy 冗余优化
导出时间:2026/5/27 20:12:19
来源地址:https://www.doubao.com/chat/38413288453079810
消息数量:4
搜索 3 个关键词,参考 17 篇资料
你完全没看错,你遇到的是 S3 网站端点 vs REST API 端点的核心区别,不是免费版限制,也不是 Business Plan 要求。我把真相一次性说透👇
一、你现在的配置为什么只能用 HTTP(关键)
你现在 Origin 选的是:
staroceans.org.s3-website-us-east-1.amazonaws.com
这是 S3 静态网站托管端点。- S3 网站端点只支持 HTTP,不支持 HTTPS(AWS 设计如此)
- 所以 CloudFront 回源只能走 HTTP,你在控制台看到的 “只能选 HTTP” 是对的
- 这和免费版、Business Plan 半毛钱关系都没有
二、OAC/OAI 为什么你用不了(你没搞混)
- OAC(Origin Access Control)/OAI 是给 S3 REST API 端点 用的,不是给网站端点用的
- 网站端点 = 公开 HTTP 服务,不支持 OAC/OAI,也不支持 HTTPS 回源
- 你看到 “Origin Access 需要 Business Plan” 是界面误导:免费版完全能用 OAC,只是你当前源类型不支持
三、免费版 CloudFront 到底能不能 HTTPS(结论)
✅ 能,而且完全免费(自定义域名 + 证书也免费)
- 免费版限制:1TB 流量 + 1000 万请求 / 月,协议不限
- 证书(ACM)永久免费(SNI 方式,无月费)
- 自定义域名 HTTPS:只有请求 / 流量费,无月费,免费额度内 0 元
四、立刻解决:让 CloudFront 回源用 HTTPS(3 步)
1. 关闭 S3 静态网站托管(必须)
- 进入 S3 → 你的桶 → 属性 → 静态网站托管 → 关闭
- 删掉桶策略里所有 Amplify 相关语句(你已经删了,很好)
2. 重建 CloudFront 分发(关键改法)
- Origin domain:不要选网站端点,直接选桶:
staroceans.org.s3.amazonaws.com(REST API 端点) - Origin access:选 Origin access control settings (OAC) → 创建新 OAC(免费)
- 保存后,AWS 会给你一段桶策略,直接复制到 S3 桶策略(替换现有)
- Viewer protocol policy:选 Redirect HTTP to HTTPS(强制用户 HTTPS)
- 默认根对象:填
index.htm
3. 绑定自定义域名 + 证书(免费)
- ACM 申请证书(免费),验证域名
- CloudFront → 分发 → 设置 → 自定义 SSL 证书 → 选刚申请的证书
- Route 53 把
staroceans.org指向 CloudFront 域名
五、两种源的对比(一眼看懂)
表格
| 源类型 | 回源协议 | OAC/OAI | HTTPS 回源 | 适用场景 |
|---|---|---|---|---|
| S3 网站端点 | 仅 HTTP | ❌ 不支持 | ❌ 不行 | 仅简单 HTTP 站 |
| S3 REST API 端点 | HTTPS/HTTP | ✅ 支持 | ✅ 可以 | 安全 + HTTPS+CDN 加速 |
六、费用再确认(你最关心)
- 无月费,只有按使用量收费
- 免费额度内:0 元
- 超出:流量 $0.085/GB,HTTPS 请求 $0.01 / 万次(个人站几乎可忽略)
- S3→CloudFront 回源流量免费,只收 CloudFront→用户流量
七、你现在的最佳方案(一步到位)
- 关闭 S3 静态网站托管
- 用 S3 REST API 端点 + OAC 重建 CloudFront
- 开启强制 HTTPS + 绑定自定义域名 + 免费证书
- 删掉 Amplify 相关配置(彻底告别冲突)
这样配置后:
- 用户访问
https://staroceans.org:完全正常、免费、安全 - CloudFront 回源 S3:走 HTTPS
- 没有任何冲突,也不需要 Business Plan
要不要我给你一份可直接复制的 S3 桶策略(适配 OAC+CloudFront),你直接粘贴就能用?
那你帮我看一下,如果我使用我自己的域名的话,要 HTTPS 的话,那么一个月的月费要增加多少?它这个流量好像也要额外算钱,是不是?因为流量本来 bucket 这个就是已经算钱了,就 S3 bucket 已经流量算钱了,那它这个 HTTPS 是不是要额外算钱?还是说它仅仅是个文件头,就是这个 HTTPS 的这个头。真正的 bucket 还是真正的流量还是 S3 bucket 的流量?意思就是说,因为你使用 HTTPS 的这个流量跟 S3 bucket 的这个流量,实际上是不一样的,它有去包裹一层 HTTPS 的。它有加密的,所以我不知道这个是不是要额外收费呢?
搜索 3 个关键词,参考 17 篇资料
先给你最关键结论:
- 没有月费,只有按使用量收费(流量 + 请求)
- HTTPS 不是额外包裹收费,而是请求单价更高
- S3→CloudFront 回源流量免费,只收 CloudFront→用户的流量
一、你最关心的:自定义域名 + HTTPS 要多花多少钱?
1. 证书本身:完全免费
- ACM 申请证书:0 元
- SNI 自定义 SSL:无月费、无额外费
- 只有专用 IP SSL 才收 $600 / 月(你用不到)
2. CloudFront 收费项(2026 美东 / 全球)
- 免费额度(永久):
- 每月:1TB 出站流量 + 1000 万次 HTTP/HTTPS 请求
- 超出后计费(美东):
- 流量:$0.085/GB(全球统一阶梯)
- HTTP 请求:$0.0075 / 万次
- HTTPS 请求:$0.010 / 万次(比 HTTP 贵 33%)
- S3 只收:GET 请求费($0.0004 / 万次),S3→CloudFront 回源流量免费
3. 你的个人站预估(每月)
假设:10GB 流量 + 10 万次 HTTPS 请求
- 流量:10GB × $0.085 = **$0.85**
- HTTPS 请求:10 万 × $0.010 / 万 = **$0.10**
- 合计:≈ $0.95 / 月(不到 7 元)
- 若在免费额度内:$0
二、HTTPS 到底怎么收费?(不是 “额外包裹”)
- 不是:HTTP 流量 + HTTPS 加密层 = 双重收费
- 是:请求类型不同,单价不同
- HTTPS 只是请求单价更高,流量单价和 HTTP 一样
- S3 流量只算一次:
- S3→CloudFront:免费
- CloudFront→用户:按 CloudFront 流量计费(不再收 S3 出网费)
三、S3 静态网站 vs CloudFront(自定义域名 HTTPS)对比
表格
| 方案 | HTTPS | 自定义域名 | 费用 | 加速 |
|---|---|---|---|---|
| S3 静态网站 | ❌ 只有 HTTP | ✅ 可用 | S3 流量 + 请求 | ❌ 无 |
| CloudFront(默认域名) | ✅ 免费 HTTPS | ❌ cloudfront.net | 免费额度内 0 元 | ✅ 全球加速 |
| CloudFront(自定义域名) | ✅ 免费证书 + HTTPS | ✅ 你的域名 | 按流量 + 请求(很低) | ✅ 全球加速 |
四、你现在的最佳方案(最省钱 + HTTPS)
- 保留 CloudFront,关闭 S3 静态网站托管(避免冲突)
- 用自定义域名 + SNI SSL(证书免费,无月费)
- 流量 / 请求在免费额度内:0 元;超出也极便宜
五、快速验证(你现在就能做)
- 去 ACM 申请证书(免费)
- CloudFront 绑定证书 + 自定义域名
- 访问
https://staroceans.org:完全免费,无月费
要不要我给你一份极简的 CloudFront 配置清单(源设置、缓存、SSL、默认根对象),你照着点就能上线 HTTPS?