← 中文资源

简体中文版本

签名并校验发布产物

为发布二进制与容器镜像附加无密钥签名,并在部署时校验,阻断被篡改的产物。

阅读英文原文

目标

无法证明下载的二进制由预期流水线产出且未在传输中被篡改。本配方在 CI 中用 OIDC 身份对镜像摘要做无密钥签名,部署前用 cosign 按预期工作流身份校验签名,任何非预期工作流产出的产物都会校验失败;同时提醒身份匹配要精确到具体工作流并按摘要校验。

步骤要点

  1. 在 CI 中用 OIDC 身份对产物摘要做无密钥签名。
  2. 部署前按预期身份校验签名。
  3. 把身份正则精确到具体工作流。
  4. 始终按摘要而非标签校验。
cosign sign --yes ghcr.io/org/app@${DIGEST}

排错提示

  • 身份匹配过宽会放行非预期产物。
  • 按标签校验无法防止产物被替换。
  • 签名不能证明构建本身可信。

适用边界

  • 需要支持 OIDC 的 CI。
  • 会为部署引入校验依赖。