第 4 章 签名容器镜像


先决条件

  • 访问 OpenShift Web 控制台。
  • 在 OpenShift 版本 4.13 或更高版本上运行的 Red Hat Trusted Artifact Signer (RHTAS)安装。
  • 安装了 eccosignoc 二进制文件的工作站。

流程

  1. 登录到您的 OpenShift 集群:

    语法

    oc login --token=TOKEN --server=SERVER_URL_AND_PORT

    Example

    oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443

    注意

    要查找您的命令行登录令牌和 URL,请登录 OpenShift Web 控制台。单击您的用户名,然后单击 Copy login command。如有提示,再次输入您的用户名和密码,然后单击 显示令牌

  2. 登录 RHTAS。确保配置 RHTAS shell 环境以签署和验证容器镜像;例如:

    cd sigstore-ocp
    source tas-env-variables.sh
    Copy to Clipboard Toggle word wrap

    您还可以选择手动设置环境变量,例如:

    export OPENSHIFT_APPS_SUBDOMAIN=apps.$(oc get dns cluster -o jsonpath='{ .spec.baseDomain }')
    export OIDC_AUTHENTICATION_REALM=sigstore
    export FULCIO_URL=https://fulcio.$OPENSHIFT_APPS_SUBDOMAIN
    export OIDC_ISSUER_URL=https://keycloak-keycloak-system.$OPENSHIFT_APPS_SUBDOMAIN/auth/realms/$OIDC_AUTHENTICATION_REALM
    export REKOR_URL=https://rekor.$OPENSHIFT_APPS_SUBDOMAIN
    export TUF_URL=https://tuf.$OPENSHIFT_APPS_SUBDOMAIN
    Copy to Clipboard Toggle word wrap

    Example

    $ source ./tas-env-vars.sh
    Copy to Clipboard Toggle word wrap

  3. 运行以下命令,从 OpenShift 集群注销: oc logout
  4. 识别您要签名的容器镜像和 attest;例如: IMAGE=quay.io/lucarval/rhtas-test@sha256:6b95efc134c2af3d45472c0a2f88e6085433df058cc210abb2bb061ac4d74359
  5. 向 RHTAP 指明您要使用 Red Hat Trusted Artifact Signer 而不是公共 Sigstore 部署进行签名和测试您的容器镜像。输入此命令:co sign initialize --mirror=$TUF_URL --root=$TUF_URL/root.json
  6. 使用以下命令为您的容器镜像签名:

    cosign sign -y --fulcio-url=$FULCIO_URL --rekor-url=$REKOR_URL \
         --oidc-issuer=$OIDC_ISSUER_URL $IMAGE
    Copy to Clipboard Toggle word wrap
  7. 出现提示时,登录安装 RHTAS 时安装的 RHTAP 的 Keycloak 实例。因此 Keycloak 可以为您进行身份验证。

后续步骤

您的镜像现已签名。现在,您可以:

  1. 在测试时创建 SLSA 验证,并将它与容器镜像相关联。
  2. 使用 Red Hat Enterprise Contract 来验证容器镜像。

4.1. 生成签名密钥以签名和测试容器镜像

您必须有签名密钥,然后才能签名和测试容器镜像。

先决条件

  • 安装了 cosign 二进制文件的工作站。

流程

  1. 在 CLI 中,运行这个命令:co sign generate-key-pair
  2. 出现提示时,输入新密码作为密钥对。确保您的密码是 memorable 且强强。

验证

  • 您现在应当有两个新文件位于工作目录中:cosign .pub 文件和 cosign.key 文件。

    • cosign.pub 文件包含您的公钥。您可以与需要验证容器镜像的任何协作者共享此密钥。
    • cosign.key 文件是用于签名内容的私钥。只有负责签名和测试镜像的人员应有权访问 cosign.key 文件。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat