設定檔適用性:等級 1
關閉對 Kubelet 伺服器的匿名請求。
當已啟動時,未被其他配置的驗證方法拒絕的請求將被視為匿名請求。這些請求隨後由 Kubelet 伺服器處理。您應依賴驗證來授權訪問並禁止匿名請求。
注意請參閱 Azure AKS 文件以了解預設值。
|
影響
匿名請求將被拒絕。
稽核
Audit Method 1如果使用 Kubelet 配置檔案,請檢查是否有
authentication: anonymous: enabled 的項目設置為 false。-
SSH 到相關的節點。
-
在每個節點上執行以下命令以找到適當的 Kubelet 配置檔:
ps -ef | grep kubelet
輸出應返回類似於--config /etc/kubernetes/kubelet/kubelet-config.json的內容,這是 Kubelet 配置檔案的位置信息。 -
開啟 Kubelet 配置檔:
sudo more /etc/kubernetes/kubelet/kubelet-config.json
-
確認
"authentication": { "anonymous": { "enabled": false } }參數已設定為false。
如果使用 api configz 端點,請透過從執行 kubelet 的節點提取即時配置,搜尋
authentication... "anonymous":{"enabled":false} 的狀態。-
設定本地 Proxy 通訊埠及以下變數,並提供 Proxy 通訊埠號碼及節點名稱:
kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 export NODE_NAME=ip-192.168.31.226.aks.internal curl -sSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz"
補救
Remediation Method 1如果要修改 Kubelet 配置檔,請編輯
kubelet-config.json 檔案 /etc/kubernetes/kubelet/kubelet-config.json,並將以下參數設為 false:"anonymous": "enabled": falseRemediation Method 2
如果使用可執行參數,請在每個工作節點上編輯 kubelet 服務檔案
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf,並在 KUBELET_ARGS 變數字串的末尾添加以下參數:--anonymous-auth=falseRemediation Method 3
如果使用 api configz 端點,請透過從執行 kubelet 的節點提取即時配置,搜尋
"authentication.*anonymous":{"enabled":false}" 的狀態。請參閱 在即時叢集中重新配置節點的 Kubelet 中的詳細逐步 configmap 程序,然後重新執行來自審核過程的 curl 語句以檢查 kubelet 配置變更:kubectl proxy --port=8001 &
export HOSTNAME_PORT=localhost:8001
export NODE_NAME=ip-192.168.31.226.aks.internal
curl -sSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz"
For all three remediations:根據您的系統,重新啟動 kubelet 服務並檢查狀態:
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
