8.5. 使用 Fulcio 和 Rekor 使用 sigstore 签名签名容器镜像
有了 Fulcio 和 Rekor 服务器,您现在可以根据 OpenID Connect (OIDC)服务器身份验证使用短期证书来创建签名,而不是手动管理私钥。
先决条件
-
container-tools
元数据包已安装。 - 您有 Fulcio (https:// <your-fulcio-server>)和 Rekor (https://<your-rekor-server>)服务器正在运行,且配置了。
- 您已安装了 Podman v4.4 或更高版本。
流程
将以下内容添加到
/etc/containers/registries.conf.d/default.yaml
文件中:docker: <registry>: use-sigstore-attachments: true
通过设置
use-sigstore-attachments
选项,Podman 和 Skopeo 可以借助镜像读取和写入容器 sigstore 签名,并将它们保存在与签名镜像相同的存储库中。注意您可以编辑
/etc/containers/registries.d
目录中的任何 YAML 文件中的注册中心或存储库配置部分。单个范围 (default-docker、注册中心或命名空间) 只能存在于/etc/containers/registries.d
目录中的一个文件中。您还可以在/etc/containers/registries.d/default.yaml
文件中编辑系统范围的注册中心配置。请注意,所有 YAML 文件都是可读的,文件名是任意的。
创建
file.yml
文件:fulcio: fulcioURL: "https://<your-fulcio-server>" oidcMode: "interactive" oidcIssuerURL: "https://<your-OIDC-provider>" oidcClientID: "sigstore" rekorURL: "https://<your-rekor-server>"
-
file.yml
是sigstore 签名参数 YAML 文件,用于存储创建 sigstore 签名所需的选项。
-
为镜像签名并将其推送到注册中心:
$ podman push --sign-by-sigstore=file.yml <registry>/<namespace>/<image>
-
您还可以使用带有类似
--sign-by-sigstore
选项的skopeo copy
命令来为现有镜像签名,同时将它们在多个容器注册中心移动。
-
您还可以使用带有类似
请注意,您对公共服务器的提交包含有关公钥和证书的数据,以及有关签名的元数据。
其他资源
-
containers-sigstore-signing-params.yaml
man page -
您系统上的
podman-push
和container-registries.d
man page