要在 Kubernetes 中保护对外(北向)流量,常见做法是把 云WAF 放在入口层,与 Ingress 控制器配合。可以采用三种集成模式:直接由云厂商的 WAF 服务前置到 LoadBalancer,或将 WAF 作为边车/网关 Pod,亦可通过 Ingress Controller 的自定义注解或插件对接云 WAF。
常见架构:外部流量 -> 云负载均衡 -> 云WAF -> Ingress(控制器) -> Service。若使用 Service Mesh,可把 WAF 配置在入口网关(例如 Istio IngressGateway)上。
步骤建议:1) 在云端创建 WAF 策略并记录前端域名/证书;2) 配置负载均衡器将流量导向 WAF;3) 配置 Ingress 的 host、TLS 和后端 Service;4) 在 Ingress 或负载均衡上添加必要的头部转发与链路跟踪信息。

确保 WAF 与 Ingress 的会话保持、真实客户端 IP(X-Forwarded-For)传递以及 TLS 终止位置一致。若 WAF 做 TLS 终止,需在 Ingress 上使用内部 TLS 或开启后端加密。
在集群内部,网络策略 是限制 Pod 间通讯的第一道防线。与云WAF 联动时,WAF 负责北向入口防护,NetworkPolicy 则负责控制东西向流量,防止被攻陷的应用横向扩散。
建议按层次定义策略:基础层允许核心平台组件通信;应用层限定服务间最小必要访问;紧急隔离层用于事故响应,通过标签快速封锁受影响 Pod。
编写 NetworkPolicy 时优先使用命名空间与标签选择器,明确允许的端口和来源,避免使用宽泛的 allow all 规则。对管理面和数据库等敏感服务实施最严格策略。
结合 WAF 日志设置自动化响应:当 WAF 触发高危告警时,可触发脚本通过 Kubernetes API 调整相应 NetworkPolicy,实现快速临时隔离。
多租户环境要在隔离与共享之间取得平衡。建议每个租户使用独立命名空间、独立 Ingress(或基于路径/域的严格路由)以及租户专属的 NetworkPolicy 集合。
常见模式有命名空间级隔离、ClusterIssuer+Ingress 证书隔离以及使用不同的 IngressClass 或网关实例来实现逻辑隔离。
为避免策略爆炸,采用模板化的 NetworkPolicy 与 GitOps 管理,将通用规则抽象为基线策略,租户特有规则则在其命名空间中维护,配合审计与准入控制(OPA/Gatekeeper)。
云WAF 在多租户下可基于域名策略做租户级规则差异化;同时需确保 WAF 日志能映射到租户维度,用于计费与告警分发。
安全控制不可无限制牺牲延迟。要兼顾性能,建议做基线测试、分级策略与采样式检测,并在关键链路加装指标与追踪,以便定向优化。
可采用:WAF 策略分级(先做高风险拦截,复杂检测异步化)、启用缓存、使用连接复用与 HTTP/2、合理配置 Ingress Controller 的线程与连接数。
开启 WAF 与 Ingress 的访问日志、错误日志,并将日志、指标和 traces 输送到集中平台(Prometheus + Grafana、ELK/EFK、Jaeger)。设置关键 SLA 指标:P95、请求成功率、WAF 拦截率。
建立从外到内的排查清单:外部负载均衡 -> WAF -> Ingress -> Service -> Pod。结合日志链路和抓包可快速定位瓶颈或误拦截规则。
自动化能提高一致性和响应速度。推荐将策略与配置放到代码仓库,通过 CI/CD 管道管理,配合策略校验、回滚与灰度发布机制。
把 Ingress、NetworkPolicy、WAF 配置(若支持 API)放到 Git 中,并用 ArgoCD/Flux 做同步。对变更做预检(lint)、安全检查(OPA)与回滚策略。
在管道中加入集成测试:合规扫描、流量回放和安全回归测试(例如模拟常见 OWASP 攻击),确保规则不会造成误阻断。
将 WAF 告警与监控接入事件管理系统,配置自动化 playbook(例如触发 NetworkPolicy 临时隔离、回滚可疑配置或做灰度下线),提高故障处理效率。