背景

镜像标签只能说明一个名字,不能说明产物来自哪个提交、在哪个环境构建。供应链证明应绑定不可变的镜像摘要。

核心判断

  1. SBOM 描述依赖,provenance 描述构建来源,签名证明被信任的身份。
  2. 部署使用 digest,并在准入或发布流程中验证身份与来源。
  3. 将失败验证设为阻断,而不是只把证明存到制品库。

最小示例

下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。

steps:
  - uses: docker/build-push-action@v6
    with: { push: true, provenance: mode=max, sbom: true }

边界与误区

示例只产生构建证明,不会自动生成独立可信签名。Action 的 major 标签也不是不可变引用,生产流水线应锁定审查过的 commit。

验证方式

修改源码或构建参数后检查 digest 与证明变化;再模拟错误签名身份和缺失证明,确认部署会被拒绝。避免构建证明泄露敏感构建参数。

小结

用 SBOM、provenance 和签名把镜像摘要绑定到源码提交和构建过程。