久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Kubernetes驗證容器鏡像

2023-12-21 175

隨著容器鏡像的廣泛使用,如何確保這些鏡像的安全性和完整性成為了一個重要的問題。為了解決這個問題,Kubernetes引入了一種名為簽名鏡像(Signed Images)的特性,它可以驗證容器鏡像是否已經(jīng)被正確地簽名。那么,如何在Kubernetes中驗證已簽名的容器鏡像呢?

一、準備

需要安裝以下工具:

  • cosign
  • curl(通常由你的操作系統(tǒng)提供)
  • jq

二、驗證二進制簽名

Kubernetes 發(fā)布過程使用 cosign 的無密鑰簽名對所有二進制工件(壓縮包、 SPDX 文件、 獨立的二進制文件)簽名。要驗證一個特定的二進制文件, 獲取組件時要包含其簽名和證書:

URL=https://dl.k8s.io/release/v1.29.0/bin/linux/amd64
BINARY=kubectl

FILES=(
????"$BINARY"
????"$BINARY.sig"
????"$BINARY.cert"
)

for?FILE?in?"${FILES[@]}";?do
????curl?-sSfL?--retry?3?--retry-delay?3?"$URL/$FILE"?-o?"$FILE"
done

然后使用 cosign verify-blob 驗證二進制文件:

cosign verify-blob "$BINARY" \
??--signature?"$BINARY".sig?\
??--certificate?"$BINARY".cert?\
??--certificate-identity?krel-staging@k8s-releng-prod.iam.gserviceaccount.com?\
??--certificate-oidc-issuer?https://accounts.google.com

注意:

  • Cosign 2.0 需要指定 –certificate-identity 和 –certificate-oidc-issuer 選項;
  • Cosign 的早期版本還需要設置 COSIGN_EXPERIMENTAL=1。

三、驗證鏡像簽名

從這個列表中選擇一個鏡像,并使用 cosign verify 命令來驗證它的簽名:

cosign verify registry.k8s.io/kube-apiserver-amd64:v1.29.0 \
--certificate-identity krel-trust@k8s-releng-prod.iam.gserviceaccount.com \
--certificate-oidc-issuer https://accounts.google.com \
| jq .

1、驗證所有控制平面組件鏡像

驗證最新穩(wěn)定版(v1.29.0)所有已簽名的控制平面組件鏡像, 請運行以下命令:

curl -Ls "https://sbom.k8s.io/$(curl -Ls https://dl.k8s.io/release/stable.txt)/release" \
??|?grep?"SPDXID:?SPDXRef-Package-registry.k8s.io"?\
??|?grep?-v?sha256?|?cut?-d-?-f3-?|?sed?'s/-/\//'?|?sed?'s/-v1/:v1/'?\
??|?sort?>?images.txt
input=images.txt
while?IFS=?read?-r?image
do
??cosign?verify?"$image"?\
????--certificate-identity?krel-trust@k8s-releng-prod.iam.gserviceaccount.com?\
????--certificate-oidc-issuer?https://accounts.google.com?\
????|?jq?.
done?<?"$input"

當完成某個鏡像的驗證時,可以在 Pod 清單通過摘要值來指定該鏡像,例如:

registry-url/image-name@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2

四、驗證鏡像簽名

有一些非控制平面鏡像 (例如 conformance 鏡像), 也可以在部署時使用 sigstore policy-controller 控制器驗證其簽名。

五、驗證軟件物料清單

可以使用 sigstore 證書和簽名或相應的 SHA 文件來驗證 Kubernetes 軟件物料清單(SBOM):

# 檢索最新可用的 Kubernetes 發(fā)行版本
VERSION=$(curl?-Ls?https://dl.k8s.io/release/stable.txt)

#?驗證?SHA512?sum
curl?-Ls?"https://sbom.k8s.io/$VERSION/release"?-o?"$VERSION.spdx"
echo?"$(curl?-Ls?"https://sbom.k8s.io/$VERSION/release.sha512")?$VERSION.spdx"?|?sha512sum?--check

#?驗證?SHA256?sum
echo?"$(curl?-Ls?"https://sbom.k8s.io/$VERSION/release.sha256")?$VERSION.spdx"?|?sha256sum?--check

#?檢索?sigstore?簽名和證書
curl?-Ls?"https://sbom.k8s.io/$VERSION/release.sig"?-o?"$VERSION.spdx.sig"
curl?-Ls?"https://sbom.k8s.io/$VERSION/release.cert"?-o?"$VERSION.spdx.cert"

#?驗證?sigstore?簽名
cosign?verify-blob?\
????--certificate?"$VERSION.spdx.cert"?\
????--signature?"$VERSION.spdx.sig"?\
????--certificate-identity?krel-staging@k8s-releng-prod.iam.gserviceaccount.com?\
????--certificate-oidc-issuer?https://accounts.google.com?\
????"$VERSION.spdx"
  • 廣告合作

  • QQ群號:4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享網(wǎng)絡內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉裁,轉載請注明出處“站長百科”和原文地址。