3. 安全基线定义:云原生安全基线及其在 K8s 中的映射

云原生安全基线是业界公认的、针对 Kubernetes 集群及容器化工作负载的最小安全配置集合。它并非单一标准,而是由多个权威机构发布的、相互补充的指导框架。在 OPA 接入容量水位巡检后,理解这些基线在 K8s 中的具体映射,是定义权限边界和构建审计链路的前提。

3.1 核心安全基线框架

当前业界最广泛采纳的两套基线标准为 CIS Benchmark for Kubernetes 和 NSA/CISA Kubernetes Hardening Guide。两者侧重点不同,但共同构成了云原生安全的最佳实践。

维度 CIS Benchmark for Kubernetes NSA/CISA Kubernetes Hardening Guide
发布机构 Center for Internet Security (CIS) 美国国家安全局 (NSA) 与网络安全和基础设施安全局 (CISA)
核心定位 可审计的、逐条检查的配置清单 面向威胁的、高层次的加固策略与架构建议
检查粒度 细粒度,包含 100+ 条具体检查项 粗粒度,聚焦于关键风险域(如 Pod 安全、网络隔离)
适用场景 合规审计、自动化扫描、基线评分 安全架构设计、威胁建模、高级防御
更新频率 随 K8s 版本发布定期更新 不定期,基于最新威胁情报更新
实践建议: 在 OPA 策略中,通常以 CIS Benchmark 作为准入控制的“硬性门槛”,以 NSA/CISA 指南 作为风险治理的“弹性目标”。两者结合,可构建从“合规”到“安全”的完整基线体系。

3.2 基线在 Kubernetes 中的映射关系

安全基线并非抽象概念,它们直接映射到 K8s 的特定资源对象、配置字段和运行时行为。理解这种映射,是编写 OPA 策略和设计审计日志采集规则的基础。

下图展示了 CIS Benchmark 与 NSA/CISA 指南中的关键控制项在 K8s 控制平面、工作节点及工作负载层面的典型映射关系。

安全基线在 Kubernetes 中的映射关系图 安全基线在 Kubernetes 中的映射关系 CIS Benchmark NSA/CISA 加固指南 控制平面组件配置 工作节点 kubelet 配置 Pod 安全标准 (PSA/PSS) RBAC 与网络策略 API Server 审计日志启用 kubelet 匿名认证禁用 禁止特权容器 (Privileged) 最小权限 RBAC 绑定 映射说明: • CIS Benchmark 第 1 章(控制平面)→ 映射到 API Server、Controller Manager、Scheduler 的启动参数与文件权限。 • CIS Benchmark 第 2 章(工作节点)→ 映射到 kubelet 配置文件和 kube-proxy 参数。 • NSA/CISA 指南 → 强调 Pod 安全标准 (Restricted 级别) 和网络策略的强制实施。 • 两者共同映射到 RBAC 权限控制,要求遵循“最小权限”原则。

3.3 关键基线项在 K8s 资源中的具体映射

为了便于 OPA 策略编写,我们将最关键的基线项与其对应的 K8s 资源字段进行映射。这是实现自动化巡检和准入控制的核心。

基线类别 基线要求 K8s 资源/字段映射 OPA 策略关注点
Pod 安全 禁止特权容器 spec.containers[*].securityContext.privileged 检查该字段是否为 true
限制容器用户为 non-root spec.containers[*].securityContext.runAsNonRoot 检查该字段是否为 true
RBAC 权限 最小权限原则 RoleBinding / ClusterRoleBinding 中的 subjects 和 roleRef 禁止绑定 cluster-admin 等高风险 ClusterRole 给非管理员用户
禁止匿名访问 API Server 启动参数 --anonymous-auth=false 检查集群组件配置(需通过 Node 或 API 探测)
网络策略 默认拒绝入站/出站流量 NetworkPolicy 资源的存在性及 podSelector 配置 检查 Namespace 下是否存在默认拒绝策略
限制服务暴露范围 Service 的 spec.type 字段 禁止使用 NodePort 或 LoadBalancer 类型(除非白名单)
审计日志 启用审计日志并配置保留策略 API Server 启动参数 --audit-log-path 和 --audit-log-maxage 验证审计日志后端是否配置且存活

3.4 基线在容量水位巡检中的特殊意义

当 OPA 接入容量水位巡检后,安全基线的定义需要扩展。传统的基线只关注“是否安全”,而容量巡检引入了“是否稳定”的维度。两者在以下场景中产生交集:

  • 资源耗尽攻击防护: 基线要求限制 Pod 的 resources.requests 和 resources.limits,防止单个 Pod 耗尽节点资源导致 DoS。
  • 水平扩缩容安全: HPA 配置必须与 Pod 安全上下文协同,避免因资源争抢导致 Pod 被 OOMKill 或驱逐,从而触发异常扩缩容。
  • 节点压力驱逐: 基线中的 kubelet 配置(如 evictionHard)直接决定了节点在资源紧张时的行为,这属于容量水位巡检的“硬边界”。
关键警示: 在 OPA 策略中,不能 将安全基线与容量基线割裂。例如,一个 Pod 虽然满足“禁止特权”的安全基线,但如果它没有设置 resources.limits,在容量水位巡检中仍会被标记为“高风险”。OPA 策略必须同时评估这两个维度,才能给出准确的合规评分。

3.5 基线映射的审计链路起点

安全基线在 K8s 中的映射,直接决定了审计日志的采集范围和 OPA 的决策点。以下是审计链路的起点:

  1. 准入审计: 当用户通过 kubectl apply 创建 Pod 时,OPA 拦截请求,检查其 securityContext 是否违反 CIS 基线。
  2. 运行时审计: 对于已运行的 Pod,通过 kubelet 的 /pods 端点或审计日志,持续验证其实际行为(如是否挂载了宿主机敏感路径)。
  3. 配置审计: 定期扫描集群组件(如 API Server、kubelet)的启动参数,与 CIS Benchmark 的配置项进行比对。
  4. 容量关联审计: 将 Pod 的资源使用数据(来自 Metrics Server)与安全基线中的资源限制策略进行交叉验证,生成“安全+容量”的综合审计事件。

通过上述映射,安全基线不再是静态的文档,而是转化为 OPA 可执行的策略规则和审计系统可追踪的日志事件,为后续的权限边界定义和审计链路构建奠定了数据基础。