Konto

Rollenbasierte Zugriffskontrolle

RBAC (Role-Based Access Control) Dokumentation

Übersicht

Das System implementiert ein umfassendes RBAC-Modell zur Verwaltung der Zugriffskontrolle über verschiedene Ressourcen und Aktionen. Es besteht aus Rollen, Richtlinien und Benutzer-Rollen-Zuweisungen.

Kernkomponenten

Ressourcen

Das System definiert die folgenden geschützten Ressourcen:

  • Audit
  • DevPod
  • Image
  • Payment
  • Pubkey
  • Registry
  • Region
  • Resource
  • Serverless
  • Storage
  • Team
  • Role
  • UserRole

Aktionen

Verfügbare Aktionen auf Ressourcen:

  • List (Auflisten)
  • Get (Abrufen)
  • Create (Erstellen)
  • Update (Aktualisieren)
  • Delete (Löschen)

Rollensystem

Eine Rolle ist eine Sammlung von Berechtigungen, die definiert, welche Aktionen ein Benutzer auf bestimmten Ressourcen ausführen kann. Rollen helfen dabei, Zugriffsrechte effizient zu organisieren und zu verwalten, indem verwandte Berechtigungen gruppiert werden.

Vordefinierte Rollen

  1. AccountAdmin

    • Vollzugriff auf Ressourcen auf Kontoebene
    • Kann Team-Mitglieder verwalten
    • Kann Kontoeinstellungen konfigurieren
  2. Developer

    • Kann DevPods verwalten
    • Kann Serverless-Ressourcen verwalten
    • Kann Images verwalten
    • Kann Storage verwalten (nur Erstellen/Lesen)
  3. Auditor

    • Nur-Lese-Zugriff auf Audit-Logs
  4. Finance

    • Vollzugriff auf Payment-Funktionen
  5. Ops

    • Lesezugriff auf DevPods und Serverless
    • Vollzugriff auf Images, Storage, Pubkey und Resources

Richtlinien

Richtlinien sind die grundlegenden Bausteine der Zugriffskontrolle, die spezifische Berechtigungen definieren. Jede Richtlinie repräsentiert eine Regel, die die Berechtigung erteilt, bestimmte Aktionen auf bestimmten Ressourcen auszuführen.

Richtlinienstruktur

  • Resource: Zielressource
  • Action: Erlaubte Aktion

Richtlinienzuweisung

  • Richtlinien werden Rollen über RolePolicy-Zuordnung zugewiesen
  • Mehrere Richtlinien können einer einzelnen Rolle zugewiesen werden
  • Richtlinienzuweisungen sind pro Rolle eindeutig

Benutzerberechtigungskontrolle

Das System implementiert Berechtigungskontrolle durch ein dreistufiges Modell: Benutzer, Rollen und Richtlinien. Rollen fungieren als Brücke zwischen Benutzern und Richtlinien und bieten eine flexible und verwaltbare Möglichkeit zur Kontrolle von Zugriffsrechten.

Kontrollfluss

  1. Benutzerzuweisung

    • Benutzern werden eine oder mehrere Rollen zugewiesen
    • Rollenzuweisungen sind spezifisch für jedes Konto
    • Ein Benutzer kann in verschiedenen Konten unterschiedliche Rollen haben
  2. Rolle als Brücke

    • Rollen dienen als Container für Sammlungen von Richtlinien
    • Jede Rolle definiert eine bestimmte Reihe von Verantwortlichkeiten
    • Rollen machen die Berechtigungsverwaltung wartbarer
  3. Richtliniendurchsetzung

    • Richtlinien definieren die tatsächlichen Berechtigungen
    • Jede Anfrage wird gegen die Richtlinien der Benutzerrollen validiert
    • Zugriff wird nur gewährt, wenn eine übereinstimmende Richtlinie existiert

Autorisierungsprozess

  1. Anfrageverarbeitung

    • Kontoinformationen extrahieren
    • Zielressource und Aktion identifizieren
    • Benutzerrollen und Richtlinien überprüfen
  2. Berechtigungsprüfung

    • Kontospezifische Rollen werden gegen Zielkonto validiert
    • Richtlinienabgleich berücksichtigt sowohl exakte Übereinstimmungen als auch Wildcards
  3. Zugriffskontrolle

    • Zugriff gewährt, wenn eine zugewiesene Rolle eine übereinstimmende Richtlinie hat
    • Abgelehnte Anfragen geben leere Ergebnisse statt Fehler zurück
    • Audit-Protokollierung erfolgt nach RBAC-Validierung

Best Practices

  1. Rollenverwaltung

    • Verwenden Sie vordefinierte Rollen, wenn möglich
    • Erstellen Sie benutzerdefinierte Rollen mit minimal erforderlichen Berechtigungen
    • Überprüfen Sie Rollenzuweisungen regelmäßig
  2. Sicherheitsüberlegungen

    • Validieren Sie immer den Kontokontext
    • Implementieren Sie rollenbasierte UI-Einschränkungen
    • Führen Sie Audit-Logs für Rollenänderungen
  3. Leistung

    • Rollen- und Richtlinienzuweisungen werden zwischengespeichert
    • Batch-Operationen verfügbar für Massenzuweisungen
    • Optimierte Datenbankabfragen für Berechtigungsprüfungen