2. Kubernetes 安全基线概述:CIS Kubernetes Benchmark、Pod 安全标准 (PSA/PSS)、常见安全基线要求

在云原生安全基线冷启动场景中,理解 Kubernetes 自身的安全基线体系是策略加载优化的前提。Kubernetes 安全基线并非单一标准,而是由行业基准、内置准入控制与社区最佳实践共同构成的层次化框架。本节将围绕 CIS Kubernetes Benchmark、Pod 安全标准 (PSA/PSS) 以及常见安全基线要求展开,为后续 Kyverno 策略映射提供结构化依据。

2.1 CIS Kubernetes Benchmark:行业合规基准

CIS (Center for Internet Security) Kubernetes Benchmark 是目前业界最权威的 Kubernetes 安全配置审计标准。它针对不同 Kubernetes 版本(如 v1.24、v1.25、v1.26 等)发布对应的检查项清单,覆盖控制平面组件、工作节点、Pod 安全、网络策略、RBAC 等多个维度。

核心定位:CIS Benchmark 提供的是“应该做什么”的检查清单,而非“如何自动执行”的策略引擎。在冷启动场景下,CIS 检查项是 Kyverno 策略编写的需求来源之一。

CIS Kubernetes Benchmark 的检查项通常分为以下几类:

分类编号 分类名称 典型检查项示例 冷启动关联度
1.x 控制平面安全配置 API Server 匿名认证禁用、--authorization-mode 包含 Node/RBAC 高(影响集群级策略)
2.x etcd 安全配置 etcd 证书认证、TLS 加密、数据目录权限 中(基础设施层)
3.x 控制平面组件配置 Controller Manager、Scheduler 的 TLS 与绑定地址 中
4.x 工作节点安全配置 kubelet 匿名认证禁用、--read-only-port 关闭 高(节点级策略)
5.x Pod 安全与策略 Pod 不应以 root 运行、不应挂载 Docker socket、SecurityContext 配置 极高(直接映射 Kyverno 策略)
6.x 网络策略与 CNI 默认命名空间应配置网络策略、禁止 HostNetwork 高
7.x RBAC 与审计 最小权限原则、审计日志启用、ServiceAccount 自动挂载控制 高
冷启动提示:在基线冷启动阶段,建议优先覆盖 CIS 5.x(Pod 安全)和 7.x(RBAC)的检查项,这两类策略对运行时风险影响最大,且 Kyverno 的 mutate/validate 能力能直接对应。

2.2 Pod 安全标准 (PSA/PSS):Kubernetes 原生准入控制

Pod 安全标准 (Pod Security Standards, PSS) 是 Kubernetes v1.23+ 内置的准入控制框架,取代了废弃的 PodSecurityPolicy (PSP)。PSS 定义了三个安全等级,通过 Pod Security Admission (PSA) 控制器在命名空间级别实施。

三个安全等级的定义与策略要求如下:

等级 名称 策略严格度 典型限制 适用场景
Privileged 特权级 无限制 无额外限制,允许特权容器、HostNetwork、HostPID 等 系统组件、监控 Agent、特权运维工具
Baseline 基线级 中等 禁止特权容器、禁止 HostPID/IPC、禁止 NET_RAW、限制 seccomp 等 大多数通用工作负载
Restricted 严格级 最严格 Baseline 全部限制 + 禁止 NET_RAW、强制只读根文件系统、强制非 root 用户、强制 seccomp=RuntimeDefault 高安全敏感应用、金融/合规场景

PSA 通过命名空间标签 pod-security.kubernetes.io/enforce、pod-security.kubernetes.io/audit、pod-security.kubernetes.io/warn 分别控制强制、审计、警告三种模式。

# 示例:为命名空间设置 Restricted 强制等级
apiVersion: v1
kind: Namespace
metadata:
  name: production-secure
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/enforce-version: latest
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/warn: restricted
冷启动注意:PSA 是内置机制,但存在局限性:无法自定义异常规则、无法跨命名空间聚合审计、无法在拒绝前执行 mutate 修复。这正是 Kyverno 在冷启动场景下的价值——Kyverno 可以补充 PSA 无法覆盖的自定义策略,并在 PSA 拒绝前进行自动修复(如自动注入 SecurityContext)。
Kubernetes 安全基线层次结构 Kubernetes 安全基线层次结构 CIS Kubernetes Benchmark Pod 安全标准 (PSA / PSS) 常见安全基线要求(RBAC / 网络策略 / 镜像 / 审计) Kyverno 策略映射与加载优化 冷启动场景策略加载优化路径 CIS 检查项 → 映射为 PSS 等级 → 补充自定义基线要求 → Kyverno 策略批量加载与缓存优化 目标:在集群初始化阶段,以最小延迟完成全部安全基线策略的注册与生效

