Lab 17: Erstellen und Debuggen von ServiceAccounts, Rollen und RoleBindings in Kubernetes¶
In dieser Übung wirst du zwei ServiceAccounts sowie entsprechende Rollen in Kubernetes erstellen. Diese Rollen sollen unterschiedliche Zugriffsrechte auf bestimmte Ressourcen haben. Anschließend wirst du die ServiceAccounts mit den Rollen verbinden und überprüfen, ob die Berechtigungen korrekt angewendet wurden.
Der Befehl kubectl auth can-i¶
In kubectl eingebaut ist ein Feature welches prüft, ob ein Principal in Kubernetes Berechtigungen hat. Hier ist die Dokumentation dazu: So sieht zum Beispiel der Befehl aus, der prüft, ob der ServiceAccount "admin" im Default Namespace alle Pods auflisten darf:
kubectl auth can-i list pods --as=system:serviceaccount:default:admin -n default
ServiceAccounts erstellen¶
- Erstelle einen ServiceAccount namens
adminim Default-Namespace. - Erstelle einen weiteren ServiceAccount namens
developerim Default-Namespace.
Erstelle Rollen¶
- Erstelle eine Rolle namens
adminim Default-Namespace. Diese Rolle soll Vollzugriff (* auf alle Verben) auf die RessourcentypenPod,ReplicaSetundCronJobhaben. - Erstelle eine Rolle namens
developerim Default-Namespace. Diese Rolle soll nur Lesezugriff (get,list,watch) auf die RessourcentypenPod,ReplicaSetundCronJobhaben.
Erstelle RoleBindings¶
- Verbinde den
admin-ServiceAccount mit deradmin-Rolle mit einem RoleBinding. - Verbinde den
developer-ServiceAccount mit derdeveloper-Rolle.
Überprüfe die Berechtigungen¶
- Verwende den Befehl
kubectl auth can-i, um zu überprüfen, ob der ServiceAccount admin Vollzugriff auf die genannten Ressourcen hat. - Überprüfe auch, ob der ServiceAccount developer nur Lesezugriff hat und keine anderen Aktionen ausführen kann.