Docker 供应链证明:让镜像来源可以被验证
背景 镜像标签只能说明一个名字,不能说明产物来自哪个提交、在哪个环境构建。供应链证明应绑定不可变的镜像摘要。 核心判断 SBOM 描述依赖,provenance 描述构建来源,签名证明被信任的身份。 部署使用 digest,并在准入或发布流程中验证身份与来源。 将失败验证设为阻断,而不是只把证明存到制品库。 最小示例 下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。 steps: - uses: docker/build-push-action@v6 with: { push: true, provenance: mode=max, sbom: true } 边界与误区 示例只产生构建证明,不会自动生成独立可信签名。Action 的 major 标签也不是不可变引用,生产流水线应锁定审查过的 commit。 验证方式 修改源码或构建参数后检查 digest 与证明变化;再模拟错误签名身份和缺失证明,确认部署会被拒绝。避免构建证明泄露敏感构建参数。 小结 用 SBOM、provenance 和签名把镜像摘要绑定到源码提交和构建过程。