8.2. 验证 GPG 镜像签名


您可以按照以下流程验证是否使用 GPG 密钥正确签名容器镜像。

先决条件

  • container-tools 元数据包已安装。
  • 设置签名读取的 Web 服务器,您可以在其上发布文件。

    • 您可以在 /etc/containers/registries.d/default.yaml 文件中检查系统范围的 registry 配置。lookaside 选项引用用于签名读取的 Web 服务器。必须设置 lookaside 选项以验证签名。

      # cat /etc/containers/registries.d/default.yaml
      docker:
          <registry>:
              lookaside: https://registry-lookaside.example.com
              lookaside-staging: file:///var/lib/containers/sigstore
      ...

流程

  1. <registry> 更新信任范围:

    $ podman image trust set -f <path>/key.gpg <registry>/<namespace>
  2. 可选:显示 /etc/containers/policy.json 文件来验证信任策略配置:

    $ cat /etc/containers/policy.json
    {
      ...
      "transports": {
        "docker": {
          "<registry>/<namespace>": [
            {
              "type": "signedBy",
              "keyType": "GPGKeys",
              "keyPath": "<path>/key.gpg"
            }
          ]
        }
      }
    }
    注意

    通常,/etc/containers.policy.json 文件在使用相同的键的机构级别进行配置。例如,<registry>/<namespace> 用于公共注册中心,<registry> 用于只针对单一公司的专用注册中心。

  3. 拉取镜像:

    # podman pull <registry>/<namespace>/<image>
    ...
    Storing signatures
    e7d92cdc71feacf90708cb59182d0df1b911f8ae022d29e8e95d75ca6a99776a

    podman pull 命令会根据配置强制实施签名存在,不需要额外的选项。

注意

您可以在 /etc/containers/registries.d/default.yaml 文件中编辑系统范围的注册中心配置。您还可以编辑 /etc/containers/registries.d 目录中任何 YAML 文件中的注册中心或存储库配置部分。所有 YAML 文件都是读取的,文件名可以是任意的。单个范围 (default-docker、注册中心或命名空间) 只能存在于 /etc/containers/registries.d 目录中的一个文件中。

重要

/etc/containers/registries.d/default.yaml 文件中的系统范围 registry 配置可以访问已发布的签名。sigstoresigstore-staging 选项现已弃用。这些选项引用签名存储,它们没有连接到 sigstore 签名格式。使用新的、等同的 lookasidelookaside-staging 选项。

其他资源

  • 您系统上的 podman-image-trustpodman-pull 手册页
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.