8.2. 验证 GPG 镜像签名
您可以按照以下流程验证是否使用 GPG 密钥正确签名了容器镜像。
先决条件
-
container-tools模块已安装。 签名读 Web 服务器已建立,您可以在其上发布文件。
您可以在
/etc/containers/registries.d/default.yaml文件中检查系统范围的注册中心配置。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 e7d92cdc71feacf90708cb59182d0df1b911f8ae022d29e8e95d75ca6a99776apodman 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 文件中的系统范围注册中心配置允许访问发布的签名。sigstore 和 sigstore-staging 选项现已弃用。这些选项引用签名存储,它们没有连接到 sigstore 签名格式。使用新的等同的 lookaside 和 lookaside-staging选项。