Zum Inhalt

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 admin im Default-Namespace.
  • Erstelle einen weiteren ServiceAccount namens developer im Default-Namespace.

Erstelle Rollen

  • Erstelle eine Rolle namens admin im Default-Namespace. Diese Rolle soll Vollzugriff (* auf alle Verben) auf die Ressourcentypen Pod, ReplicaSet und CronJob haben.
  • Erstelle eine Rolle namens developer im Default-Namespace. Diese Rolle soll nur Lesezugriff (get, list, watch) auf die Ressourcentypen Pod, ReplicaSet und CronJob haben.

Erstelle RoleBindings

  • Verbinde den admin-ServiceAccount mit der admin-Rolle mit einem RoleBinding.
  • Verbinde den developer-ServiceAccount mit der developer-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.