Profilanwendbarkeit: Stufe 1
Deaktivieren Sie den schreibgeschützten Port.
Der Kubelet-Prozess stellt zusätzlich zur Haupt-Kubelet-API eine schreibgeschützte
API bereit. Unauthentifizierter Zugriff wird auf diese schreibgeschützte API gewährt,
die möglicherweise potenziell sensible Informationen über das Cluster abrufen könnte.
![]() |
HinweisSiehe die GKE-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
Wenn eine Kubelet-Konfigurationsdatei verwendet wird, überprüfen Sie, ob ein Eintrag
für
authentication: anonymous: enabled
auf 0
gesetzt ist.- Zuerst per SSH zum entsprechenden Knoten verbinden.
- Führen Sie den folgenden Befehl auf jedem Knoten aus, um die entsprechende 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 den Speicherort der Kubelet-Konfigurationsdatei darstellt. - Öffnen Sie die Kubelet-Konfigurationsdatei:
cat /etc/kubernetes/kubelet/kubelet-config.json
- Überprüfen Sie, ob das Argument
--read-only-port
existiert und auf0
gesetzt ist. Wenn das Argument--read-only-port
nicht vorhanden ist, stellen Sie sicher, dass eine Kubelet-Konfigurationsdatei durch--config
angegeben ist. - Überprüfen Sie, ob es einen
readOnlyPort
-Eintrag in der Datei gibt und ob dieser auf0
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 folgenden 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:
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