5.10. 在 oc-mirror 插件 v2 中镜像和验证镜像签名
从 OpenShift Container Platform 4.19 开始,oc-mirror 插件 v2 支持镜像和验证容器镜像的基于 cosign 标签的签名。
5.10.1. 为 oc-mirror 插件 v2 启用签名镜像 复制链接链接已复制到粘贴板!
默认情况下禁用签名镜像。您可以通过为 oc mirror 命令设置 --remove-signatures=false 标志来为所有镜像启用签名镜像。
启用后,oc-mirror 插件 v2 为以下镜像镜像基于 Sigstore 标签的签名:
- OpenShift Container Platform 发行镜像
- Operator 镜像
- 其他镜像
- Helm chart
如果没有提供配置文件,oc-mirror 插件 v2 会在使用 --remove-signatures=false 标志时默认启用所有镜像的签名镜像。
要指定自定义配置目录,请使用 --registries.d 标志。
如需了解更多详细信息,请参阅 containers-registries.d (5) manual。
流程
如果要为所有镜像启用签名镜像,请运行以下命令:
$ oc mirror --remove-signatures=false如果要为特定元素(如传输协议、registry、命名空间或镜像)启用或禁用签名镜像,请使用以下步骤:
-
在
$HOME/.config/containers/registries.d/或/etc/containers/registries.d/目录中创建 YAML 文件。 指定
use-sigstore-attachments参数,并在您要控制的特定元素下将其设置为true或false,如下例所示:示例:禁用
quay.ioregistry 的签名镜像# ... docker: quay.io: use-sigstore-attachments: false # ...示例:为所有 registry 启用签名镜像
# ... default-docker: use-sigstore-attachments: true # ...
-
在
5.10.2. 为 oc-mirror 插件 v2 启用签名验证 复制链接链接已复制到粘贴板!
从 OpenShift Container Platform 4.19 开始,oc-mirror 插件 v2 支持签名验证,这默认禁用。启用后,插件会验证容器镜像是否与其签名匹配,确保它们没有被更改,并来自可信源。如果检测到签名不匹配,镜像工作流将失败。
流程
如果要为所有镜像启用签名验证,请运行以下命令:
$ oc mirror --secure-policy=true如果要为特定元素(如传输协议、registry、命名空间或镜像)启用或禁用签名验证,请按照以下步骤操作:
在
$HOME/.config/containers/或/etc/containers/ 目录中创建policy.json文件。注意如果您的策略配置文件位于默认目录之外,您可以在
oc mirror命令中使用--policy标志来指定其路径。如需更多信息,请参阅
containers-policy.json (5)。使用适当的策略配置,为所需的范围(如 registry 或镜像)定义验证规则。您可以通过在每个元素中指定所需规则来设置验证要求。
示例:仅为特定镜像启用验证,并拒绝所有其他镜像
{ "default": [{"type": "reject"}], "transports": { "docker": { "hostname:5000/myns/sigstore-signed-image": [ { "type": "sigstoreSigned", "keyPath": "/path/to/sigstore-pubkey.pub", "signedIdentity": {"type": "matchRepository"} } ] } } }