8.6. 使用 Fulcio 和 Rekor 验证带有 sigstore 签名的容器镜像
您可以通过在 policy.json
文件中添加 Fulcio 和 Rekor-related 信息来验证镜像签名。验证容器镜像签名确保镜像来自可信源,且没有被篡改或修改。
先决条件
-
container-tools
模块已安装。
流程
在
/etc/containers/registries.conf.d/default.yaml
文件中添加以下内容:docker: <registry>: use-sigstore-attachments: true
docker: <registry>: use-sigstore-attachments: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过设置
use-sigstore-attachments
选项,Podman 和 Skopeo 可以将容器 sigstore 签名与镜像一起读写,并将它们保存在与签名镜像相同的存储库中。注意您可以编辑
/etc/containers/registries.d
目录中任何 YAML 文件中的 registry 或 repository 配置部分。单个范围 (default-docker、注册中心或命名空间) 只能存在于/etc/containers/registries.d
目录中的一个文件中。您还可以在/etc/containers/registries.d/default.yaml
文件中编辑系统范围的 registry 配置。请注意,所有 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
命令会强制签名存在,而无需额外的选项。