适用范围 容器指南
10 使用 Podman 校验 SLE BCI #
在使用 Podman 校验 SLE BCI 之前,您必须先指定 registry.suse.com
作为用于映像校验的注册表。
注意
在 SLE 上请跳过此步骤,因为其中已经指定了正确的配置。
为此,请将以下配置添加到 /etc/containers/registries.d/default.yaml
:
docker:
registry.suse.com:
use-sigstore-attachments: true
可以在 /etc/containers/registries.d/
中使用所需的文件名创建一个新文件,而不要编辑 default.yaml
。
接下来,修改 /etc/containers/policy.json 文件。在 docker
属性下,添加如下所示的 registry.suse.com
配置:
{
"default": [
{
"type": "insecureAcceptAnything"
}
],
"transports": {
"docker-daemon": {
"": [
{
"type": "insecureAcceptAnything"
}
]
},
"docker": {
"registry.suse.com": [
{
"type": "sigstoreSigned",
"keyPath": "/usr/share/pki/containers/suse-container-key.pem",
"signedIdentity": {
"type": "matchRepository"
}
}
]
}
}
}
指定的配置将指示 Podman、skopeo 和 Buildah 校验 registry.suse.com
储存库下的映像。这样,Podman 就会在提取映像之前使用指定的公共密钥检查签名有效性。如果校验失败,它会拒绝该映像。
注意
请不要去除 transports.docker
中的现有项。将 registry.suse.com
的对应项追加到列表中
从 SUSE Signing Keys 提取用来为 SLE BCI 签名的公共密钥,或使用以下命令:
> sudo curl -s https://ftp.suse.com/pub/projects/security/keys/container–key.pem \ -o /usr/share/pki/containers/suse-container-key.pem
注意
此步骤在 SUSE Linux Enterprise 上是可选的。签名密钥已在 /usr/share/pki/containers/suse-container-key.pem
中提供
从现在起,Buildah、Podman 和 skopeo 会自动校验从 registry.suse.com
提取的每个映像。无需执行额外的步骤。
如果校验失败,该命令会返回如下所示的错误消息:
> podman pull registry.suse.com/bci/bci-base:latest Trying to pull registry.suse.com/bci/bci-base:latest... Error: copying system image from manifest list: Source image rejected: Signature for identity registry.suse.com/bci/bci-base is not accepted
如果已签名的映像和您的配置没有问题,您可以继续使用容器映像。