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 ...
流程
为
<registry>
更新信任范围:$ podman image trust set -f <path>/key.gpg <registry>/<namespace>
可选:显示
/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>
用于只针对单一公司的专用注册中心。拉取镜像:
# 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 配置可以访问已发布的签名。sigstore
和 sigstore-staging
选项现已弃用。这些选项引用签名存储,它们没有连接到 sigstore 签名格式。使用新的、等同的 lookaside
和 lookaside-staging
选项。
其他资源
-
您系统上的
podman-image-trust
和podman-pull
手册页