Kubernetes(k8s)手册 Kubernetes 验证签名的容器镜像

2024-02-25 开发教程 Kubernetes(k8s)手册 匿名 5

验证签名的容器镜像

FEATURE STATE: Kubernetes v1.24 [alpha]

在开始之前

这些说明适用于 Kubernetes 1.24。 如果要检查不同版本 Kubernetes 的组件完整性,请查看该 Kubernetes 版本的文档。

您将需要安装以下工具:

  • cosign​(安装指南
  • curl​(通常由您的操作系统提供)

验证图像签名

让我们从该列表中选择一个图像并使用 ​cosign verify​ 命令验证其签名:

COSIGN_EXPERIMENTAL=1 cosign verify k8s.gcr.io/kube-apiserver-amd64:v1.24.0

Note:​COSIGN_EXPERIMENTAL=1​ 用于允许验证以 ​KEYLESS ​模式签名的图像。 要了解有关无密钥签名的更多信息,请参阅无密钥签名。

验证所有控制平面组件的映像

要验证所有已签名的控制平面映像,请运行以下命令:

curl -Ls https://sbom.k8s.io/$(curl -Ls https://dl.k8s.io/release/latest.txt)/release | grep 'PackageName: k8s.gcr.io/' | awk '{print $2}' > images.txt
input=images.txt
while IFS= read -r image
do
COSIGN_EXPERIMENTAL=1 cosign verify "$image"
done < "$input"

验证映像后,请按照以下示例在 Pod 清单中通过其摘要指定该映像:​registry-url/image-name@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2​。

使用准入控制器验证图像签名

对于非控制平面图像(例如一致性图像),签名也可以在部署时使用联合签名准入控制器进行验证。 要开始共同签名,这里有一些有用的资源:

  • 安装
  • 配置选项