Ansichten:
Profilanwendbarkeit: Stufe 2
Aktivieren Sie die Rotation des Client-Zertifikats für Kubelet.
Die Einstellung --rotate-certificates bewirkt, dass der Kubelet seine Client-Zertifikate durch das Erstellen neuer CSRs dreht, wenn seine bestehenden Anmeldedaten ablaufen. Diese automatisierte periodische Drehung stellt sicher, dass es keine Ausfallzeiten aufgrund abgelaufener Zertifikate gibt und somit die Verfügbarkeit im CIA (Vertraulichkeit, Integrität und Verfügbarkeit) Sicherheitsdreieck gewährleistet wird.
Diese Empfehlung gilt nur, wenn Sie kubelets ihre Zertifikate vom API-Server beziehen lassen. Falls Ihre kubelet-Zertifikate von einer externen Autorität/einem externen Tool (z. B. Vault) stammen, müssen Sie die Rotation selbst implementieren. Diese Funktion erfordert auch, dass das RotateKubeletClientCertificate Feature-Gate aktiviert ist.
Hinweis
Hinweis
Siehe die Azure AKS-Dokumentation für den Standardwert.

Auswirkung

Das Deaktivieren der Zertifikatsrotation kann dazu führen, dass abgelaufene Kubelet-Zertifikate die Kommunikation mit dem API-Server unterbrechen, was potenziell zu Problemen mit Knoten oder Pods führen kann. Dies kann manuelles Eingreifen erfordern und ist in Produktionsumgebungen nicht nachhaltig.

Prüfung

  1. SSH zu jedem Knoten und führen Sie den folgenden Befehl aus, um den Kubelet-Prozess zu finden:
    ps -ef | grep kubelet
  2. Wenn die Ausgabe das ausführbare Argument --RotateCertificate enthält, überprüfen Sie, ob es auf true gesetzt ist.
  3. Wenn die Ausgabe des obigen Befehls das ausführbare Argument --RotateCertificate nicht enthält, überprüfen Sie die Kubelet-Konfigurationsdatei.
    Die Ausgabe des obigen Befehls sollte etwas Ähnliches wie --config /etc/kubernetes/kubelet/kubelet-config.json zurückgeben, was den Speicherort der Kubelet-Konfigurationsdatei darstellt.
  4. Öffnen Sie die Kubelet-Konfigurationsdatei:
    cat /etc/kubernetes/kubelet/kubelet-config.json
  5. Überprüfen Sie, dass das Argument RotateCertificate nicht vorhanden ist oder auf true gesetzt ist.

Wiederherstellung

Remediation Method 1:
Wenn Sie die Kubelet-Konfigurationsdatei ändern, bearbeiten Sie /etc/kubernetes/kubelet/kubelet-config.json und setzen Sie den untenstehenden Parameter auf true:
"rotateCertificates": true
Stellen Sie sicher, dass die Kubelet-Dienstdatei /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf das ausführbare Argument --RotateCertificate nicht auf false setzt, da dies die Kubelet-Konfigurationsdatei überschreiben würde.
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 am Ende der KUBELET_ARGS-Zeichenfolge den folgenden Parameter hinzu:
--RotateCertificate=true