出网白名单是控制容器主动外连最直接有效的手段,需同时绑定目标ip、端口和发起进程路径,支持常规与正则两种加白模式,并限定最小生效范围,配合egress networkpolicy实现纵深防御。

出网白名单是控制容器主动外连行为最直接有效的手段,它不依赖应用层逻辑判断,而是在网络策略层强制约束Pod能访问哪些外部目标,从根本上堵住反弹Shell、数据外泄、横向渗透等高危路径。
明确白名单覆盖范围:目标IP+端口+进程三要素缺一不可
仅放行IP或仅限制端口都不够安全。必须同时绑定目标地址、端口和发起连接的进程路径,才能精准识别合法外连行为。
- 目标IP支持单个地址(192.168.5.10)、IP段(192.168.5.0/24)或范围(192.168.5.10-192.168.5.20),禁止使用0.0.0.0/0等宽泛配置
- 端口需显式列出,如443,8080,9092,多个端口用英文逗号分隔;若业务无需端口限制,仍建议留空而非填“*”
- 连接进程字段必须填写实际二进制路径(如/usr/bin/curl)或支持通配符的命令行模式(如/app/bin/*),避免只写进程名导致绕过
区分常规加白与正则加白,按场景选型
常规加白适合固定目标的稳定服务调用,正则加白用于动态域名解析、多实例服务发现等复杂场景。
- 常规加白:适用于数据库同步、日志上报、监控采集等目标明确的连接,配置简单、审计直观
- 正则加白:当目标IP或域名频繁变化(如云厂商SLB后端、K8s Service ClusterIP自动分配),可基于目标IP、进程参数、镜像名称等字段构建匹配规则,例如:
— 匹配所有向*.aliyuncs.com:443发起TLS请求的curl进程
— 仅允许nginx:1.25镜像中/usr/sbin/nginx进程访问特定API网关
绑定生效范围,避免策略越界
白名单必须限定在最小作用域内,防止被无关容器复用。
- 选择“全部镜像”仅用于全局基础设施组件(如统一日志代理),日常业务Pod一律选“自选镜像”
- 支持Shift多选,建议按环境标签(env=prod)+功能标签(app=payment)组合筛选,确保策略仅作用于支付服务生产实例
- 若某镜像存在多个版本(如myapp:v1.2和myapp:v1.3),应分别加白,避免版本升级后策略失效
配合Egress NetworkPolicy做双重校验
白名单机制属于运行时安全层防护,而Kubernetes原生Egress策略属于网络控制面,二者叠加可形成纵深防御。
- 先通过NetworkPolicy定义基础出站规则(如只允许访问10.96.0.0/12集群内部服务),再用白名单细化到具体进程和外部目标
- Egress策略无法识别进程路径,白名单无法控制Pod间通信——两者互补,不可互相替代
- 上线前务必验证:禁用白名单后,非法外连应被拦截且产生告警;启用后,合法请求应无延迟通过











