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

能否为API Gateway配置自定义域名并集成新CloudFront实现国家请求拦截?

同一域名下在API Gateway前端添加CloudFront的可行方案

当然可行!这完全可以实现你的需求——用同一个www.example.com域名,在现有edge-optimized API Gateway前面加一层自己管控的CloudFront来拦截特定国家的请求。下面给你一步步拆解实现思路和关键注意事项:

实现步骤

  • 第一步:创建自定义CloudFront分发

    • 新建CloudFront分发时,将源(Origin)设置为你的API Gateway的edge-optimized原生域名(格式类似xxxx.execute-api.us-east-1.amazonaws.com,不是你自己的www.example.com)
    • 在缓存行为配置里,设置路径模式为/*,然后开启**地理限制(Geo Restriction)**功能:选择「允许特定国家/地区」或「阻止特定国家/地区」,添加你需要拦截的国家列表,这就完成了核心的请求拦截逻辑
    • 针对API场景,建议配置缓存策略为禁用缓存(TTL设为0),或者根据请求头(如Authorization、Content-Type)来设置缓存规则,避免返回动态API的旧数据
  • 第二步:调整DNS解析指向新CloudFront

    • 原本你的www.example.com是直接指向API Gateway自带的CloudFront分发,现在需要把DNS记录(如果用Route 53就用别名记录,其他服务商用CNAME)改成指向你刚创建的自定义CloudFront分发域名(格式类似d1234567890.cloudfront.net)
    • 注意:如果用Route 53,选择「别名目标」时直接选你新建的CloudFront分发即可,无需手动输入域名
  • 第三步:配置SSL证书

    • CloudFront要求SSL证书必须在AWS Certificate Manager(ACM)的us-east-1(弗吉尼亚北部)区域申请,所以你需要在该区域为www.example.com申请并验证证书
    • 在CloudFront分发的「自定义域名」设置中,添加www.example.com,并选择刚才申请的ACM证书,确保HTTPS访问正常
  • 第四步:确保API Gateway允许CloudFront访问

    • 为了安全,建议给API Gateway配置资源策略,只允许你的自定义CloudFront的Origin Access Identity(OAI)发起请求。资源策略的大致格式如下:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity YOUR_OAI_ID"
            },
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:REGION:ACCOUNT_ID:API_ID/*/*/*"
          }
        ]
      }
      
    • 同时,要确保CloudFront的源请求头设置正确:将Host头设置为API Gateway的edge原生域名,这样API Gateway才能正确识别请求

关键注意事项

  • 虽然edge-optimized API Gateway本身自带CloudFront,但在它前面再加一层自定义CloudFront是完全合规的,不会有冲突,相当于把原来的CloudFront作为新CloudFront的源
  • 地理限制的准确性依赖于CloudFront的IP库,建议测试不同地区的访问(比如用VPN切换国家)来验证拦截效果
  • 如果你的API有自定义域名绑定,不要把CloudFront的源设为自定义域名,否则会形成循环请求(CloudFront→自定义域名→原CloudFront→API Gateway),必须用API的edge原生域名作为源
  • 缓存策略一定要适配API的动态特性,避免缓存导致的业务异常

内容的提问来源于stack exchange,提问作者Iggy Green

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:37