You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否托管仅VPC内可访问的S3静态网站并使用自定义域名?

解决方案:VPC内部访问S3托管静态网站(带自定义域名)

核心需求:

  • S3托管的静态网站仅对VPC/VPN内部开放
  • 使用自定义域名,替代S3默认的*.s3-website.eu-central-1.amazonaws.com格式域名

现有方案局限性分析

  • VPC Endpoint不适用:仅支持S3 REST API接口,无法对接静态网站托管的HTTP端点
  • 直接通过S3桶策略限制失败:开启静态网站托管必须允许公共访问,桶策略中的VPC约束规则无法生效

可行实现方案:CloudFront + OAC + WAF 组合配置

以下是分步实现步骤:

  1. 配置私有S3桶

    • 关闭S3桶的所有公共访问设置(包括桶级和账户级的公共访问阻止)
    • 上传静态网站文件,不配置任何允许公共访问的桶策略,确保桶完全私有
  2. 通过Origin Access Control (OAC)关联CloudFront与S3

    • 创建CloudFront分配,将目标S3桶设置为源
    • 启用OAC并完成配置,授予CloudFront访问私有S3桶的权限,确保只有CloudFront能读取桶内内容
  3. 用WAF限制访问来源

    • 创建WAF Web ACL,添加规则仅允许来自目标VPC的CIDR范围(含VPN客户端网段)的请求
    • 将该Web ACL关联到CloudFront分配,拦截所有非VPC/VPN来源的请求
  4. 配置自定义域名

    • 在DNS服务商(如Route 53)添加自定义域名的CNAME记录,指向CloudFront分配的域名
    • 通过AWS Certificate Manager申请自定义域名的SSL证书,关联到CloudFront分配,实现HTTPS访问

注意事项

  • 需确保WAF规则中的CIDR范围覆盖所有需要访问的VPC私有网段及VPN客户端地址段
  • 根据静态内容更新频率调整CloudFront缓存策略,避免过时内容被缓存
  • 测试时从VPC内的EC2实例或VPN客户端访问自定义域名,验证外部无法访问

内容的提问来源于stack exchange,提问作者Camões

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 00:47:38