Role-Based Access Control (RBAC)

Die RBAC-Funktion erlaubt es einem GKS-Projekt-Admin, einen feingranularen Zugriff basierend auf vordefinierten ClusterRoles und Roles zu gewähren. Über das GKS Dashboard kann ein Admin dafür clusterweit gültige ClusterRoleBindings und nur in einem bestimmten Namespace gültige RoleBindings anlegen. RBAC option

Benutzer mit diesem Zugriffslevel haben keinen Zugriff auf das GKS Dashboard, können sich jedoch über einen Link (siehe unten) ihre eigene kubeconfig-Datei herunterladen und damit Zugriff auf das Cluster bekommen.

Mehr Informationen über Kubernetes RBAC finden Sie hier.

Benutzer-basierter Zugriff

Um einem Benutzer einen RBAC-basierten Zugriff auf einem Cluster einzurichten, klicken Sie im RBAC-Widget auf Add Binding.

RBAC Add Binding

Cluster-weiter Zugriff

Um einen Cluster-weiten Zugriff zu gewähren, wählen Sie im folgenden Fenster Cluster aus, tragen die E-Mail-Adresse des Benutzers ein und wählen die entsprechende Rolle aus.

Add a cluserrolebinding

Dabei sollten Sie jedoch beachten, dass der Benutzer prinzipiell für GKS autorisiert ist. Dieser Zugriff ist notwendig, um die kubeconfig-Datei herunterladen zu können. Die auswählbaren Rollen sind als ClusterRoles angelegt und können mit kubectl betrachtet werden.

kubectl get clusterrole $NAME_OF_CLUSTERROLE -o yaml

Namespace-weiter Zugriff

Wenn der Zugriff auf einen Namespace beschränkt werden soll, müssen Sie im Add Binding-Dialog zu Namespace wechseln und die E-Mail-Adresse angeben.

Im nächsten Schritt müssen Sie die Rolle auswählen, die dem Benutzer zugewiesen werden soll.

Add a rolebinding #1

Zuletzt müssen Sie noch den Namespace auswählen, in dem diese Berechtigung gelten soll.

Add a rolebinding #2

Die für diese Rollen gewährten Zugriffsberechtigungen können Sie ebenfalls mit kubectl abfragen. Da Roles im Gegensatz zu ClusterRoles auf einen bestimmten Namespace bezogen sind, müssen Sie in diesem Fall auch den Namespace mit angeben.

kubectl get role $NAME_OF_ROLE -n $NAMESPACE -o yaml

Nachdem Sie den Zugriff entsprechend gewährt haben, sollten die gewährten Rechte im Dashboard sichtbar sein.

RBAC option

Den Benutzern die kubeconfig-Datei zur Verfügung stellen

Sobald einem Benutzer RBAC-Rechte zugewiesen wurden, können Sie diesem seine persönliche kubeconfig-Datei über einen speziellen Link zur Verfügung stellen.

Dazu müssen Sie den Share kubeconfig Link im GKS Dashboard öffnen.

Share kubeconfig button

Im nächsten Schritt müssen Sie den angezeigten Link kopieren und an den Nutzer schicken.

Share kubeconfig dialog

Der Link zeigt zu einer Login-Seite. Dort muss sich der Benutzer authentifizieren und kann danach direkt seine kubeconfig-Datei herunterladen:

Login page

Sobald ein Benutzer seine kubeconfig-Datei heruntergeladen hat, werden alle eventuellen weiteren Änderungen an den RBAC-Rechten sofort aktiv. Insbesondere ein Entziehen der Rechte ist sofort umgesetzt, ein Revoke Token ist damit nicht notwendig.