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

如何配置仅允许Cloudflare IP访问AWS NLB网络负载均衡器

AWS NLB+Fargate对接Cloudflare代理的核心问题解答

首先明确场景基线:公网NLB挂载Fargate任务时默认使用IP类型目标组,以下结论均基于该基线,Fargate本身不支持实例类型目标组挂载,无需考虑其他目标类型的逻辑差异。


直接在Fargate服务关联安全组仅放通Cloudflare IP段,会阻断NLB和后端任务的正常连接

  • 核心逻辑很明确:IP类型目标组下,公网NLB向后端转发流量时默认会做源地址转换,不管上游访问源是Cloudflare还是其他公网地址,到达Fargate任务网卡的流量源IP永远是NLB节点的私网IP,后端根本不会收到源地址为Cloudflare公网IP的流量。
  • 你当前配置的「仅放通NLB IP访问」是默认转发模式下服务正常连通的必要规则,如果删掉这条规则、只保留Cloudflare IP段的允许规则,NLB的健康检查流量、正常业务转发流量都会被安全组直接丢弃,服务会直接不可用。
  • 这里要避开一个常见认知误区:Cloudflare是NLB的上游客户端,Cloudflare到NLB的流量源IP确实是Cloudflare公网IP,但这段流量到NLB监听层就完成了接入,NLB往后端走的是内部转发链路,源IP会替换成NLB自身的节点地址,后端安全组完全感知不到上游Cloudflare的IP,只放通Cloudflare IP既起不到拦截非法来源的作用,还会把正常转发流量拦死。

默认配置下NLB不会将直连客户端IP透传给后端Fargate服务

  • 默认转发模式下,后端Fargate服务收到的所有请求源IP都是NLB的私网节点IP,既拿不到Cloudflare的节点IP,更拿不到Cloudflare背后的真实终端用户IP。
  • 如果需要获取上游直连客户端(即Cloudflare节点)的IP,可以手动为NLB开启客户端IP透传功能:开启后IP类型目标组的后端服务可以直接从TCP报文源地址字段拿到直连NLB的客户端公网IP(也就是Cloudflare的节点IP)。注意开启该功能后,NLB到后端的流量源IP不再是NLB私网节点IP,这时候你才可以把Fargate关联的安全组规则调整为仅放通Cloudflare公网IP段,同时一定要把NLB健康检查使用的地址段加入允许列表,否则健康检查失败会导致任务被标记为异常。
  • 如果需要获取Cloudflare背后的真实终端用户IP,不能只靠NLB透传:Cloudflare本身是代理层,NLB能拿到的最上游源IP只有Cloudflare的节点IP,真实用户IP需要在Cloudflare侧配置开启XFF头传递(HTTP/HTTPS服务)或者Proxy Protocol传递(TCP服务),后端服务从对应字段解析即可获取。

额外补充你要实现的「仅允许Cloudflare IP访问NLB」需求的优化方案:只靠后端安全组做拦截,流量已经走完NLB转发链路才会被丢弃,没法在入口层挡住非法流量。更合理的做法是在NLB所在的公有子网关联网络ACL,配置入站规则仅放通Cloudflare公网IP段访问NLB的监听端口,其余公网来源直接在子网边界拦截,安全性和成本表现都更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:33:29