2.3 常见安全基线要求:从 CIS 到 PSS 的落地映射

在实际冷启动场景中,团队通常需要将 CIS Benchmark 的检查项与 PSS 等级进行映射,形成可执行的策略清单。以下表格展示了常见安全基线要求及其在 CIS 和 PSS 中的对应关系:

安全基线要求 CIS 检查项编号 PSS 等级 Kyverno 策略类型 冷启动优先级
禁止特权容器 5.2.1 Baseline / Restricted validate (deny) P0
禁止容器以 root 运行 5.2.6 Restricted mutate (注入 runAsNonRoot) + validate P0
限制容器添加 Linux Capabilities 5.2.7 Baseline / Restricted validate (deny ADD, allow DROP) P1
禁止 HostNetwork / HostPID / HostIPC 5.2.2 Baseline / Restricted validate (deny) P0
强制只读根文件系统 5.2.9 Restricted mutate (注入 readOnlyRootFilesystem) P1
禁止挂载 Docker socket 5.2.5 Baseline validate (deny hostPath) P0
强制 seccomp 配置 5.2.11 Restricted mutate (注入 seccompProfile) P1
最小 RBAC 权限 7.1.x N/A (集群级) validate (检查 ClusterRole/Role 规则) P0
默认命名空间网络策略 6.1.1 N/A (网络层) generate (自动创建 NetworkPolicy) P1
冷启动策略加载优化要点:
  • P0 策略(如禁止特权容器、禁止 root 运行)应在集群初始化时同步加载,作为准入控制的强制门禁。
  • P1 策略(如只读根文件系统、seccomp)可采用异步加载 + mutate 修复模式,在冷启动阶段先注册 validate 规则,mutate 规则延迟 5-10 秒加载,避免启动风暴。
  • 生成类策略(如自动创建 NetworkPolicy)应在冷启动完成后,通过后台控制器逐步生效,不阻塞 Pod 创建。
冷启动策略优先级与加载时序 冷启动策略优先级与加载时序 T=0s T=5s T=15s T=30s+ P0:同步加载(强制拒绝) P1:异步加载(mutate+validate) P2:后台生成(不阻塞准入) 加载时序说明 • T=0s:集群 API Server 启动后,立即注册 P0 策略(validate/deny),确保任何 Pod 创建都经过基线检查。 • T=5s:P1 策略的 validate 规则注册,mutate 规则延迟至 T=10s 注册,避免 mutate webhook 在冷启动初期造成超时。 • T=15s:P2 生成类策略(如 NetworkPolicy、ResourceQuota)通过后台控制器逐步创建,不参与准入 webhook。 • T=30s+:所有策略完成加载,集群进入稳态安全基线运行模式。 • 优化目标:在 15 秒内完成全部准入类策略注册,将冷启动对 Pod 创建延迟的影响控制在 200ms 以内。

2.4 常见安全基线要求的落地原则

在冷启动场景下,将安全基线要求转化为 Kyverno 策略时,应遵循以下原则:

  1. 分层映射原则:将 CIS 检查项映射到 PSS 等级,再映射到 Kyverno 策略。避免直接编写“CIS 检查项策略”,而是以 PSS 等级为中间层,提高策略的可移植性。
  2. 最小化准入延迟原则:冷启动阶段,只注册必须的 validate/deny 策略;mutate 和 generate 策略可以延迟加载或异步执行。
  3. 异常豁免机制:为系统组件(如 kube-system、ingress-nginx)预留豁免标签,避免基线策略误拦截关键组件。
  4. 审计优先原则:在冷启动初期,对不确定的基线要求先采用 audit 模式(仅记录不拒绝),待策略稳定后再切换为 enforce 模式。
实践建议:在冷启动脚本中,预先定义好命名空间的安全等级标签(如 pod-security.kubernetes.io/enforce: baseline),然后让 Kyverno 策略根据命名空间标签自动匹配生效范围。这样可以在策略加载完成前,先由 PSA 提供一层基础保护。