簡體   English   中英

Kubernetes 集群的 CIS 基准測試問題

[英]CIS benchmark issue for Kubernetes cluster

我正在主節點上運行CIS kube-bench 工具並嘗試解決此錯誤

[FAIL] 1.2.6 Ensure that the --kubelet-certificate-authority argument is set as appropriate (Automated). 

我知道我需要更新 API 服務器清單 YAML 文件,此標志指向正確的 CA 文件--kubelet-certificate-authority但是,我不確定哪個是 Kubelet 的正確 CA 證書。

這些是我在 PKI 目錄中的文件:-

apiserver-etcd-client.crt
apiserver-etcd-client.key
apiserver-kubelet-client.crt
apiserver-kubelet-client.key
apiserver.crt
apiserver.key
ca.crt
ca.key
etcd
front-proxy-ca.crt
front-proxy-ca.key
front-proxy-client.crt
front-proxy-client.key
sa.key
sa.pub

3 非常相似的討論關於同一主題。 我不會為您提供所有步驟,因為它在文檔和堆棧上的相關問題中寫得很好。 僅高級概述

  1. 如何正確設置 --kubelet-certificate-authority apiserver 參數?
  2. Kubernetes kubelet-certificate-authority on Premises with kubespray 導致主節點的證書驗證錯誤
  3. Kubernetes kubelet-certificate-authority on Premises with kubespray 導致主節點的證書驗證錯誤

你的行動:

這些連接終止於 kubelet 的 HTTPS 端點。 默認情況下,apiserver 不驗證 kubelet 的服務證書,這使得連接受到中間人攻擊,並且在不受信任和/或公共網絡上運行是不安全的。

然后,在主節點上編輯 API 服務器 pod 規范文件/etc/kubernetes/manifests/kube-apiserver.yaml並將--kubelet-certificate-authority參數設置為證書頒發機構的證書文件的路徑


來自@Matt答案

  • 使用/etc/kubernetes/ssl/ca.crt為具有有效 IP SAN 的 kubelet 簽署新證書。
  • 設置--kubelet-certificate-authority=/etc/kubernetes/ssl/ca.crt (有效 CA)。
  • /var/lib/kubelet/config.yaml配置文件)中,將tlsCertFiletlsPrivateKeyFile設置為指向新創建的 kubelet crtkey文件。

並從澄清

是的,您必須為 kubelet 生成證書並在主/etc/kubernetes/ssl/ca.crt上提供的證書頒發機構對它們進行簽名

默認情況下,在 Kubernetes 中有 3 個不同的父 CA(kubernetes-ca、etcd-ca、kubernetes-front-proxy-ca)。 您正在尋找 kubernetes-ca,因為 kubelet 使用 kubernetes-ca,您可以查看 文檔 kubernetes-ca 默認路徑是 /etc/kubernetes/pki/ca.crt 但您也可以通過 kubelet configmap 使用以下命令進行驗證

kubectl get configmap -n kube-system $(kubectl get configmaps -n kube-system | grep kubelet  | awk '{print $1}') -o yaml | grep -i clientca

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM