Profilanwendbarkeit: Stufe 1 - Masterknoten
Verwenden Sie individuelle Dienstkontoberechtigungen für jeden Controller.
Der Controller-Manager erstellt ein Servicekonto pro Controller im
kube-system-Namespace, generiert ein Anmeldeinformation dafür und baut einen dedizierten API-Client
mit dieser Servicekonto-Anmeldeinformation für jede Controller-Schleife auf. Das Setzen
von --use-service-account-credentials auf true führt jede Kontrollschleife innerhalb des Controller-Managers mit einer separaten
Servicekonto-Anmeldeinformation aus. In Kombination mit RBAC stellt dies sicher, dass
die Kontrollschleifen mit den minimalen Berechtigungen erforderlich ausgeführt werden,
um ihre vorgesehenen Aufgaben zu erfüllen.
HinweisStandardmäßig ist
--use-service-account-credentials auf false eingestellt. |
Auswirkung
Unabhängig davon, welcher Autorisierer für den Cluster konfiguriert ist, muss er den
Dienstkonten ausreichende Berechtigungen gewähren, um ihre vorgesehenen Aufgaben auszuführen.
Bei Verwendung des RBAC-Autorisierers werden diese Rollen erstellt und automatisch
mit Standardrollen und Rollenbindungen, die beim Start automatisch abgeglichen werden,
an die entsprechenden Dienstkonten im
kube-system-Namespace gebunden.Wenn andere Autorisierungsmethoden (ABAC, Webhook usw.) verwendet werden, ist der
Cluster-Deploy-Verantwortliche dafür zuständig, den Dienstkonten die entsprechenden
Berechtigungen zu erteilen (die erforderlichen Berechtigungen können durch Überprüfung
der
controller-roles.yaml- und controller-role-bindings.yaml-Dateien für die RBAC-Rollen eingesehen werden).Prüfung
Führen Sie den folgenden Befehl auf dem Control Plane-Knoten aus:
ps -ef | grep kube-controller-manager
Überprüfen Sie, ob das Argument
--use-service-account-credentials auf true gesetzt ist.Wiederherstellung
Bearbeiten Sie die Controller-Manager-Pod-Spezifikationsdatei
/etc/kubernetes/manifests/kube-controller-manager.yaml auf dem Steuerungsebenenknoten, um den folgenden Parameter festzulegen.--use-service-account-credentials=true
