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 图展示了从开发到生产的完整晋级通道与信任边界划分:
3.3 信任边界的核心规则
为了确保晋级通道不被绕过,必须定义清晰的信任边界规则。这些规则直接映射到 Sigstore 的验证逻辑中。
- 不可跳过原则: 镜像必须依次通过 L0 → L1 → L2 → L3。任何试图直接向生产环境推送未经过 L0/L1 签名的镜像的行为,必须被准入控制器拒绝。
- 签名链完整性原则: 每个晋级节点在生成新的 attestation 时,必须引用上一阶段的签名或 attestation 的摘要。最终在生产环境验证时,可以追溯整个签名链。
- 身份绑定原则: 签名必须绑定到具体的执行主体(如 CI 系统的 Service Account、开发者的 OIDC 身份)。生产环境应拒绝使用“未知身份”或“过期身份”签名的镜像。
- 策略即代码原则: 每个信任边界的验证策略(如“必须包含 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 指标告警分层结合,团队可以实时掌握镜像供应链的安全状态,并在信任链出现断裂时快速定位问题环节。