Ansichten:
Profilanwendbarkeit: Stufe 1
Deaktivieren Sie den schreibgeschützten Port.
Der Kubelet-Prozess stellt zusätzlich zur Haupt-Kubelet-API eine schreibgeschützte API bereit. Auf diese schreibgeschützte API kann ohne Authentifizierung zugegriffen werden, was möglicherweise dazu führen könnte, dass potenziell sensible Informationen über das Cluster abgerufen werden.
Hinweis
Hinweis
Siehe die Amazon EKS-Dokumentation für den Standardwert.

Auswirkung

Das Entfernen des schreibgeschützten Ports erfordert, dass jeder Dienst, der ihn genutzt hat, neu konfiguriert werden muss, um die Haupt-Kubelet-API zu verwenden.

Prüfung

  1. Wenn eine Kubelet-Konfigurationsdatei verwendet wird, überprüfen Sie, ob ein Eintrag für authentication: anonymous: enabled auf 0 gesetzt ist.
  2. SSH zum entsprechenden Knoten. Führen Sie den folgenden Befehl auf jedem Knoten aus, um die passende Kubelet-Konfigurationsdatei zu finden:
    ps -ef | grep kubelet
    Die Ausgabe des obigen Befehls sollte etwas Ähnliches wie --config/etc/kubernetes/kubelet/kubelet-config.json zurückgeben, was der Speicherort der Kubelet-Konfigurationsdatei ist.
  3. Öffnen Sie die Kubelet-Konfigurationsdatei:
    cat /etc/kubernetes/kubelet/kubelet-config.json
  4. Überprüfen Sie, ob das Argument --read-only-port existiert und auf 0 gesetzt ist.
  5. Wenn das --read-only-port-Argument nicht vorhanden ist, überprüfen Sie, ob eine Kubelet-Konfigurationsdatei durch --config angegeben ist. Überprüfen Sie, ob, falls ein readOnlyPort-Eintrag in der Datei vorhanden ist, dieser auf 0 gesetzt ist.

Wiederherstellung

Wenn Sie die Kubelet-Konfigurationsdatei ändern, bearbeiten Sie die Datei kubelet-config.json /etc/kubernetes/kubelet/kubelet-config.json und setzen Sie den untenstehenden Parameter auf 0:
"readOnlyPort": 0
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-Variablenzeichenfolge den folgenden Parameter hinzu:
--read-only-port=0
Für jede Behebung starten Sie den Kubelet-Dienst neu und überprüfen Sie den Status basierend auf Ihrem System:
systemctl daemon-reload
systemctl restart kubelet.service
systemctl status kubelet -l