Ansichten:
Profilanwendbarkeit: Stufe 1
Aktivieren Sie die Kubelet-Authentifizierung mit Zertifikaten.
Die Verbindungen vom API-Server zum Kubelet werden verwendet, um Protokolle für Pods abzurufen, sich (über kubectl) mit laufenden Pods zu verbinden und die Port-Forwarding-Funktionalität des Kubelets zu nutzen. Diese Verbindungen enden am HTTPS-Endpunkt des Kubelets. Standardmäßig überprüft der API-Server das Kubelet-Servierzertifikat nicht, was die Verbindung anfällig für Man-in-the-Middle-Angriffe macht und unsicher über unzuverlässige und/oder öffentliche Netzwerke auszuführen ist. Die Aktivierung der Kubelet-Zertifikatsauthentifizierung stellt sicher, dass der API-Server das Kubelet authentifizieren kann, bevor Anfragen gestellt werden.
Hinweis
Hinweis
Standardmäßig ist die clientCAFile auf /etc/kubernetes/kubelet-ca.crt gesetzt.

Auswirkung

Sie müssen TLS sowohl auf dem API-Server als auch auf den Kubelets konfigurieren.

Prüfung

OpenShift bietet eine integrierte Verwaltung von Zertifikaten für interne Cluster-Komponenten. OpenShift 4 umfasst mehrere CAs, die unabhängige Vertrauenskette bereitstellen, um sicherzustellen, dass eine Plattform-CA niemals versehentlich ein Zertifikat signiert, das für den falschen Zweck verwendet werden kann, wodurch die Sicherheitslage des Clusters verbessert wird.
Sie können die Client-CA-Datei mit dem folgenden Befehl überprüfen:
for node in $(oc get nodes -ojsonpath='{.items[*].metadata.name}'); do
oc get --raw /api/v1/nodes/$node/proxy/configz | jq
'.kubeletconfig.authentication.x509.clientCAFile'
done
Überprüfen Sie, ob alle Knoten /etc/kubernetes/kubelet-ca.crt als clientCAFile-Wert verwenden.

Wiederherstellung

None. Das Ändern des Werts clientCAFile wird nicht unterstützt.