用途
该技能用于在 Kubernetes 集群中实现纵深防御安全,通过网络策略、Pod 安全标准和 RBAC 等手段加固集群。适用场景包括:实现网络分段、配置 Pod 安全标准、为最小权限访问设置 RBAC、创建合规安全策略、实现准入控制、保护多租户集群。
当任务与 Kubernetes 安全策略无关,或需要本范围之外的其它领域或工具时,不应使用该技能。
主要能力
Pod Security Standards
提供三种命名空间级安全标准的标签配置示例:
- Privileged(不受限):
pod-security.kubernetes.io/enforce: privileged - Baseline(最小限制):
pod-security.kubernetes.io/enforce: baseline - Restricted(最严格):
pod-security.kubernetes.io/enforce: restricted
每种标准同时配置 audit 与 warn 标签。
Network Policies
提供网络策略示例,包括:
- 默认拒绝全部(default-deny-all):对 Ingress 与 Egress 均拒绝
- 允许前端访问后端(allow-frontend-to-backend):基于 podSelector 与端口 8080
- 允许 DNS(allow-dns):放行到 kube-system 命名空间的 UDP 53 端口
RBAC 配置
提供 Role(命名空间级)、ClusterRole(集群级)与 RoleBinding 示例,涵盖对 pods 的 get/watch/list 权限、对 secrets 的读取权限,以及将用户或 ServiceAccount 绑定到角色的方式。
Pod Security Context
提供受限 Pod 示例,包含 runAsNonRoot: true、runAsUser: 1000、fsGroup: 1000、seccompProfile: RuntimeDefault,以及容器级 allowPrivilegeEscalation: false、readOnlyRootFilesystem: true、capabilities.drop: [ALL]。
准入控制(OPA Gatekeeper)
提供 ConstraintTemplate 与 Constraint 示例,用于强制要求 Deployment 带有指定标签(如 app、environment)。
服务网格安全(Istio)
提供 PeerAuthentication(mTLS 模式 STRICT)与 AuthorizationPolicy(基于 principals 的 ALLOW 规则)示例。
使用方式
该技能以指导性说明与 YAML 示例的形式提供,用户需根据自身集群环境调整命名空间、标签、端口、镜像等参数后应用。技能本身不包含自动化执行脚本。
最佳实践
- 在命名空间级别实施 Pod Security Standards
- 使用 Network Policies 进行网络分段
- 为所有 ServiceAccount 应用最小权限 RBAC
- 启用准入控制(OPA Gatekeeper/Kyverno)
- 以非 root 用户运行容器
- 使用只读根文件系统
- 除非必要,丢弃所有 capabilities
- 实施资源配额与 LimitRange
- 为安全事件启用审计日志
- 定期对镜像进行安全扫描
合规框架
- CIS Kubernetes Benchmark:使用 RBAC 授权、启用审计日志、使用 Pod Security Standards、配置网络策略、实施静态加密、启用节点认证
- NIST Cybersecurity Framework:实施纵深防御、使用网络分段、配置安全监控、实施访问控制、启用日志与监控
故障排查
- NetworkPolicy 不生效:检查 CNI 是否支持 NetworkPolicy(
kubectl get nodes -o wide、kubectl describe networkpolicy <name>) - RBAC 权限被拒:检查有效权限(
kubectl auth can-i list pods --as system:serviceaccount:default:my-sa、kubectl auth can-i '*' '*' --as system:serviceaccount:default:my-sa)
限制
- 仅在任务明确匹配上述范围时使用该技能。
- 输出不能替代针对具体环境的验证、测试或专家评审。
- 若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。
- 本目录副本包含内联指导,但不包含以下外部支撑路径:
<support-root>/assets/pod-security-template.yaml。这些是外部前置条件,并非捆绑文件。在依赖这些路径的步骤之前,需获取原始支撑材料或已有安装;本目录未标识经过验证的下载来源。应相对于该安装解析每个路径、检查其内容,并核实适用的许可证与执行前置条件。在所需文件存在之前,不要运行命令或声称已遵循所引用的流程。不要伪造缺失的脚本,也不要把同名的无关文件视为等价。此处完整记录的独立步骤可在用户授权范围内进行;任何依赖步骤应报告为不可用。 - 参考文件包括:
assets/network-policy-template.yaml(网络策略示例)、assets/pod-security-template.yaml(Pod 安全策略)、references/rbac-patterns.md(RBAC 配置模式)。 - 相关技能:k8s-manifest-generator(用于创建安全清单)、gitops-workflow(用于自动化策略部署)。