2. 核心概念:配置合规、环境一致性、基线、漂移、审计、策略即代码的定义与关系

在 Kubernetes 集群运维与安全治理中,理解核心概念是建立有效核验流程的前提。本章将逐一拆解六个关键术语的定义,并通过对比表格与关系图厘清它们之间的逻辑链条。

2.1 核心概念定义

概念 英文 定义 K8s 场景示例
配置合规 Configuration Compliance 集群资源配置与安全策略、行业标准(如 CIS Benchmark、PCI DSS)或组织内部规范的一致性程度。 Pod 必须设置 readOnlyRootFilesystem: true;禁止使用 privileged: true。
环境一致性 Environment Consistency 不同环境(开发、测试、预发布、生产)之间在 Kubernetes 版本、组件配置、资源配额、网络策略等方面的可重复性与对齐程度。 开发环境与生产环境使用相同的 Ingress Controller 版本和 RBAC 配置。
基线 Baseline 经过审批的、可接受的集群配置与安全状态的基准快照,是合规与一致性核验的参考点。 一份 YAML 清单定义了所有 Namespace 必须包含的 NetworkPolicy 和 ResourceQuota。
漂移 Drift 集群实际运行状态与基线之间的偏差。漂移是合规失效和环境不一致的直接原因。 运维人员手动修改了 kube-system 下的 ConfigMap,导致与 Git 仓库中的基线版本不一致。
审计 Audit 对集群操作、配置变更、访问记录进行系统性记录、审查与验证的过程,用于追溯漂移和评估合规状态。 启用 Kubernetes Audit Log,记录谁在何时修改了 Deployment 的镜像版本。
策略即代码 Policy as Code (PaC) 将合规规则、安全约束、治理策略以机器可读的代码形式声明、版本化、自动化执行。 使用 OPA/Gatekeeper 编写 Rego 策略,强制所有 Ingress 必须配置 TLS。
关键区分: 基线是“期望状态”,合规是“与期望状态的匹配度”,漂移是“实际状态与期望状态的差值”。策略即代码是“定义和强制执行期望状态的手段”。

2.2 概念关系:从策略到审计的闭环

六个概念并非孤立存在,而是构成一个持续治理的闭环。下图展示了从策略定义到审计反馈的核心流程。

配置合规与环境一致性核心概念关系图 核心概念关系:从策略到审计的闭环 策略即代码 (PaC) 基线 (Baseline) 配置合规 环境一致性 漂移 (Drift) 审计 (Audit) 定义 对比实际状态 正向/负向 跨环境偏差 触发记录 反馈优化 闭环说明:PaC 定义基线 → 基线对比实际状态发现漂移 → 漂移影响合规与一致性 → 审计记录漂移 → 审计结果反馈优化 PaC 策略

2.3 概念关系矩阵

下表从“依赖关系”和“驱动关系”两个维度,进一步明确各概念之间的相互作用。

概念 A 概念 B 关系类型 说明
策略即代码 基线 定义 / 生成 PaC 策略经过编译或渲染后,形成可执行的基线配置清单。
基线 配置合规 参考 / 度量 合规检查以基线为唯一参考标准,偏离基线即视为不合规。
基线 环境一致性 统一 / 对齐 多环境共享同一基线,是保证环境一致性的前提。
漂移 配置合规 负向 / 破坏 漂移是导致合规失效的直接原因,漂移量越大,合规度越低。
漂移 环境一致性 偏差 / 差异 不同环境之间的漂移差异,直接导致环境不一致。
审计 漂移 检测 / 记录 审计日志是发现和追溯漂移的主要数据源。
审计 策略即代码 反馈 / 优化 审计结果揭示策略盲区或误报,驱动 PaC 策略的迭代更新。

2.4 策略即代码:连接所有概念的枢纽

在 Kubernetes 生态中,策略即代码 (PaC) 是贯穿整个治理体系的核心枢纽。它通过声明式语言将安全与合规规则代码化,实现自动化执行与版本管理。

PaC 在核验流程中的三个关键作用:
  1. 基线固化: 将基线从静态文档转化为可执行的代码(如 OPA 策略、Kyverno 规则)。
  2. 漂移预防: 在 Admission Controller 阶段拦截违反策略的请求,从源头阻止漂移发生。
  3. 审计增强: 策略执行日志本身就是审计数据的一部分,提供结构化的合规证据。

以下是一个使用 Kyverno 实现策略即代码的简单示例,该策略强制所有 Pod 必须设置 readOnlyRootFilesystem:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-readonly-rootfs
spec:
  validationFailureAction: Enforce
  rules:
  - name: check-readonly-rootfs
    match:
      any:
      - resources:
          kinds:
          - Pod
    validate:
      message: "所有容器必须设置 readOnlyRootFilesystem: true"
      pattern:
        spec:
          containers:
          - securityContext:
              readOnlyRootFilesystem: true
常见误区: 不要将“基线”等同于“策略即代码”。基线是“是什么”(期望状态),PaC 是“怎么做”(实现手段)。一个基线可能由多条 PaC 策略共同定义,也可能包含非代码化的配置项(如手动批准的例外清单)。

2.5 本章小结

六个核心概念构成了 Kubernetes 配置合规与环境一致性治理的完整语义网络:

  • 策略即代码 是治理的起点,它将规则代码化。
  • 基线 是治理的标尺,定义了期望状态。
  • 配置合规 与 环境一致性 是治理的目标。
  • 漂移 是治理的敌人,是导致目标失效的根源。
  • 审计 是治理的眼睛,提供可见性与反馈。