8.6. 使用 Fulcio 和 Rekor 验证带有 sigstore 签名的容器镜像
您可以通过向 policy.json 文件中添加 Fulcio 和 Rekor-related 信息来验证镜像签名。验证容器镜像签名可确保镜像来自可信的源,且没有被篡改或修改。
先决条件
-
container-tools元数据包已安装。
流程
将以下内容添加到
/etc/containers/registries.conf.d/default.yaml文件中:docker: <registry>: use-sigstore-attachments: truedocker: <registry>: use-sigstore-attachments: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过设置
use-sigstore-attachments选项,Podman 和 Skopeo 可以借助镜像读取和写入容器 sigstore 签名,并将它们保存在与签名镜像相同的存储库中。注意您可以编辑
/etc/containers/registries.d目录中的任何 YAML 文件中的注册中心或存储库配置部分。单个范围 (default-docker、注册中心或命名空间) 只能存在于/etc/containers/registries.d目录中的一个文件中。您还可以在/etc/containers/registries.d/default.yaml文件中编辑系统范围的注册中心配置。请注意,所有 YAML 文件都是可读的,文件名是任意的。
在
/etc/containers/policy.json文件中添加fulcio部分和rekorPublicKeyPath或rekorPublicKeyData字段:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
fulcio部分提供基于 Fulcio 发布的证书的签名。 -
您必须指定
caPath和caData字段中的一个,其中包含 Fulcio 实例的 CA 证书。 -
oidcIssuer和subjectEmail是必需的,准确地指定预期的身份提供程序,以及获取 Fulcio 证书的用户的身份。 -
您必须指定
rekorPublicKeyPath和rekorPublicKeyData字段之一。
-
拉取镜像:
podman pull <registry>/<namespace>/<image>
$ podman pull <registry>/<namespace>/<image>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
podman pull 命令会根据配置强制实施签名存在,不需要额外的选项。