設定檔適用性:級別 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
。
Audit Method 2:
- 如果使用 api configz 端點,請考慮透過從運行 kubelet 的節點中提取即時配置來搜尋
驗證... "anonymous":{"enabled":false}
的狀態。 -
設定本地 Proxy 通訊埠及以下變數,並提供 Proxy 通訊埠號碼和節點名稱:
HOSTNAME_PORT="localhost-和-端口號"
NODE_NAME="The-Name-Of-Node-To-Extract-Configuration" 從 "kubectl get nodes" 的輸出中
kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 (example host and port number) export NODE_NAME=ip-192.168.31.226.aks.internal (example node name from "kubectl get nodes") 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": false
Remediation Method 2:
如果使用可執行參數,請在每個工作節點上編輯 kubelet 服務檔案
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf
,並在 KUBELET_ARGS
變數字串的末尾添加以下參數。--anonymous-auth=false
Remediation Method 3:
如果使用 api configz 端點,請考慮透過從執行 kubelet 的節點提取即時配置來搜尋
"authentication.*anonymous":{"enabled":false}"
的狀態。**在重新配置現場叢集中的節點 Kubelet中查看詳細的 configmap 步驟,然後重新執行來自審核過程的 curl 語句以檢查 kubelet 配置變更:
kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 (example host and port number) export NODE_NAME=ip-192.168.31.226.aks.internal (example node name from "kubectl get nodes") 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