RBAC-Grundlagen in Kubernetes
Was ist RBAC?
Die Rollenbasierte Zugangskontrolle (Role-Based Access Control, RBAC) ist ein wichtiges Sicherheitskonzept in Kubernetes, das den Zugang zu Cluster-Ressourcen basierend auf den Rollen einzelner Benutzer oder Service Accounts regelt. Es ermöglicht eine feingranulare Kontrolle darüber, wer welche spezifischen Aktionen an Cluster-Ressourcen ausführen kann.
Kernkomponenten von RBAC
1. Subjekte
RBAC definiert drei Arten von Subjekten:
- Benutzer (Users)
- Gruppen (Groups)
- Service Accounts
graph TD
A[RBAC Subjects] --> B[Users]
A --> C[Groups]
A --> D[Service Accounts]
2. Ressourcen
Ressourcen in Kubernetes umfassen:
- Pods
- Deployments
- Services
- Namespaces
- ConfigMaps
3. Verben
Häufige RBAC-Verben sind:
- create
- get
- list
- update
- delete
- watch
Verb |
Beschreibung |
create |
Neue Ressourcen erstellen |
get |
Eine bestimmte Ressource abrufen |
list |
Mehrere Ressourcen auflisten |
update |
Bestehende Ressourcen ändern |
delete |
Ressourcen entfernen |
RBAC-Objekte
Rollen (Roles)
Rollen definieren eine Reihe von Berechtigungen innerhalb eines bestimmten Namespaces.
Beispiel einer Rolle:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
ClusterRollen (ClusterRoles)
ClusterRollen definieren Berechtigungen für den gesamten Cluster.
Beispiel einer ClusterRolle:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"]
Rollenbindungen (RoleBindings)
Rollenbindungen verbinden Rollen mit Subjekten innerhalb eines Namespaces.
Beispiel einer Rollenbindung:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jane
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
ClusterRollenbindungen (ClusterRoleBindings)
ClusterRollenbindungen verbinden ClusterRollen mit Subjekten für den gesamten Cluster.
Best Practices
- Befolgen Sie das Prinzip des geringsten Privilegs.
- Verwenden Sie Service Accounts für Anwendungen.
- Überprüfen und prüfen Sie die Berechtigungen regelmäßig.
- Vermeiden Sie die Verwendung der Standard-Rolle cluster-admin.
LabEx-Empfehlung
Um praktische Erfahrungen mit Kubernetes RBAC zu sammeln, erkunden Sie die interaktiven Kubernetes-Sicherheitslabs von LabEx, um Ihr Verständnis der Zugangskontrollmechanismen zu vertiefen.