Profilanwendbarkeit: Stufe 1
Deaktiviert anonyme Anfragen an den Kubelet-Server.
Wenn aktiviert, werden Anfragen, die nicht von anderen konfigurierten Authentifizierungsmethoden
abgelehnt werden, als anonyme Anfragen behandelt. Diese Anfragen werden dann vom Kubelet-Server
bedient. Sie sollten sich auf die Authentifizierung verlassen, um den Zugriff zu autorisieren
und anonyme Anfragen zu verhindern.
HinweisSiehe die Azure AKS-Dokumentation für den Standardwert.
|
Auswirkung
Anonyme Anfragen werden abgelehnt.
Prüfung
Audit Method 1Wenn eine Kubelet-Konfigurationsdatei verwendet wird, überprüfen Sie, ob ein Eintrag
für
Authentifizierung: anonym: Aktiviert auf false gesetzt ist.-
SSH zum entsprechenden Knoten.
-
Führen Sie den folgenden Befehl auf jedem Knoten aus, um die entsprechende Kubelet-Konfigurationsdatei zu finden:
ps -ef | grep kubelet
Die Ausgabe sollte etwas Ähnliches wie--config /etc/kubernetes/kubelet/kubelet-config.jsonzurückgeben, was den Speicherort der Kubelet-Konfigurationsdatei darstellt. -
Öffnen Sie die Kubelet-Konfigurationsdatei:
sudo more /etc/kubernetes/kubelet/kubelet-config.json
-
Überprüfen Sie, ob das Argument
"authentication": { "anonymous": { "enabled": false } }auffalsegesetzt ist.
Wenn Sie den api configz Endpunkt verwenden, suchen Sie nach dem Status von
Authentifizierung... "anonymous":{"enabled":false}, indem Sie die Live-Konfiguration von den Knoten extrahieren, die kubelet ausführen.-
Legen Sie die lokale Proxy-Portnummer und die folgenden Variablen fest und geben Sie die Proxy-Portnummer und den Knotennamen an:
kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 export NODE_NAME=ip-192.168.31.226.aks.internal curl -sSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz"
Wiederherstellung
Remediation Method 1Wenn Sie die Kubelet-Konfigurationsdatei ändern, bearbeiten Sie die Datei
kubelet-config.json /etc/kubernetes/kubelet/kubelet-config.json und setzen Sie den folgenden Parameter auf false:"anonymous": "enabled": falseRemediation Method 2
Wenn ausführbare Argumente verwendet werden, bearbeiten Sie die Kubelet-Dienstdatei
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf auf jedem Worker-Knoten und fügen Sie den untenstehenden Parameter am Ende der KUBELET_ARGS-Variablenzeichenfolge
hinzu:--anonymous-auth=falseRemediation Method 3
Wenn Sie den api configz Endpunkt verwenden, suchen Sie nach dem Status von
"authentication.*anonymous":{"enabled":false}", indem Sie die Live-Konfiguration von den Knoten extrahieren, die Kubelet ausführen.
Siehe detaillierte Schritt-für-Schritt-Anweisungen zur ConfigMap in Rekonfigurieren eines Knotens Kubelet in einem Live-Cluster, und führen Sie dann die Curl-Anweisung aus dem Audit-Prozess erneut aus, um Änderungen
der Kubelet-Konfiguration zu überprüfen:kubectl proxy --port=8001 &
export HOSTNAME_PORT=localhost:8001
export NODE_NAME=ip-192.168.31.226.aks.internal
curl -sSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz"
For all three remediations: Basierend auf Ihrem System, starten Sie den Kubelet-Dienst neu und überprüfen Sie
den Status:
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
