5.10. 在 oc-mirror 插件 v2 中镜像和验证镜像签名


从 OpenShift Container Platform 4.19 开始,oc-mirror 插件 v2 支持镜像和验证容器镜像的基于 cosign 标签的签名。

5.10.1. 为 oc-mirror 插件 v2 启用签名镜像

默认情况下禁用签名镜像。您可以通过为 oc mirror 命令设置 --remove-signatures=false 标志来为所有镜像启用签名镜像。

启用后,oc-mirror 插件 v2 为以下镜像镜像基于 Sigstore 标签的签名:

  • OpenShift Container Platform 发行镜像
  • Operator 镜像
  • 其他镜像
  • Helm chart
注意

如果没有提供配置文件,oc-mirror 插件 v2 会在使用 --remove-signatures=false 标志时默认启用所有镜像的签名镜像。

要指定自定义配置目录,请使用 --registries.d 标志。

如需了解更多详细信息,请参阅 containers-registries.d (5) manual。

流程

  1. 如果要为所有镜像启用签名镜像,请运行以下命令:

    $ oc mirror --remove-signatures=false
  2. 如果要为特定元素(如传输协议、registry、命名空间或镜像)启用或禁用签名镜像,请使用以下步骤:

    1. $HOME/.config/containers/registries.d//etc/containers/registries.d/ 目录中创建 YAML 文件。
    2. 指定 use-sigstore-attachments 参数,并在您要控制的特定元素下将其设置为 truefalse,如下例所示:

      示例:禁用 quay.io registry 的签名镜像

      # ...
      docker:
        quay.io:
          use-sigstore-attachments: false
      # ...

      示例:为所有 registry 启用签名镜像

      # ...
      default-docker:
        use-sigstore-attachments: true
      # ...

5.10.2. 为 oc-mirror 插件 v2 启用签名验证

从 OpenShift Container Platform 4.19 开始,oc-mirror 插件 v2 支持签名验证,这默认禁用。启用后,插件会验证容器镜像是否与其签名匹配,确保它们没有被更改,并来自可信源。如果检测到签名不匹配,镜像工作流将失败。

流程

  1. 如果要为所有镜像启用签名验证,请运行以下命令:

    $ oc mirror --secure-policy=true
  2. 如果要为特定元素(如传输协议、registry、命名空间或镜像)启用或禁用签名验证,请按照以下步骤操作:

    1. $HOME/.config/containers//etc/containers/ 目录中创建 policy.json 文件。

      注意

      如果您的策略配置文件位于默认目录之外,您可以在 oc mirror 命令中使用 --policy 标志来指定其路径。

      如需更多信息,请参阅 containers-policy.json (5)

    2. 使用适当的策略配置,为所需的范围(如 registry 或镜像)定义验证规则。您可以通过在每个元素中指定所需规则来设置验证要求。

      示例:仅为特定镜像启用验证,并拒绝所有其他镜像

      {
        "default": [{"type": "reject"}],
        "transports": {
          "docker": {
            "hostname:5000/myns/sigstore-signed-image": [
              {
                "type": "sigstoreSigned",
                "keyPath": "/path/to/sigstore-pubkey.pub",
                "signedIdentity": {"type": "matchRepository"}
              }
            ]
          }
        }
      }

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部