验证 Knative 镜像¶
Knative 为 Knative 版本中的每个镜像发布 SBOM 和 SLSA 出处文档。您还可以使用此信息来配置 sigstore 策略控制器或其他准入控制器来检查这些镜像证明。
先决条件¶
您需要安装 cosign 工具来获取和操作存储在容器注册表中的证明。
Knative SLSA 出处(已签名)¶
Knative 构建过程为构建过程中的每个镜像生成一个 SLSA in-toto 证明。对于 Knative 发布清单中的给定镜像,您可以使用以下方式验证构建证明
cosign verify-attestation \
--certificate-oidc-issuer https://# \
--certificate-identity signer@knative-releases.iam.gserviceaccount.com \
--type slsaprovenance02 \
$IMAGE
注意
Knative 镜像以 KEYLESS 模式签名。要了解有关无密钥签名的更多信息,请参阅 无密钥签名 我们的发布签名身份(主题)是 signer@knative-releases.iam.gserviceaccount.com,颁发者是 https://#
in-toto 文档在证明的 .payload 属性中进行 base64 编码;您可以使用 jq 通过以下调用提取此信息
cosign verify-attestation \
--certificate-oidc-issuer https://# \
--certificate-identity signer@knative-releases.iam.gserviceaccount.com \
--type slsaprovenance02 \
$IMAGE | jq -r .payload | base64 --decode | jq
Knative SBOM¶
对于每个容器镜像,Knative 都会发布一个与该镜像对应的 SBOM。这些 SBOM 在编译期间由 ko 工具生成,可以使用 cosign download sbom 命令下载。请注意,Knative 清单中的镜像引用是指多架构镜像;要提取特定架构的软件组件(因为不同架构可能使用不同的库构建),您需要对特定架构的镜像(例如 linux/amd64)运行 cosign download sbom。