Ansichten:
Profilanwendbarkeit: Stufe 1
Die RBAC-Rolle cluster-admin bietet umfassende Befugnisse über die Umgebung und sollte nur bei Bedarf verwendet werden.
Kubernetes bietet eine Reihe von Standardrollen, bei denen RBAC verwendet wird. Einige dieser Rollen, wie cluster-admin, bieten weitreichende Privilegien, die nur dort angewendet werden sollten, wo es unbedingt erforderlich ist. Rollen wie cluster-admin ermöglichen Superuser-Zugriff, um beliebige Aktionen auf beliebigen Ressourcen auszuführen.
Wenn es in einer ClusterRoleBinding verwendet wird, gibt es Vollzugriff auf jede Ressource im Cluster und in allen Namespaces. Wenn es in einer RoleBinding verwendet wird, gibt es Vollzugriff auf jede Ressource im Namespace der RoleBinding, einschließlich des Namespaces selbst.
Hinweis
Hinweis
Standardmäßig wird eine einzelne clusterrolebinding namens cluster-admin mit der Gruppe system:masters als Hauptgruppe bereitgestellt.

Auswirkung

Es sollte darauf geachtet werden, bevor clusterrolebindings aus der Umgebung entfernt werden, um sicherzustellen, dass sie nicht für den Betrieb des Clusters erforderlich waren. Insbesondere sollten keine Änderungen an clusterrolebindings mit dem Präfix system: vorgenommen werden, da sie für den Betrieb von Systemkomponenten erforderlich sind.

Prüfung

Erhalten Sie eine Liste der Benutzer, die Zugriff auf die Rolle cluster-admin haben, indem Sie die Ausgabe von clusterrolebinding für jede Rollenbindung überprüfen, die Zugriff auf die Rolle cluster-admin hat.
Hier ist eine prägnante und effektive CLI-Anweisung, um alle Principals (Benutzer, Gruppen oder Dienstkonten) aufzulisten, die an die Rolle cluster-admin gebunden sind:
kubectl get clusterrolebinding -o jsonpath='{range .items[?(@.roleRef.name=="cluster-admin")]}{.metadata.name}{"\n"}{range .subjects[*]}{.kind}{"\t"}{.name}{"\n"}{end}{"\n"}{end}'
Überprüfen Sie jeden aufgeführten Principal und stellen Sie sicher, dass das cluster-admin-Privileg dafür erforderlich ist.

Wiederherstellung

Identifizieren Sie alle clusterrolebindings zur cluster-admin-Rolle. Überprüfen Sie, ob sie verwendet werden und ob sie diese Rolle benötigen oder ob sie eine Rolle mit weniger Berechtigungen verwenden könnten.
Wo möglich, binden Sie Benutzer zunächst an eine Rolle mit niedrigeren Berechtigungen und entfernen Sie dann die clusterrolebinding zur cluster-admin Rolle :
kubectl delete clusterrolebinding [name]