codecamp

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​。

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

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


Kubernetes 云管理控制器
Kubernetes 运行 etcd 集群
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Kubernetes 管理集群

Kubernetes Service

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }