設定檔適用性:等級 1
確保如果
kubelet 配置檔案存在,其權限設置為 644。kubelet 從由 --config 參數指定的配置檔案中讀取各種參數,包括安全設定。如果此檔案存在,您應限制其檔案權限以維護檔案的完整性。該檔案應僅允許系統管理員寫入。
注意kubelet 配置檔案的預設權限為 600。
|
影響
過度寬鬆的檔案存取權限會增加平台的安全風險。
稽核
使用 Google Cloud 主控台
- 前往 Google Cloud Console Kubernetes Engine 頁面,以進入 Kubernetes Engine。
- 點擊所需的叢集以打開詳細資訊頁面,然後點擊所需的節點池以打開節點池詳細資訊頁面。3.
- 請記下所需節點的名稱
- 前往Google Cloud Console VM 實例頁面查看 VM 實例
- 尋找所需的節點並點擊SSH以開啟與該節點的SSH連接。
使用命令列
方法 1
首先,SSH 到相關的工作節點。
檢查
kubelet 服務是否正在運行:sudo systemctl status kubelet
輸出應返回
Active: active (running) since..在每個節點上執行以下命令以找到適當的 Kubelet 配置檔:
ps -ef | grep kubelet
上述命令的輸出應該會返回類似於
--config /etc/kubernetes/kubelet-config.yaml 的內容,這是 Kubelet 配置檔案的位置信息。執行下列命令:
stat -c %a /etc/kubernetes/kubelet-config.yaml
上述命令的輸出是
kubelet配置檔案的權限。請確認權限為644或更嚴格。方法二
建立並執行特權 Pod。
您將需要運行一個具有足夠權限以存取主機檔案系統的 Pod。這可以透過部署一個使用 hostPath 卷將節點的檔案系統掛載到 Pod 中來實現。
以下是一個簡單的 Pod 定義範例,將主機的根目錄掛載到 Pod 內的 /host:
apiVersion: v1 kind: Pod metadata: name: file-check spec: volumes: - name: host-root hostPath: path: / type: Directory containers: - name: nsenter image: busybox command: ["sleep", "3600"] volumeMounts: - name: host-root mountPath: /host securityContext: privileged: true
將此內容儲存到檔案中(例如,file-check-pod.yaml)並建立 pod:
kubectl apply -f file-check-pod.yaml
一旦 pod 運行,您可以執行進入以檢查節點上的文件權限:
kubectl exec -it file-check -- sh
現在您在 Pod 的 shell 中,但您可以透過 /host 目錄存取節點的檔案系統並檢查檔案的權限等級:
ls -l /host/etc/kubernetes/kubelet-config.yaml
確認如果指定了檔案且該檔案存在,權限應為 644 或更嚴格。
補救
執行以下指令(使用
kubelet 設定檔案位置):chmod 644 <kubelet_config_file>
