← 中文资源

简体中文版本

施加默认拒绝的网络策略

默认拒绝所有 Pod 流量,再按工作负载需要放行必要路径,使被攻陷的 Pod 无法触达无关服务。

阅读英文原文

概述

Pod 间可自由通信意味着一个被攻陷的 Pod 即可扫达跨集群的数据库与内部服务。默认拒绝加按需放行把东西向流量收敛到显式声明的依赖上,前提是 CNI 真正强制执行策略。

关键步骤

  1. 在每个命名空间创建入站与出站的默认拒绝策略。
  2. 为 DNS 出站与具体服务依赖添加放行规则。
  3. 仅从已知来源放行实际使用的端口。
  4. 用应被拒绝的 Pod 发起连接测试以验证。

验证

  • 未显式允许的流量被阻断。
  • 工作负载能解析 DNS 并访问其依赖。
  • 健康检查与入口控制器可正常访问。
  • 测试 Pod 连接被拒绝。

注意事项

  • NetworkPolicy 依赖 CNI 执行;某些 CNI 忽略策略,会造成虚假安全感。
  • 策略按命名空间与标签生效,标签配错可能意外放行或阻断流量。

适用范围

本条目围绕「施加默认拒绝的网络策略」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: { name: default-deny, namespace: prod }
spec:
  podSelector: {}
  policyTypes: [Ingress, Egress]
  # no ingress/egress rules => deny all