第 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 $IMAGE
Keycloak 打开,以便在对容器镜像进行签名时基于您的登录自动验证。
使用企业合同验证签名和测试,例如:
ec validate image --image $IMAGE \ --certificate-identity-regexp '.*' \ --certificate-oidc-issuer-regexp '.*' \ --output yaml --show-successes
重要
运行 ec validate image
命令时尽量具体,以便每个签名与预期 的身份
匹配。
验证
- 当企业合同验证容器镜像后,会打开所有企业合同验证和签名的详细报告。
其他资源
- 有关 Red Hat Trusted Artifact Signer 的更多信息,特别是它如何与 RHTAP 和企业合同一起使用,请参阅 Red Hat Trusted Artifact Signer Deployment。
- 有关 SLSA 的更多信息,请参阅 slsa.dev。
- 有关 Keycloak 的更多信息,请参阅 keycloak.org。