Profilanwendbarkeit: Stufe 1 - Worker-Knoten
Das Deaktivieren der anonymen Authentifizierung für den Kubelet-Server erhöht die
Sicherheit der Kubernetes-Arbeitsknoten, indem sichergestellt wird, dass alle Anfragen
eine Authentifizierung erfordern, wodurch das Risiko unbefugten Zugriffs gemindert
wird.
Auswirkung
Anonyme Anfragen werden abgelehnt.
Prüfung
Prüfmethode 1:
WichtigKubelets können entweder über eine Konfigurationsdatei oder über Befehlszeilenargumente
konfiguriert werden. Befehlszeilenargumente haben Vorrang vor denselben Parametern,
die in der Konfigurationsdatei festgelegt sind. Bei der Überprüfung von Kubelet-Konfigurationen
sollten Sie sowohl die Befehlszeilenargumente als auch die Einträge in der Konfigurationsdatei
überprüfen.
|
-
SSH in jeden Knoten und führen Sie den folgenden Befehl aus, um Details des aktiven Kubelet-Prozesses, einschließlich der Befehlszeilenargumente, anzuzeigen:
ps -ef | grep kubelet
-
Identifizieren Sie den Speicherort der Konfigurationsdatei aus der Ausgabe, die durch das Argument --config angegeben wird. Sehen Sie die Datei an mit:
sudo less /path/to/kubelet-config.json
-
Überprüfen Sie, ob die anonyme Authentifizierung deaktiviert ist:
-
Überprüfen Sie das Befehlszeilenargument:
--anonymous-auth=false
-
Stellen Sie in der Kubelet-Konfigurationsdatei sicher, dass die folgende Einstellung vorhanden ist:
{ "authentication": { "anonymous": { "enabled": false } } }
-
Prüfmethode 2:
Überprüfen Sie die laufende Konfiguration eines Kubelet über den "/configz"-Endpunkt
der Kubernetes-API mit kubectl:
-
Entdecken Sie alle Knoten in Ihrem Cluster:
kubectl get nodes
-
Starten Sie einen Proxy mit kubectl auf einem lokalen Port (z. B. 8080):
kubectl proxy --port=8080
-
Führen Sie in einem separaten Terminal den folgenden Befehl für jeden Knoten aus:
export NODE_NAME=my-node-name curl http://localhost:8080/api/v1/nodes/${NODE_NAME}/proxy/configz -
Überprüfen Sie, ob die anonyme Authentifizierung deaktiviert ist, indem Sie im API-Antwort nach Folgendem suchen:
{ "authentication": { "anonymous": { "enabled": false } } }
Wiederherstellung
Methode 1:
-
{SS} in jeden Knoten.
-
Wenn Sie eine Kubelet-Konfigurationsdatei verwenden, suchen Sie die Datei:
ps -ef | grep kubelet
-
Zeigen Sie die Konfigurationsdatei an mit:
sudo less /path/to/kubelet-config.json
-
Deaktivieren Sie die anonyme Authentifizierung, indem Sie den folgenden Parameter in der Konfigurationsdatei festlegen:
{ "authentication": { "anonymous": { "enabled": false } } } -
Starten Sie den Kubelet-Dienst neu und überprüfen Sie seinen Status (Beispiel für Systeme, die systemd verwenden):
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
Methode 2:
-
Wenn Sie Befehlszeilenargumente verwenden, bearbeiten Sie die Kubelet-Dienstdatei, um Folgendes einzuschließen:
--anonymous-auth=false
-
Für Systeme, die systemd verwenden, bearbeiten Sie die Datei unter /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf.
-
Starten Sie den Kubelet-Dienst neu und überprüfen Sie seinen Status (Beispiel für Systeme, die systemd verwenden):
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
