第 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 命令。如果出现提示,请再次输入您的用户名和密码,然后单击 Display Token

  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 中,运行这个命令:cosign generate-key-pair
  2. 出现提示时,为密钥对输入新密码。确保您的密码是 memorable and strong。

验证

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

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat