概览与核心价值NetworkPolicy 提供命名空间与 Pod 级的网络访问控制,是零信任在 Kubernetes 中落地的核心。通过精确的 Ingress/Egress 规则,可实现服务间最小权限通信与外部访问治理。基础策略示例:仅允许同命名空间内特定标签访问apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-same-namespace-app namespace: prod spec: podSelector: matchLabels: app: api policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: role: web Egress 策略示例:限制外部地址与端口apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: restrict-egress namespace: prod spec: podSelector: matchLabels: app: api policyTypes: - Egress egress: - to: - ipBlock: cidr: 203.0.113.0/24 except: - 203.0.113.10/32 ports: - protocol: TCP port: 443 命名空间隔离与默认拒绝为实现零信任,建议默认拒绝所有流量,并仅通过白名单策略开放:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-all namespace: prod spec: podSelector: {} policyTypes: - Ingress - Egress 参数与验证环境:`Kubernetes v1.28`,CNI:`Calico/Cilium` 均支持 NetworkPolicy。验证步骤:使用 `kubectl exec` 在不同 Pod 间尝试访问,验证 Ingress 放行与默认拒绝使用 `netcat/curl` 对外部地址 443 访问,确认 Egress 限制生效借助 CNI 可视化/日志(如 Calico flow logs)审计策略匹配最佳实践按命名空间设置 `default-deny`,逐步以白名单开放必需通信使用 `podSelector` 与 `namespaceSelector` 组合匹配,精细化控制分层管理:基础隔离策略 + 业务特定策略,避免规则冲突结论NetworkPolicy 是零信任网络的基础。通过默认拒绝与精确放行,结合严格的 Egress 控制,可在 Kubernetes 中实现安全、可验证的通信边界。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.912940s