設定檔適用性:等級 1
關閉唯讀端口。
Kubelet 程序除了主要的 Kubelet API 外,還提供了一個唯讀 API。此唯讀 API 提供未經身份驗證的訪問,可能會檢索到有關叢集的潛在敏感資訊。
注意請參閱 Amazon EKS 文件以獲取預設值。
|
影響
移除唯讀埠將需要重新配置任何使用該埠的服務,以使用主要的 Kubelet API。
稽核
- 如果使用 Kubelet 配置檔案,請檢查是否有一個
authentication: anonymous: enabled的條目設置為 0。 - SSH 到相關的節點。在每個節點上運行以下命令以找到適當的 Kubelet 配置文件:
ps -ef | grep kubelet
上述指令的輸出應返回類似於--config/etc/kubernetes/kubelet/kubelet-config.json的內容,這是 Kubelet 配置檔案的 位置資訊。 - 開啟 Kubelet 配置檔:
cat /etc/kubernetes/kubelet/kubelet-config.json
- 驗證
--read-only-port參數是否存在並設為 0。 - 如果不存在
--read-only-port參數,請檢查是否有由--config指定的 Kubelet 配置檔案。檢查該檔案中是否有readOnlyPort條目,且其值是否設為 0。
補救
如果要修改 Kubelet 配置檔,請編輯 kubelet-config.json 檔案
/etc/kubernetes/kubelet/kubelet-config.json,並將以下參數設為 0:
"readOnlyPort": 0
如果使用可執行參數,請在每個工作節點上編輯 kubelet 服務檔案
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf,並在 KUBELET_ARGS 變數字串的末尾添加以下參數:
--read-only-port=0
對於每個修復措施,請重新啟動 kubelet 服務並根據您的系統檢查狀態:
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
