Zum Inhalt springen

Rollen und Berechtigungen verstehen

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, die die folgenden Formen annehmen kann:

  • 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 E-Mail eines Benutzers, die E-Mail eines Service-Accounts oder eine Gruppen-ID sein.
  • Rolle: Eine Sammlung von Berechtigungen.
  • Scope: Die Ebene der Ressourcenhierarchie, auf der 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.

Wenn die effektiven Berechtigungen durch Vererbung gewährt werden – das heißt, über eine Rollenbindung, die auf einem übergeordneten Knoten in der Ressourcenhierarchie (Organisation oder Ordner) eingerichtet wurde – muss die Bindung auf der übergeordneten Ebene entfernt werden. Der Zugriff kann nicht durch Hinzufügen einer Bindung auf einem untergeordneten Knoten (Projekt oder Ordner) eingeschränkt oder verweigert werden.

Niedrigster ScopeNameBeschreibungBerechtigungen
ProjektIAM Member AdminDiese Rolle erlaubt die Verwaltung des Zugriffs auf die spezifische Ressource. Dies beinhaltet das Auflisten, Hinzufügen und Entfernen von Mitgliedern und Rollenbindungen.
  • iam.member.add
  • iam.member.get
  • iam.member.remove
  • iam.role.get
  • iam.role.list
ProjektIAM Member ReaderDiese Rolle erlaubt das Auflisten der Mitglieder und Rollenbindungen einer Ressource.
  • iam.member.get
  • iam.role.get
  • iam.role.list
ProjektIAM Role ReaderDiese Rolle erlaubt das Auflisten der Rollen.
  • iam.role.get
  • iam.role.list

Im Laufe der Entwicklung unseres Zugriffsverwaltungssystems haben wir einige Änderungen an den Berechtigungen vorgenommen. Gelegentlich können Sie im System noch auf einige dieser veralteten Legacy-Berechtigungen stoßen. Sie bleiben vorerst bestehen, um einen sicheren Übergang zu gewährleisten, bis wir sie endgültig entfernen können. Das Folgende ist eine Liste dieser Berechtigungen und ihrer Beschreibungen:

NameBeschreibung
  • organization.memberships.edit
  • folder.memberships.edit
  • project.memberships.edit
Diese Aliase stehen für die Berechtigungen iam.member.add und iam.member.remove.