如何在CloudFront中同时配置国家与IP地址白名单?
可行解决方案
方案1:WAF IP白名单+CloudFront地理限制(优先级调优)
- 给你的CloudFront分配WAF Web ACL,创建优先级最高的规则:把你的IP地址加入白名单,规则动作设为「允许」。
- 保留CloudFront缓存行为里原有的地理限制设置(仅允许特定国家访问)。
- 逻辑:WAF会先于CloudFront的地理限制检查请求,你的IP会被WAF直接放行,跳过后续的地理限制校验。
方案2:Lambda@Edge 自定义访问验证
- 在CloudFront的Viewer Request阶段部署Lambda@Edge函数:
- 函数里写逻辑:检查请求里的自定义标识(比如自定义HTTP头
X-Private-Auth,或者Query String参数?access-code=xxxx),同时确认请求IP是你的固定IP。 - 验证通过就直接允许访问;不通过的话,再交给CloudFront的地理限制规则处理。
- 函数里写逻辑:检查请求里的自定义标识(比如自定义HTTP头
- 好处:比单纯IP白名单灵活,哪怕你的IP变了,更新函数里的IP或验证密钥就行,不用改WAF规则。
方案3:拆分CloudFront缓存行为
- 建两个CloudFront缓存行为:
- 第一个行为:指定专属路径(比如
/internal/*),关闭地理限制,同时关联WAF IP白名单,只允许你的IP访问。 - 第二个行为:设为默认路径
/*,保留原有的地理限制,面向特定国家的普通用户。
- 第一个行为:指定专属路径(比如
- 适合需要区分内部访问和普通用户访问的场景。
内容的提问来源于stack exchange,提问作者Hussain Murtaza
相关产品推荐
相关产品推荐

