Ansichten:
Profilanwendbarkeit: Stufe 1
Wenn kubelet läuft und durch eine kubeconfig-Datei konfiguriert ist, stellen Sie sicher, dass die Proxy-kubeconfig-Datei Berechtigungen von 644 oder restriktiver hat.
Die kubelet kubeconfig-Datei steuert verschiedene Parameter des kubelet-Dienstes im Arbeitsknoten. Sie sollten die Dateiberechtigungen einschränken, um die Integrität der Datei zu wahren. Die Datei sollte nur von den Administratoren des Systems beschreibbar sein.
Es ist möglich, kubelet mit den kubeconfig-Parametern auszuführen, die als Kubernetes ConfigMap anstelle einer Datei konfiguriert sind. In diesem Fall gibt es keine Proxy-kubeconfig-Datei.
Hinweis
Hinweis
Siehe die GKE-Dokumentation für den Standardwert.

Auswirkung

Sicherstellen, dass die Berechtigungen der kubeconfig-Datei auf 644 oder restriktiver gesetzt sind, stärkt die Sicherheitslage der Kubernetes-Umgebung erheblich, indem unbefugte Änderungen verhindert werden.
This restricts write access to the kubeconfig file, ensuring only administrators can alter crucial kubelet configurations, thereby reducing the risk of malicious alterations that could compromise the cluster's integrity.
Diese Konfiguration kann die Benutzerfreundlichkeit geringfügig beeinträchtigen, da sie die Möglichkeit für nicht-administrative Benutzer einschränkt, schnelle Anpassungen an den kubelet-Einstellungen vorzunehmen.
Administratoren müssen die Sicherheitsanforderungen mit der betrieblichen Flexibilität in Einklang bringen, was möglicherweise Anpassungen der Arbeitsabläufe zur Verwaltung von kubelet-Konfigurationen erfordert.

Prüfung

Google Cloud-Konsole verwenden
  1. Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen.
  2. Klicken Sie auf den gewünschten Cluster, um die Detailseite zu öffnen, und klicken Sie dann auf den gewünschten Knotenpool, um die Detailseite des Knotenpools zu öffnen. 3.
  3. Notieren Sie den Namen des gewünschten Knotens
  4. Gehen Sie zu VM-Instanzen, indem Sie die Google Cloud Console VM-Instanzen-Seite besuchen
  5. Finden Sie den gewünschten Knoten und klicken Sie auf 'SSH', um eine SSH-Verbindung zum Knoten zu öffnen.
Verwendung der Befehlszeile
Methode 1
SSH zu den Worker-Knoten.
Um zu überprüfen, ob der Dienst kubelet läuft:
sudo systemctl status kubelet 
Die Ausgabe sollte Aktiv: aktiv (läuft) seit.. zurückgeben
Führen Sie den folgenden Befehl auf jedem Knoten aus, um die entsprechende kubeconfig-Datei zu finden:
ps -ef | grep kubelet
Die Ausgabe des obigen Befehls sollte etwas Ähnliches wie --kubeconfig /var/lib/kubelet/kubeconfig zurückgeben, was den Speicherort der kubeconfig-Datei angibt.
Führen Sie diesen Befehl aus, um die Berechtigungen der kubeconfig-Datei zu erhalten:
stat -c %a /var/lib/kubelet/kubeconfig
Die Ausgabe des obigen Befehls gibt Ihnen die Berechtigungen der kubeconfig-Datei. Überprüfen Sie, ob eine Datei angegeben ist und existiert, dass die Berechtigungen 644 oder restriktiver sind.
Methode 2
Erstellen und Ausführen eines privilegierten Pods.
Sie müssen ein Pod ausführen, das über ausreichende Berechtigungen verfügt, um auf das Dateisystem des Hosts zuzugreifen. Dies kann erreicht werden, indem ein Pod bereitgestellt wird, der das hostPath-Volume verwendet, um das Dateisystem des Knotens in das Pod einzubinden.
Hier ist ein Beispiel für eine einfache Pod-Definition, die das Root-Verzeichnis des Hosts im Pod unter /host einbindet:
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
Speichern Sie dies in einer Datei (z. B. file-check-pod.yaml) und erstellen Sie das Pod
kubectl apply -f file-check-pod.yaml
Sobald das Pod läuft, können Sie sich in das Pod einloggen, um die Dateiberechtigungen auf dem Knoten zu überprüfen:
kubectl exec -it file-check -- sh 
Jetzt befinden Sie sich in einer Shell innerhalb des Pods, aber Sie können über das /host-Verzeichnis auf das Dateisystem des Knotens zugreifen und die Berechtigungsstufe der Datei überprüfen:
ls -l /host/var/lib/kubelet/kubeconfig 
Überprüfen Sie, ob eine Datei angegeben ist und ob sie existiert, dass die Berechtigungen 644 oder restriktiver sind.

Wiederherstellung

Führen Sie den folgenden Befehl (basierend auf dem Dateispeicherort auf Ihrem System) auf jedem Worker-Knoten aus. Zum Beispiel:
chmod 644 <kubeconfig file>