第 5 章 测试和验证容器镜像
在企业合同可以验证您签名的容器镜像之前,您必须先创建 SLSA 证明,并将它与容器镜像关联。经验证的是有关软件工件的可验证信息,包括供应链中给定软件"链接"的位置、时间和方式。有关软件工件(SLSA)验证的 Supply-chain Levels 的更多信息,请参阅 SLSA Provenance。
先决条件
- 签名的容器镜像。
- 访问 OpenShift Web 控制台。
- 在 OpenShift 版本 4.13 或更高版本上运行的 Red Hat Trusted Artifact Signer 安装。
-
安装了
cosign和oc二进制文件的工作站。
流程
创建 SLSA provenance
predicate.json文件,例如:echo '{ "builder": { "id": "https://localhost/dummy-id" }, "buildType": "https://localhost/dummy-type", "invocation": {}, "buildConfig": {}, "metadata": { "buildStartedOn": "2023-09-25T16:26:44Z", "buildFinishedOn": "2023-09-25T16:28:59Z", "completeness": { "parameters": false, "environment": false, "materials": false }, "reproducible": false }, "materials": [] } ' > predicate.json签名并测试您刚才创建的
predicate.json文件,例如:cosign attest -y --fulcio-url=$FULCIO_URL \ --rekor-url=$REKOR_URL \ --oidc-issuer=$OIDC_ISSUER_URL \ --predicate predicate.json \ --type slsaprovenance $IMAGEKeycloak 打开,以便在对容器镜像进行签名时基于您的登录自动验证。
使用企业合同验证签名和测试,例如:
ec validate image --image $IMAGE \ --certificate-identity-regexp '.*' \ --certificate-oidc-issuer-regexp '.*' \ --output yaml --show-successes
重要
运行 ec validate image 命令时尽量具体,以便每个签名与预期 的身份 匹配。
验证
- 当企业合同验证容器镜像后,会打开所有企业合同验证和签名的详细报告。