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