Rollenbasierte Zugriffskontrolle (RBAC)
Verwalten Sie Benutzer- und Service-Account-Berechtigungen in Ihrem Cluster mithilfe von RBAC-Rollen und Role Bindings.
Rollenbasierte Zugriffskontrolle (RBAC) ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was ist RBAC in Kubernetes?
Willkommen! In dieser Lektion befassen wir uns mit der rollenbasierten Zugriffskontrolle (Role-Based Access Control, RBAC), einer wichtigen Sicherheitsfunktion in Kubernetes.
Mit RBAC verwalten Sie, wer in Ihrem Cluster welche Aktionen ausführen darf. RBAC ist wie ein Türsteher für Ihre Kubernetes-Ressourcen und stellt sicher, dass nur autorisierte Benutzer und Anwendungen bestimmte Aktionen ausführen können.
Warum RBAC unverzichtbar ist
Ohne RBAC könnte jeder mit Zugriff auf den Cluster potenziell jede Aktion ausführen, was zu Sicherheitsrisiken oder versehentlichen Schäden führen kann.
- Sicherheit: Verhindert unbefugten Zugriff und nicht autorisierte Vorgänge.
- Compliance: Unterstützt die Erfüllung gesetzlicher Anforderungen an die Zugriffskontrolle.
- Prinzip der geringsten Berechtigung: Stellt sicher, dass Benutzer und Anwendungen nur die Berechtigungen erhalten, die sie unbedingt benötigen.
Zentrale RBAC-Konzepte
RBAC in Kubernetes basiert auf einigen zentralen Komponenten:
- Subjekte: Das „Wer“ (Benutzer, Service Accounts, Gruppen).
- Rollen: Das „Was“ (eine Gruppe von Berechtigungen).
- RoleBindings: Das „Wie“ (verknüpft eine Rolle mit einem Subjekt).
- ClusterRoles und ClusterRoleBindings: Clusterweite Varianten von Rollen und RoleBindings.
Subjekte: Benutzer und Service Accounts
Kubernetes muss wissen, wer eine Aktion anfordert. Diese Entitäten werden Subjekte genannt:
- Benutzer: In der Regel menschliche Administratoren oder Entwickler. Kubernetes verwaltet Benutzer nicht direkt, sondern greift auf eine externe Authentifizierung zurück.
- Service Accounts: Kubernetes-Objekte, die von Anwendungen oder Prozessen verwendet werden, die innerhalb von Pods ausgeführt werden. Sie sind entscheidend für die Kommunikation zwischen Pod und API-Server.
Berechtigungen mit Rollen definieren
Eine Rolle definiert eine Gruppe von Berechtigungen innerhalb eines bestimmten Namespace. Sie legt fest, welche Aktionen (Verben) für welche Ressourcen ausgeführt werden dürfen.
Beispielsweise kann eine Rolle das „Abrufen“ und „Auflisten“ von Pods im Namespace „default“ erlauben.
Rollenbeispiel: Pod-Reader
Hier sehen Sie eine YAML-Definition für eine Rolle namens pod-reader. Diese Rolle gewährt die Berechtigungen „get“, „list“ und „watch“ (Überwachen) für Pods.
Beachten Sie apiGroups: [""], das auf die Kubernetes-Kern-API-Gruppe verweist.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]Berechtigungen mit RoleBindings gewähren
Ein RoleBinding verknüpft eine bestimmte Rolle mit einem oder mehreren Subjekten (Benutzern, Service Accounts oder Gruppen) innerhalb eines bestimmten Namespace.
Es stellt die Verbindung her, die besagt: „Dieser Benutzer bzw. diese Anwendung darf in diesem Namespace alles tun, was diese Rolle erlaubt.“
RoleBinding-Beispiel: Zugriff gewähren
Dieses RoleBinding verknüpft unsere Rolle pod-reader mit einem Service Account namens my-app-sa im Namespace default. Nun kann my-app-sa Pods lesen.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: my-app-sa # The service account getting permissions
namespace: default
roleRef:
kind: Role
name: pod-reader # The Role being granted
apiGroup: rbac.authorization.k8s.ioClusterRoles und ClusterRoleBindings
Manchmal benötigen Sie Berechtigungen, die für den gesamten Cluster gelten und nicht nur für einen Namespace. Dafür gibt es ClusterRoles und ClusterRoleBindings.
- ClusterRole: Definiert Berechtigungen für clusterbezogene Ressourcen (z. B. Nodes und persistente Volumes) oder für Aktionen über alle Namespaces hinweg (z. B. „alle Pods auflisten“).
- ClusterRoleBinding: Verknüpft eine ClusterRole mit Subjekten und gewährt clusterweite Berechtigungen.
RBAC-Schnelltest
Ein Entwickler muss neue Anwendungen ausschließlich im Namespace dev bereitstellen. Welche zwei Kubernetes-RBAC-Ressourcen würden Sie hauptsächlich verwenden, um ihm diese spezifische Berechtigung zu gewähren?
Rückblick: RBAC-Grundlagen
Sehr gut! Sie haben die Grundlagen von Kubernetes-RBAC gelernt:
- RBAC steuert, wer mit Ihren Clusterressourcen interagieren darf.
- Rollen definieren Berechtigungen innerhalb eines Namespace.
- RoleBindings verknüpfen Rollen mit Subjekten (Benutzern und Service Accounts).
- ClusterRoles und ClusterRoleBindings verwalten clusterweite Berechtigungen.
Die Beherrschung von RBAC ist entscheidend für die Absicherung Ihrer Kubernetes-Umgebung.
Häufig gestellte Fragen
Ist die Lektion „Rollenbasierte Zugriffskontrolle (RBAC)“ kostenlos?
Ja — der vollständige Text von „Rollenbasierte Zugriffskontrolle (RBAC)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Rollenbasierte Zugriffskontrolle (RBAC)“?
Verwalten Sie Benutzer- und Service-Account-Berechtigungen in Ihrem Cluster mithilfe von RBAC-Rollen und Role Bindings. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Rollenbasierte Zugriffskontrolle (RBAC)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Rollenbasierte Zugriffskontrolle (RBAC)
- Network Policies zur Isolation
- Pod-Sicherheitsstandards
- Service Accounts und Workload Identity