名称¶
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 选项对于 signedBy 和 sigstoreSigned 类型是必需的。
--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"
}
]
另请参阅¶
历史¶
2019 年 1 月,Tom Sweeney (tsweeney at redhat dot com) 更新 2018 年 12 月,Qi Wang (qiwan at redhat dot com) 初次编译