WAF后端EKS集群IP白名单配置与WAF绕过防护咨询
EKS集群仅放行WAF流量的实现方案
以下方案按落地优先级从高到低排序:
方案1:配置NLB安全组白名单(最推荐,性能损耗最小)
直接在网络负载均衡(NLB)关联的安全组层面做访问控制,从链路最外层拦截非法流量:
- 若使用AWS托管WAF/CloudFront关联WAF:获取对应服务的公网IP段,将这些IP段添加到NLB安全组的入站规则,仅放行这些IP对80/443监听端口的访问,其余所有入站流量默认拒绝。
- 若使用第三方/自托管WAF:直接将WAF的出口IP段添加到NLB安全组白名单即可。
- 补充优化:如果WAF IP段会定期更新,可搭配Lambda函数实现自动更新安全组规则,避免手动维护遗漏。
方案2:Nginx Ingress Controller层配置IP白名单
如果安全组调整权限受限,可在入口控制器层面做校验:
- 首先确认NLB的目标组已开启
客户端IP保留功能,确保Nginx能拿到请求的真实源IP。 - 在Ingress资源中添加白名单注解,仅放行WAF的IP段访问,示例配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/whitelist-source-range: "WAF_IP段1,WAF_IP段2" name: 业务ingress名称 spec: # 其余原有配置不变
- 配置后非白名单IP发起的请求会直接返回403错误。
方案3:VPC网络ACL层面限制
如果需要从子网层面做全局管控,可配置NLB所在子网的网络ACL规则:
- 入站规则仅允许WAF IP段访问NLB监听端口,其余公网入站流量默认拒绝。
- 注意网络ACL为无状态规则,需同步配置对应出站规则允许响应流量正常返回。
验证步骤
所有配置完成后务必做两次校验:
- 从正常业务链路经WAF发起访问,验证业务功能无异常
- 从其他公网环境直接访问NLB的公网IP/域名,验证请求被成功拦截
内容的提问来源于stack exchange,提问作者user17333777
相关产品推荐
相关产品推荐

