檢視次數:
設定檔適用性:級別 1
關閉唯讀埠。
Kubelet 進程除了主要的 Kubelet API 外,還提供了一個唯讀 API。未經身份驗證的訪問可用於此唯讀 API,這可能會檢索到有關叢集的潛在敏感信息。
注意
注意
請參閱 Azure AKS 文件以獲取預設值。

影響

刪除唯讀端口將需要重新配置任何使用該端口的服務以使用主要的 Kubelet API。

稽核

如果使用 Kubelet 配置檔案,請檢查是否有 authentication: anonymous: enabled 的項目設置為 0
  1. SSH 到相關節點,並在每個節點上執行以下命令以找到適當的 Kubelet 配置檔:
    ps -ef | grep kubelet
    上述命令的輸出應返回類似於--config /etc/kubernetes/kubelet/kubelet-config.json的內容,這是 Kubelet 配置檔案的位置信息。
  2. 開啟 Kubelet 配置檔:
    cat /etc/kubernetes/kubelet/kubelet-config.json
  3. 驗證 --read-only-port 參數是否存在並設為 0
  4. 如果沒有 --read-only-port 參數,請檢查是否有由 --config 指定的 Kubelet 配置檔案。檢查該檔案中是否有 readOnlyPort 條目,並確認其設置為 0

矯正性處理

Remediation Method 1:
如果修改 Kubelet 配置檔案,請編輯 /etc/kubernetes/kubelet/kubelet-config.json 並將以下參數設為 false:
     readOnlyPort to 0
    
Remediation Method 2:
如果使用可執行參數,請在每個工作節點上編輯 Kubelet 服務檔案 /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf,並在 KUBELET_ARGS 變數字串的末尾添加以下參數:
--read-only-port=0
For all remediations:
重新啟動kubelet服務並驗證狀態:
     systemctl daemon-reload
     systemctl restart kubelet.service
     systemctl status kubelet -l