2. Kubernetes安全基线概述
在跨集群安全基线规则同步与一致性校验之前,必须首先理解业界公认的Kubernetes安全基线标准。本章聚焦三大核心参考框架:CIS Kubernetes Benchmark、NSA/CISA Kubernetes加固指南以及Pod安全标准(PSA)。这三者构成了云原生安全基线的“铁三角”,分别从合规检查、威胁缓解和运行时准入三个维度定义了集群的安全基线。
核心观点: 跨集群规则同步的本质是将这三类基线中的可执行规则(如审计策略、Pod安全上下文、RBAC配置)转化为统一的策略语言,再分发到多个集群。理解基线之间的差异与重叠,是设计同步策略的前提。
2.1 CIS Kubernetes Benchmark
CIS(Center for Internet Security)Kubernetes Benchmark 是目前业界最广泛采用的合规性检查标准。它针对Kubernetes控制平面组件、工作节点、etcd、RBAC、Pod安全等提供了具体的配置检查项。每个检查项都有明确的评分(Scored/Not Scored)和自动化评估脚本。
| 检查类别 | 典型检查项示例 | 风险等级 |
|---|---|---|
| 控制平面配置 | API Server 匿名认证是否禁用;--authorization-mode 是否包含 Node 和 RBAC | 高 |
| etcd 配置 | etcd 是否启用 TLS 双向认证;是否设置 --peer-auto-tls=false | 高 |
| 工作节点配置 | kubelet 是否启用身份认证;是否设置 --read-only-port=0 | 中 |
| RBAC 与服务账户 | 是否避免创建集群管理员绑定的服务账户;是否限制 Secret 的 get 权限 | 高 |
| Pod 安全标准 | Pod 是否设置 SecurityContext;是否禁止 privileged 容器 | 中 |
跨集群同步要点: CIS Benchmark 的检查项通常以
kube-bench 工具输出为 JSON 格式。在跨集群场景中,需要将 CIS 规则映射为 OPA/Gatekeeper 约束模板 或 Kyverno 集群策略,从而实现持续合规校验。
2.2 NSA/CISA Kubernetes加固指南
美国国家安全局(NSA)与网络安全和基础设施安全局(CISA)联合发布的《Kubernetes加固指南》侧重于威胁模型驱动的安全配置。与CIS Benchmark的“检查清单”风格不同,NSA/CISA指南更强调纵深防御和攻击面缩减。其核心建议包括:
- 最小化组件暴露: 禁用不必要的 API Server 特性门控(Feature Gates);限制 kubelet 的 --node-status-update-frequency。
- 网络分段与加密: 强制使用网络策略(NetworkPolicy)隔离工作负载;所有组件间通信必须使用 TLS 1.2+。
- Pod 安全上下文强化: 禁止特权容器;设置 readOnlyRootFilesystem;使用 seccomp 和 AppArmor 配置文件。
- 审计日志与监控: 启用 API Server 审计日志,并配置保留策略;监控异常 API 调用模式。
注意: NSA/CISA 指南中的部分建议(如“禁用所有非必要特性门控”)在跨集群环境中可能影响功能一致性。同步规则时,需要根据集群角色(生产/开发/边缘)进行差异化策略绑定,而非一刀切。
2.3 Pod安全标准(PSA)
Pod安全标准(Pod Security Standards, PSA)是Kubernetes原生提供的准入控制机制,用于定义Pod在安全上下文方面的合规边界。PSA定义了三个等级:
| 等级 | 策略名称 | 核心限制 | 适用场景 |
|---|---|---|---|
| Privileged | 不受限制 | 允许所有权限,包括特权容器、hostNetwork、hostPID等 | 系统组件、监控代理、网络插件 |
| Baseline | 最小限制 | 禁止特权容器;禁止 hostPID/hostIPC;限制 SELinux 类型 | 大多数通用工作负载 |
| Restricted | 严格限制 | 强制只读根文件系统;禁止 allowPrivilegeEscalation;限制 capabilities | 高安全敏感应用、金融/医疗工作负载 |
PSA 通过 PodSecurity 准入控制器 或 PodSecurityConfiguration 在命名空间级别实施。在跨集群场景中,PSA 的同步通常涉及:
- 将 PSA 等级映射为命名空间标签(如
pod-security.kubernetes.io/enforce=restricted)。 - 使用 GitOps 工具(如 ArgoCD)将标签同步到所有集群。
- 结合 OPA/Gatekeeper 实现更细粒度的 Pod 安全上下文校验。
2.4 三大基线的关系与对比
下图展示了 CIS Benchmark、NSA/CISA 指南和 PSA 在 Kubernetes 安全基线中的定位与协作关系:
2.5 基线选择与同步策略建议
在实际跨集群场景中,建议按以下优先级组合使用三大基线:
- 强制层(PSA): 所有集群必须启用 PodSecurity 准入控制器,至少设置为
Baseline等级。生产命名空间强制Restricted。 - 合规层(CIS): 使用
kube-bench定期扫描,将评分低于 90% 的检查项自动生成 Gatekeeper 约束。 - 加固层(NSA/CISA): 针对高风险集群(如面向公网的生产集群),额外启用 seccomp 默认配置文件、网络策略白名单、审计日志告警规则。
实践提示: 在跨集群规则同步中,建议将 PSA 等级作为命名空间标签同步(使用 GitOps),将 CIS 检查项转化为 OPA 规则存储在 ConfigMap 中,将 NSA/CISA 加固建议封装为 Helm Chart 的 values 默认值。这样既能保证一致性,又能保留集群级别的灵活性。