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.
HinweisSiehe 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
- Wenn eine Kubelet-Konfigurationsdatei verwendet wird, überprüfen Sie, ob ein Eintrag
für
authentication: anonymous: enabledauf 0 gesetzt ist. - 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.jsonzurückgeben, was der Speicherort der Kubelet-Konfigurationsdatei ist. - Öffnen Sie die Kubelet-Konfigurationsdatei:
cat /etc/kubernetes/kubelet/kubelet-config.json
- Überprüfen Sie, ob das Argument
--read-only-portexistiert und auf 0 gesetzt ist. - Wenn das
--read-only-port-Argument nicht vorhanden ist, überprüfen Sie, ob eine Kubelet-Konfigurationsdatei durch--configangegeben ist. Überprüfen Sie, ob, falls einreadOnlyPort-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
