名称

podman-image-trust - 管理容器注册表镜像信任策略

简介

podman image trust set|show [选项] registry[/repository]

描述

根据位置管理要信任作为容器镜像来源的注册表。(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器)

位置由镜像的传输方式和注册表主机确定。以容器镜像 docker://docker.io/library/busybox 为例,docker 是传输方式,docker.io 是注册表主机。

信任在 /etc/containers/policy.json 中定义,并在用户尝试从注册表拉取远程镜像时强制执行。policy.json 中的信任策略描述了信任的注册表范围(注册表和/或存储库)。此信任可以使用公钥用于签名镜像。

信任的范围从最具体到最不具体进行评估。换句话说,策略可能

  • 定义到整个注册表。

  • 定义到该注册表中的特定存储库。

  • 定义到注册表内部的特定签名镜像。

以下列表是 policy.json 中使用的有效范围值的示例,从最具体到最不具体

docker.io/library/busybox:notlatest

docker.io/library/busybox

docker.io/library

docker.io

如果未找到任何这些范围的配置,则使用默认值(通过使用“default”而不是 REGISTRY[/REPOSITORY] 指定)。

信任 类型 提供了一种方式

允许列表(“accept”)或拒绝列表(“reject”)注册表,或要求简单签名(“signedBy”),要求 sigstore 签名(“sigstoreSigned”)。

可以使用命令 podman image trust set 更新现有信任范围的信任。

选项

--help, -h

打印使用说明。

set 选项

--pubkeysfile, -f=KEY1

本地系统上导出公钥的路径。密钥路径在 policy.json 中引用。可以使用任何文件路径,但建议将文件放置在 /etc/pki/containers 中。选项可以多次使用,以要求镜像由多个密钥签名。--pubkeysfile 选项对于 signedBysigstoreSigned 类型是必需的。

--type, -t=value

此策略条目的信任类型。接受的值:signedBy (默认):要求带有相应公钥列表的简单签名 sigstoreSigned:要求带有相应公钥列表的 sigstore 签名 accept:不对该注册表范围要求任何签名 reject:不接受该注册表范围的镜像

show 选项

--json, -j

以 JSON 格式输出信任,用于机器解析

--noheading, -n

从列表中省略表格标题。

--raw

以原始 JSON 格式输出信任策略文件

示例

接受来自注册表的所有未签名镜像

sudo podman image trust set --type accept docker.io

修改默认信任策略

sudo podman image trust set -t reject default

显示系统信任策略

podman image trust show
TRANSPORT      NAME                        TYPE        ID                   STORE
all            default                     reject
repository     docker.io/library           accept
repository     registry.access.redhat.com  signed      security@redhat.com  https://access.redhat.com/webassets/docker/content/sigstore
repository     registry.redhat.io          signed      security@redhat.com  https://registry.redhat.io/containers/sigstore
repository     docker.io                   reject
docker-daemon                              accept

显示信任策略文件

podman image trust show --raw
{
    "default": [
        {
            "type": "reject"
        }
    ],
    "transports": {
        "docker": {
            "docker.io": [
                {
                    "type": "reject"
                }
            ],
            "docker.io/library": [
                {
                    "type": "insecureAcceptAnything"
                }
            ],
            "registry.access.redhat.com": [
                {
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
                }
            ],
            "registry.redhat.io": [
                {
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
                }
            ]
        },
        "docker-daemon": {
            "": [
                {
                    "type": "insecureAcceptAnything"
                }
            ]
        }
    }
}

以 JSON 格式显示信任

podman image trust show --json
[
  {
    "transport": "all",
    "name": "* (default)",
    "repo_name": "default",
    "type": "reject"
  },
  {
    "transport": "repository",
    "name": "docker.io",
    "repo_name": "docker.io",
    "type": "reject"
  },
  {
    "transport": "repository",
    "name": "docker.io/library",
    "repo_name": "docker.io/library",
    "type": "accept"
  },
  {
    "transport": "repository",
    "name": "registry.access.redhat.com",
    "repo_name": "registry.access.redhat.com",
    "sigstore": "https://access.redhat.com/webassets/docker/content/sigstore",
    "type": "signed",
    "gpg_id": "security@redhat.com"
  },
  {
    "transport": "repository",
    "name": "registry.redhat.io",
    "repo_name": "registry.redhat.io",
    "sigstore": "https://registry.redhat.io/containers/sigstore",
    "type": "signed",
    "gpg_id": "security@redhat.com"
  },
  {
    "transport": "docker-daemon",
    "type": "accept"
  }
]

另请参阅

containers-policy.json(5)

历史

2019 年 1 月,Tom Sweeney (tsweeney at redhat dot com) 更新 2018 年 12 月,Qi Wang (qiwan at redhat dot com) 初次编译