Ansichten:
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.
Hinweis
Hinweis
Siehe die Azure AKS-Dokumentation für den Standardwert.

Auswirkung

Anonyme Anfragen werden abgelehnt.

Prüfung

Audit Method 1
Wenn eine Kubelet-Konfigurationsdatei verwendet wird, überprüfen Sie, ob ein Eintrag für Authentifizierung: anonym: Aktiviert auf false gesetzt ist.
  1. SSH zum entsprechenden Knoten.
  2. 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.json zurückgeben, was den Speicherort der Kubelet-Konfigurationsdatei darstellt.
  3. Öffnen Sie die Kubelet-Konfigurationsdatei:
    sudo more /etc/kubernetes/kubelet/kubelet-config.json
  4. Überprüfen Sie, ob das Argument "authentication": { "anonymous": { "enabled": false } } auf false gesetzt ist.
Audit Method 2
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.
  1. 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 1
Wenn 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": false
Remediation 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=false
Remediation 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