如何在AWS Elastic Beanstalk中配置Cloudflare IP白名单
问题结论
Cloudflare IP的入站规则只需要添加到负载均衡器所属的安全组即可,无需配置到后端EC2实例的安全组中。
原因说明
- 带负载均衡的AWS Elastic Beanstalk架构下,所有公网访问流量的链路为:
用户 -> Cloudflare CDN节点 -> 你的负载均衡器公网IP -> 后端EC2实例,Cloudflare的回源请求只会和负载均衡层通信,不会直接访问后端EC2实例的公网地址,因此实例层安全组不需要放通Cloudflare的IP段。 - 后端EC2实例的安全组只需配置放通来自负载均衡安全组的入站流量即可:比如在实例安全组中配置80/443端口的入站允许规则,来源直接填写负载均衡的安全组ID,既满足流量转发要求,也能缩小暴露面提升安全性。
- 你遇到的间歇性超时现象完全符合安全组拦截部分Cloudflare IP的特征:Cloudflare回源时会从官方公开的全量IP池中随机调度节点,当请求使用的IP不在负载均衡安全组的允许列表中时就会被拦截触发超时,下次调度到已放通的IP时访问就自动恢复。
操作建议
- 先清理负载均衡安全组中现有的零散Cloudflare IP入站规则
- 导入Cloudflare官方全量IPv4、IPv6回源IP段,分别为80、443端口配置入站允许规则
- 可选优化:如果你的Elastic Beanstalk环境为EC2实例分配了公网IP,建议直接关闭实例安全组的所有公网入站权限,仅保留负载均衡安全组的内部访问权限,避免攻击者绕过CDN直接访问后端实例。
内容的提问来源于stack exchange,提问作者Paul Chase
相关产品推荐
相关产品推荐

