目标先定清楚

供应链安全的核心不是“发现漏洞”,而是回答三个问题:

  1. 产物是谁构建的?
  2. 构建过程是否可复现、可验证?
  3. 已知风险是否能阻断上线?

最小可行链路

  • 构建时生成 SBOM(CycloneDX/SPDX)。
  • 对镜像和 SBOM 进行签名(cosign)。
  • 在部署前做签名与策略校验(admission policy)。

流水线分层

  • Build:固定基础镜像 digest,避免 tag 漂移。
  • Attest:记录构建来源、commit、runner 信息。
  • Verify:发布阶段验证签名、来源、漏洞阈值。

策略示例

rules:
  - require_signature: true
  - require_sbom: true
  - max_critical_vulns: 0
  - trusted_builders:
      - ci-prod-runner

常见失败点

  • 只签镜像不签 SBOM,证据链断裂。
  • 允许“人工例外”但不留审计记录。
  • 漏洞阈值过严导致全线绕过,最终失去治理。

小结

把“生成证据、验证证据、阻断风险”串成默认流水线,供应链安全才会从一次性项目变成长期能力。