1. 课程导论:镜像供应链安全背景、晋级通道概念、资源变更与 Kyverno 一致性复核的总体关系

1.1 镜像供应链安全背景

云原生环境下,容器镜像已成为应用交付的核心载体。然而,镜像从构建、存储、分发到部署的完整生命周期中,面临着多重安全威胁:

  • 基础镜像投毒:攻击者篡改上游官方镜像,植入后门或恶意负载。
  • 依赖漏洞累积:应用层依赖库(如 Log4j、OpenSSL)存在已知 CVE,未及时修复。
  • 镜像签名缺失:无法验证镜像来源与完整性,易被中间人攻击替换。
  • 运行时配置漂移:镜像在部署后,其安全属性(如只读根文件系统、特权模式)被意外或恶意修改。
关键数据:据 2024 年云原生计算基金会(CNCF)安全调查报告,超过 60% 的受访企业在生产环境中遭遇过与镜像相关的安全事件,其中 35% 的事件直接源于镜像供应链的某个环节被攻破。

1.2 晋级通道(Promotion Pipeline)概念

晋级通道是一种分阶段、带安全门禁的镜像流转机制。镜像从开发环境构建后,依次经过多个安全等级递增的环境(如开发→测试→预发布→生产),每个环境入口都设有策略门禁,只有通过一致性复核的镜像才能晋级到下一阶段。

环境阶段 安全等级 典型门禁策略
开发(Dev) 低 基础漏洞扫描、镜像格式校验
测试(Test) 中 签名验证、非 root 用户检查、敏感端口暴露检测
预发布(Staging) 高 SBOM 完整性校验、运行时基线策略、只读文件系统强制
生产(Production) 最高 多签名联合验证、不可变标签、特权容器禁止
核心思想:晋级通道不是简单的 CI/CD 流水线,而是一种“安全信任递进”模型——每个环境只信任经过上一阶段严格验证的镜像,从而将安全风险隔离在早期阶段。

1.3 资源变更与 Kyverno 一致性复核的总体关系

在 Kubernetes 集群中,镜像的部署最终体现为 Pod、Deployment、StatefulSet 等资源的创建与更新。这些资源变更(Resource Change)是镜像进入运行时的“最后一公里”。Kyverno 作为 Kubernetes 原生的策略引擎,在此处承担一致性复核(Consistency Reconcile)的关键角色:

  • 准入控制(Admission Control):在资源变更请求到达 API Server 时,Kyverno 通过 MutatingWebhook 和 ValidatingWebhook 拦截请求,检查镜像属性是否符合晋级通道的安全策略。
  • 资源变更审计(Audit):对于已运行的资源,Kyverno 定期扫描并报告与策略不一致的镜像配置,形成合规差距分析。
  • 自动修复(Auto-Remediation):当检测到资源变更导致镜像安全属性偏离基线时,Kyverno 可自动生成补丁或触发回滚操作。
镜像晋级通道与 Kyverno 一致性复核总体架构 晋级通道(Promotion Pipeline) 开发环境 基础扫描 + 格式校验 测试环境 签名验证 + 非 root 检查 预发布环境 SBOM 校验 + 运行时基线 生产环境 多签名联合验证 资源变更(Resource Change) Pod 创建/更新 Deployment 变更 StatefulSet 扩缩容 DaemonSet 更新 Job/CronJob 创建 镜像引用 + 安全属性 Kyverno 一致性复核 准入控制 Mutating / Validating Webhook 审计扫描 定期合规差距分析 自动修复 补丁生成 / 回滚触发 策略定义 ClusterPolicy / Policy 镜像晋级 策略复核

1.4 三者协同关系总结

镜像供应链安全、晋级通道、资源变更与 Kyverno 一致性复核构成一个闭环的安全控制体系:

  1. 镜像供应链安全 定义了“什么是安全的镜像”——包括签名、漏洞基线、SBOM 完整性等要求。
  2. 晋级通道 将这些安全要求转化为分阶段的门禁策略,确保镜像在进入生产前经过充分验证。
  3. 资源变更 是镜像安全策略在 Kubernetes 集群中的最终落地载体——任何镜像的部署、更新、回滚都体现为资源的创建或修改。
  4. Kyverno 一致性复核 作为策略执行引擎,在资源变更发生时实时校验镜像属性是否满足晋级通道的安全要求,并在发现偏离时进行审计或自动修复。
常见误区:很多团队只关注镜像构建阶段的安全扫描,而忽略了运行时资源变更可能引入的安全漂移。例如,一个在预发布环境通过验证的镜像,可能因为运维人员手动修改 Deployment 的 securityContext 而失去只读文件系统保护。Kyverno 的一致性复核正是要捕获这类“最后一公里”的配置偏离。