跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / 容器指南 / 使用 Podman 校验 SLE BCI
适用范围 容器指南

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

如果已签名的映像和您的配置没有问题,您可以继续使用容器映像。