3. 晋级通道概念:从开发到生产的镜像安全晋级模型、信任边界定义

镜像供应链安全的核心挑战在于:如何确保一个从开发者本地构建的镜像,在经历代码提交、CI 编译、制品仓库存储、预发验证、生产部署等多个环节后,其内容与签名依然可信、未被篡改? 传统的“一把扫帚扫到底”的安全策略无法应对现代云原生架构的复杂流转。因此,我们需要引入 晋级通道(Promotion Pipeline) 的概念,将镜像的安全状态与部署环境解耦,形成从开发到生产的逐级信任增强模型。

3.1 镜像安全晋级模型:四阶段信任阶梯

我们将镜像的生命周期划分为四个核心信任阶段,每个阶段对应不同的安全准入标准和签名策略。镜像必须通过前一阶段的验证,才能“晋级”到下一阶段。

阶段 环境 核心安全目标 签名主体 Sigstore 关键操作
L0:开发构建 开发者本地 / CI 确保镜像来源可追溯,防止恶意代码注入 开发者 / CI 机器人 使用 cosign sign 对镜像摘要签名,生成 DSSE 信封
L1:制品入库 镜像仓库(Registry) 确保入库镜像经过基础扫描,未被篡改 CI 系统 / 安全扫描器 验证 L0 签名,附加 SBOM 和扫描结果作为 attestation
L2:预发验证 预发 / 测试集群 确保镜像通过集成测试和安全策略审计 预发环境策略控制器 使用 cosign verify-attestation 检查策略符合性
L3:生产部署 生产集群 确保镜像具备最高信任等级,仅允许已签名的晋级镜像 生产环境准入控制器 强制验证完整签名链和最终 attestation,拒绝未晋级镜像
关键原则: 晋级模型是单向且不可逆的。一旦镜像从 L0 晋级到 L1,其原始签名和 attestation 必须被保留并传递。任何对镜像内容的修改(即使只是重新打标签)都应视为新的构建,需要重新从 L0 开始晋级。

3.2 信任边界定义:谁在什么环节负责什么

信任边界是晋级通道的“护栏”。它明确了在每个晋级节点,谁(信任主体) 对 什么(信任对象) 负责,以及 如何(信任机制) 建立信任。

  • 信任主体(Trustor): 下游环境(如预发集群、生产集群)的策略执行点。
  • 信任对象(Trustee): 镜像本身及其关联的元数据(签名、attestation、SBOM)。
  • 信任机制(Mechanism): 基于 Sigstore 的 公钥基础设施(Fulcio) 和 透明日志(Rekor) 实现的验证链。

以下 SVG 图展示了从开发到生产的完整晋级通道与信任边界划分:

镜像供应链安全晋级通道与信任边界 镜像供应链安全晋级通道与信任边界 L0: 开发构建 L1: 制品入库 L2: 预发验证 L3: 生产部署 开发者 / CI cosign sign 镜像仓库 扫描 + Attest 预发集群 策略验证 生产集群 强制准入 信任边界:每个晋级节点必须验证上一阶段的签名和 attestation,否则拒绝晋级 信任主体(Trustor) - L1: 镜像仓库准入控制器 - L2: 预发环境策略引擎 - L3: 生产环境 Admission Controller - 验证依据:Fulcio 证书 + Rekor 日志 信任对象(Trustee) - L0: 镜像摘要 + 开发者签名 - L1: 镜像 + SBOM + 漏洞扫描 Attestation - L2: 镜像 + 集成测试结果 + 策略合规 Attestation - L3: 完整签名链 + 最终生产准入 Attestation

3.3 信任边界的核心规则

为了确保晋级通道不被绕过,必须定义清晰的信任边界规则。这些规则直接映射到 Sigstore 的验证逻辑中。

  1. 不可跳过原则: 镜像必须依次通过 L0 → L1 → L2 → L3。任何试图直接向生产环境推送未经过 L0/L1 签名的镜像的行为,必须被准入控制器拒绝。
  2. 签名链完整性原则: 每个晋级节点在生成新的 attestation 时,必须引用上一阶段的签名或 attestation 的摘要。最终在生产环境验证时,可以追溯整个签名链。
  3. 身份绑定原则: 签名必须绑定到具体的执行主体(如 CI 系统的 Service Account、开发者的 OIDC 身份)。生产环境应拒绝使用“未知身份”或“过期身份”签名的镜像。
  4. 策略即代码原则: 每个信任边界的验证策略(如“必须包含 CVE 扫描结果”、“必须通过单元测试”)应定义为代码(如 Rego 策略),并存储在 Git 中进行版本管理。
常见陷阱: 许多团队在实施晋级通道时,只关注了“签名”而忽略了“attestation”。例如,一个镜像虽然被 CI 签名了,但签名时并未附带 SBOM 或扫描结果。当该镜像晋级到生产环境时,准入控制器无法判断其是否经过安全扫描,从而失去了晋级模型的意义。务必确保每个晋级节点都生成并验证对应的 attestation。

3.4 晋级通道与 Sigstore 指标告警的映射

晋级通道的每个阶段都可以映射到具体的 Sigstore 操作指标,这些指标将作为后续告警分层的基础。下表展示了关键映射关系:

晋级阶段 关键 Sigstore 操作 可观测指标示例 告警触发条件(示例)
L0 → L1 cosign sign + cosign attach 签名成功率、attestation 生成率 签名成功率 < 95% 或 attestation 缺失率 > 5%
L1 → L2 cosign verify + 策略检查 验证通过率、策略违规次数 验证通过率 < 90% 或出现高危策略违规
L2 → L3 cosign verify-attestation 生产准入拒绝率、签名链断裂次数 生产准入拒绝率 > 1% 或出现签名链断裂事件

通过将晋级通道与 Sigstore 指标告警分层结合,团队可以实时掌握镜像供应链的安全状态,并在信任链出现断裂时快速定位问题环节。