Docker 当 运行 "docker trust inspect" 时图像没有签名者

Docker image has no signer when running "docker trust inspect"

我正在尝试确定我应该使用 DockerHub 上的哪个 alpine 镜像版本。

我在 DockerHub 上看到 alpine 的最新标签(截至 2021 年 4 月 23 日)是 3.13.5,所以我 运行 这个命令:

$ docker trust inspect --pretty alpine:3.13.5

No signatures for alpine:3.13.5

我检查了旧版本的 alpine 并得到了这个:

$ docker trust inspect --pretty alpine:3.12.1

Signatures for alpine:3.12.1

SIGNED TAG   DIGEST                                                            SIGNERS
3.12.1       c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a  (Repo Admin)

这是否意味着我不应该信任 alpine:3.13.5 因为没有签名者?非常感谢!

图像签名有 broken before in the past,所以我怀疑这只是 Docker 上游的事情(我正在为此联系我的一些联系人,但周末已经开始了,所以它在他们回应之前可能会有点)。

Notary 版本 1 没有太多人接受,这就是为什么它可以持续这么久而很少有人注意到它不起作用的原因。我们正在积极研究 Notary version 2,希望能解决许多限制采用版本 1 的问题,但这还需要一段时间,直到版本 2 正式发布,我们才能逐步淘汰版本 1。

在那之前,我怀疑最新的 alpine 图像是安全的,并且为了进一步保证,运行 通过漏洞扫描器的图像将是将风险降至最低的有用方法。特别是因为漏洞扫描器将指出旧版本图像中的已知漏洞,这些漏洞仍将被签名。