搜索

第 5 章 Attesting and verify a container image

download PDF

在企业合同可以验证您的已签名的容器镜像之前,您必须首先创建 SLSA 认可,并将其与您的容器镜像相关联。经过验证是有关软件工件的可验证信息,包括在哪里、时间和提供链中给定软件"链接"的方式。有关 Software Artifacts (SLSA)验证的 Supply-chain 级别的更多信息,请参阅 SLSA Provenance

先决条件

  • 签名的容器镜像。
  • 访问 OpenShift Web 控制台。
  • 在 OpenShift 版本 4.13 或更高版本上运行的 Red Hat Trusted Artifact Signer 安装。
  • 安装了 cosignoc 二进制文件的工作站。

流程

  1. 创建 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
  2. 签名并测试您刚才创建的 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 将打开,以便在签署容器镜像时基于登录自动进行身份验证。

  3. 使用企业合同验证签名和测试,例如:

    ec validate image --image $IMAGE \
       --certificate-identity-regexp '.*' \
       --certificate-oidc-issuer-regexp '.*' \
       --output yaml --show-successes
重要

运行 ec validate image 命令时尽量具体,以便每个签名与预期 的身份 匹配。

验证

  • 当企业合同验证容器镜像后,会打开所有企业合同验证和签名的详细报告。

其他资源

5.1. 验证 JSON 和 YAML 定义

当您考虑保护软件供应链的所有选项时,您可以选择将策略应用到任务或管道定义。例如,您可能希望使用企业合同来检查给定管道中执行哪些任务。您可能想要使一些管道任务强制执行,只允许执行某些任务,或者在任务和管道运行前强制执行的任何其他约定。

先决条件

流程

要验证企业合同 JSON 或 YAML 定义是否有效,请执行以下步骤:

  • 在 Enterprise Contract CLI 中,输入 ec validate input 命令。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.