Zum Inhalt springen

Rollen und Berechtigungen verstehen

Zuletzt aktualisiert am

Rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC)

Abschnitt betitelt „Rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC)“

STACKIT verwendet die rollenbasierte Zugriffssteuerung (RBAC), um den Zugriff auf verschiedene Endpunkte zu erlauben oder zu verweigern. Bei RBAC wird einem Rolleninhaber durch eine Richtlinie eine Rolle für eine bestimmte Ressource zugewiesen.

Ein Rolleninhaber ist eine verifizierte Identität und kann eine der folgenden Formen annehmen:

  • Benutzer: Identifiziert eine reale Person, deren Daten im Identitätsanbieter (Identity Provider) gespeichert sind. Sie können sich mit einem Benutzernamen und Passwort oder über föderierte Anmeldemethoden anmelden.
  • Service-Account: Identifiziert eine Maschine, ein Skript oder etwas, das keine reale Person ist. Service-Accounts sind nützlich, um Automatisierungen einzurichten, die minimale oder keine Benutzerinteraktion erfordern.
  • Client: Clients identifizieren eine Maschine oder etwas, das keine reale Person ist und administrative Berechtigungen hat. Clients können nicht von Endbenutzern verwendet werden.

Standardmäßig hat kein Rolleninhaber Zugriff auf irgendeine Ressource. Der Zugriff wird über Rollen erteilt.

Berechtigungen definieren die spezifischen Aktionen, die Benutzer in Ihrer STACKIT-Umgebung durchführen können. Sie sind die niedrigste Ebene im von STACKIT verwendeten RBAC-Modell. Jede Operation in Ihrer Organisation, ob über das STACKIT Portal, die API oder Infrastruktur-Tools ausgeführt, erfordert eine spezifische Berechtigung. In der Regel besteht eine Eins-zu-eins-Beziehung zwischen jeder Berechtigung und einer API-Methode.

Jede Berechtigung hat zwei Komponenten:

  • Name: Ein für Menschen lesbarer Bezeichner, der zur Erkennung im STACKIT Portal verwendet wird.
  • Beschreibung: Eine für Menschen lesbare Beschreibung des Zwecks der Berechtigung.

Eine Rolle ist eine Sammlung von Berechtigungen. Rollen können weit gefasst sein, wie Owner, oder spezifisch, wie postgres-flex.reader. Sie können sich Rollen als logisch zusammenhängende Sätze von Berechtigungen vorstellen. Wenn Sie einem Benutzer eine oder mehrere Rollen zuweisen, geben Sie ihm alle Berechtigungen, die diese Rollen enthalten.

Jede Rolle hat die folgenden Komponenten:

  • Name: Ein für Menschen lesbarer Bezeichner, der zur Erkennung im STACKIT Portal verwendet wird.
  • Beschreibung: Eine für Menschen lesbare Beschreibung.
  • Berechtigungen: Eine Liste der in der Rolle enthaltenen Berechtigungen.

Allgemeine Rollen wie Owner, Editor und Reader bieten einen breiten Zugriff über alle STACKIT-Dienste hinweg und enthalten umfangreiche Berechtigungssätze. Verwenden Sie diese Rollen in Produktionsumgebungen mit Vorsicht und beschränken Sie ihren Geltungsbereich auf bestimmte Ordner oder Projekte, anstatt sie auf Organisationsebene anzuwenden.

  • Owner: Gewährt vollen Zugriff zur Verwaltung aller Ressourcen, einschließlich der Möglichkeit, Rollen zuzuweisen.
  • Editor: Gewährt vollen Zugriff zum Erstellen und Löschen von Ressourcen für die meisten STACKIT-Dienste, erlaubt aber keine Rollenzuweisung.
  • Reader: Gewährt schreibgeschützten Zugriff auf alle Ressourcen. Diese Rolle erlaubt es Ihnen nicht, Ressourcen zu ändern oder Rollen zuzuweisen.

Produktspezifische Rollen ermöglichen es Ihnen, begrenzten Zugriff auf bestimmte STACKIT-Produkte zu gewähren. Sie können diese Rollen auf verschiedenen Scope-Ebenen für eine breite oder feingranulare Zugriffssteuerung zuweisen. Die Benennung dieser Rollen hat ein festes Format: Produktname.Substantiv, wie postgres-flex.admin oder postgres-flex.reader.

Diagram

Ein Scope bezieht sich auf den Bereich der Ressourcen, auf die zugegriffen werden kann. Sie können einen Scope auf verschiedenen Ebenen definieren: Organisation, Ordner und Projekt. Die von Ihnen gewählte Ebene bestimmt, wie weitreichend die Berechtigungen der Rolle sind. Scopes folgen einer hierarchischen Struktur, bei der jede Ebene eine spezifischere Teilmenge des übergeordneten Elements ist.

Rollenbindungen, auch als Mitgliedschaften bezeichnet, sind der Kernmechanismus für die Zugriffssteuerung. Sie verknüpfen ein Rolleninhaber (einen Benutzer, Service-Account oder eine Gruppe) mit einer bestimmten Rolle innerhalb eines definierten Scopes. Dies ist die einzige Methode, die zur Verwaltung des Zugriffs in Ihrer Organisation, Ihren Ordnern und Projekten verwendet wird.

Eine Rollenbindung besteht aus Folgendem:

  • Rolleninhaber: Die Identität, die den Zugriff erhält. Dies kann die Email eines Benutzers, die Email eines Service-Accounts oder eine Gruppen-ID sein.
  • Rolle: Eine Sammlung von Berechtigungen.
  • Scope: Die Ebene in der Ressourcenhierarchie, auf der Zugriff gewährt wird. Derzeit sind Rollenbindungen nur für Resource-Manager-Entitäten wie Ihre Organisation, Ihren Ordner oder Ihr Projekt verfügbar. Rollenbindungen auf der Ebene einzelner Cloud-Ressourcen (wie einem bestimmten Bucket oder einer VM) werden nicht unterstützt.

Das Zugriffsmodell für Rollenbindungen ist streng additiv. Der Zugriff wird nur durch die Erstellung einer neuen Rollenbindung gewährt und kann nicht durch nachfolgende Bindungen widerrufen werden. Um die effektiven Berechtigungen eines Rolleninhabers zu reduzieren, müssen die bestehenden, zu freizügigen Rollenbindungen explizit entfernt werden.

Alle Berechtigungen, die durch Rollenbindungen auf Organisationen und Ordnern erteilt werden, werden entlang der Ressourcenhierarchie an Ordner und Projekte vererbt. Diese geerbten Rollenbindungen werden auf der untergeordneten Ressource angezeigt, sofern sie auch die Berechtigung erteilen, den Ordner oder das Projekt zu sehen (mit resource-manager.folder.get und resource-manager.project.get).

Wenn Sie eine durch Vererbung erteilte Berechtigung entfernen möchten, muss die Rollenbindung auf der übergeordneten Ebene entfernt werden. Der Zugriff kann nicht eingeschränkt oder verweigert werden, indem eine Rollenbindung auf einem untergeordneten Knoten (Projekt oder Ordner) hinzugefügt wird.