Mit rollenbasierter Zugriffskontrolle (RBAC) legst du fest, wer in deiner Organisation und deinen Projekten welche Aktionen ausführen darf, sowohl über die API als auch im Dashboard. Für beide gelten dieselben Berechtigungen: Wer einen Endpunkt aufrufen darf (zum Beispiel /v1/chat/completions), kann auch die entsprechende Dashboard-Seite nutzen. Bei fehlenden Berechtigungen werden die zugehörigen Bedienelemente deaktiviert, etwa die Schaltfläche Hochladen im Playground. Mit RBAC kannst du:
- Nutzende gruppieren und Berechtigungen in großem Umfang zuweisen
- Benutzerdefinierte Rollen mit genau den Berechtigungen erstellen, die du brauchst
- Den Zugriff auf Organisations- oder Projektebene eingrenzen
- Einheitliche Berechtigungen im Dashboard und in der API durchsetzen
Grundlegende Konzepte
- Organisation: Dein Konto auf oberster Ebene. Organisationsrollen können Zugriff auf alle Projekte gewähren.
- Projekt: Ein Workspace für Schlüssel, Dateien und Ressourcen. Projektrollen gewähren nur innerhalb dieses Projekts Zugriff.
- Gruppen: Zusammengefasste Nutzende, denen du gemeinsam Rollen zuweisen kannst. Gruppen lassen sich über SCIM von deinem Identitätsanbieter synchronisieren, damit die Mitgliedschaften automatisch aktuell bleiben.
- Rollen: Bündel von Berechtigungen, etwa für Modellanfragen oder das Schreiben von Dateien. Rollen für die Organisation kannst du unter Organisationseinstellungen erstellen, Rollen für ein bestimmtes Projekt in dessen Projekteinstellungen. Anschließend lassen sich Organisations- oder Projektrollen einzelnen Nutzenden oder Gruppen zuweisen. Nutzende können mehrere Rollen haben. Ihre Zugriffsrechte ergeben sich aus der Vereinigungsmenge dieser Rollen.
- Berechtigungen: Die konkreten Aktionen, die eine Rolle erlaubt, zum Beispiel Anfragen an Modelle senden, Dateien lesen, Dateien schreiben oder Schlüssel verwalten.
Berechtigungen
Die folgende Tabelle zeigt die verfügbaren Berechtigungen, welche vordefinierten Rollen sie enthalten und ob sie für benutzerdefinierte Rollen konfiguriert werden können.
| Bereich | Erlaubte Aktionen | Berechtigungen bei Organisationsinhaberschaft | Berechtigungen für Lesende der Organisation | Berechtigungen bei Projektinhaberschaft | Berechtigungen für Projektmitglieder | Berechtigungen für Betrachtende des Projekts | Für benutzerdefinierte Rollen verfügbar |
|---|---|---|---|---|---|---|---|
| Modelle auflisten | Modelle auflisten, auf die diese Organisation Zugriff hat | Read | Read | Read | Read | Read | ✓ |
| Gruppen | Gruppen anzeigen und verwalten | Read, Write | Read | Read, Write | Read, Write | Read | |
| Rollen | Rollen anzeigen und verwalten | Read, Write | Read | Read, Write | Read, Write | Read | |
| Organisationsverwaltung | Nutzende, Projekte, Einladungen, Admin-API-Schlüssel und Ratenlimits der Organisation verwalten | Read, Write | |||||
| Nutzung | Nutzungsdashboard anzeigen und Nutzungsdaten exportieren | Read | ✓ | ||||
| Externe Schlüssel | Schlüssel für Enterprise Key Management anzeigen und verwalten | Read, Write | |||||
| IP-Zulassungsliste | IP-Zulassungsliste anzeigen und verwalten | Read, Write | |||||
| mTLS | Einstellungen für Mutual TLS anzeigen und verwalten | Read, Write | |||||
| OIDC | OIDC-Konfiguration anzeigen und verwalten | Read, Write | |||||
| Modellfunktionen | Anfragen für Chat Completions, Audio, Embeddings und Bilder senden | Request | Request | Request | Request | ✓ | |
| Assistants | Assistants erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Threads | Threads/Messages/Runs erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Evaluationen | Evaluationen erstellen, abrufen und löschen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Fine-Tuning | Fine-Tuning-Jobs erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Dateien | Dateien erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Vektorspeicher | Vektorspeicher erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | ✓ | |
| Responses API | Antworten erstellen | Read, Write | Read, Write | Read, Write | Read, Write | ✓ | |
| Prompts | Prompts erstellen und abrufen, die als Kontext für die Responses API und die Realtime API dienen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Webhooks | Webhooks in deinem Projekt erstellen und anzeigen | Read, Write | Read | Read, Write | Read, Write | Read | ✓ |
| Datensätze | Datensätze erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Apps | Apps im Dashboard erstellen, verwalten und zum Review einreichen | Read, Write | ✓ | ||||
| Tunnel | Tunnel auf Organisationsebene prüfen, nutzen und verwalten | Read, Use, Manage | ✓ | ||||
| Projekt-API-Schlüssel | Berechtigung zur Verwaltung der eigenen API-Schlüssel | Read, Write | Read, Write | Read, Write | Read, Write | Read | ✓ |
| Projektverwaltung | Projektmitglieder, Dienstkonten, API-Schlüssel und Ratenlimits über die Verwaltungs-API verwalten | Read, Write | Read, Write | ||||
| Stapelverarbeitung | Aufträge zur Stapelverarbeitung erstellen und verwalten | Read, Write | Read, Write | Read, Write | Read, Write | Read | |
| Dienstkonten | Dienstkonten des Projekts anzeigen und verwalten | Read, Write | Read, Write | ||||
| Videos | Videos erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | ||
| Stimmen | Stimmen erstellen und abrufen | Read, Write | Read, Write | Read, Write | Read, Write | Read | |
| Agent Builder | Agenten und Arbeitsabläufe in Agent Builder erstellen und verwalten | Read, Write | Read | Read, Write | Read, Write | Read | ✓ |
Auswirkungen der Berechtigungen für die Stapelverarbeitung
Berechtigungen für die Stapelverarbeitung umfassen die Zugriffsrechte, die zum Vorbereiten von Eingabedateien für die Stapelverarbeitung, zum Ausführen von Anfragen und zum Abrufen von Ergebnissen erforderlich sind. Diese effektiven Zugriffsrechte sind unabhängig davon, welche Endpunkte innerhalb eines Stapels angegeben werden können. Diese Endpunkte sind im Leitfaden zur Batch API aufgeführt.
| Berechtigung für die Stapelverarbeitung | Zusätzlich gewährter Zugriff |
|---|---|
Lesen (api.batch.read) | Dateien lesen (api.files.read) für /v1/files |
Schreiben (api.batch.write) | Stapelverarbeitung: Lesen Modelle auflisten ( api.model.read und model.read) für /v1/modelsDateien lesen und schreiben ( api.files.read und api.files.write) für /v1/filesModellfunktionen aufrufen ( api.model.request und model.request) für /v1/audio, /v1/chat/completions, /v1/embeddings, /v1/images, /v1/moderations, /v1/realtime und /v1/responsesVideos lesen und schreiben ( api.videos.read und api.videos.write) für /v1/videos |
RBAC einrichten
Es kann bis zu 30 Minuten dauern, bis Rollenänderungen und die Gruppensynchronisierung überall wirksam sind.
-
Gruppen erstellen Füge Gruppen für Teams hinzu (z. B. „Data Science“, „Support“). Wenn du einen IdP nutzt, aktiviere die SCIM-Synchronisierung, damit die Gruppenmitgliedschaften aktuell bleiben.
-
Benutzerdefinierte Rollen erstellen Beginne mit den geringstmöglichen Berechtigungen. Zum Beispiel:
- Model Tester: Modelle lesen, Modellfunktionen aufrufen, Evaluationen
- Model Engineer: Modellfunktionen aufrufen, Dateien lesen/schreiben, Fine-Tuning
- App Publisher: Apps lesen, Apps schreiben
-
Rollen zuweisen
- Rollen auf Organisationsebene gelten überall (in allen Projekten innerhalb der Organisation).
- Rollen auf Projektebene gelten nur im jeweiligen Projekt. Du kannst Nutzenden und Gruppen Rollen zuweisen. Nutzende können mehrere Rollen haben; ihre Zugriffsrechte ergeben sich aus der Vereinigungsmenge der Berechtigungen dieser Rollen.
-
Überprüfen Prüfe mit einem Konto ohne Inhaberrolle, ob der Zugriff in API und Dashboard den Erwartungen entspricht. Passe die Rollen an, wenn Nutzende mehr sehen können, als sie benötigen.
Wende das Prinzip der geringsten Rechte an. Beginne mit den Berechtigungen, die für eine Aufgabe mindestens erforderlich sind, und ergänze weitere nur bei Bedarf.
Beispiele für die Zugriffskonfiguration
Kleines Team
- Weise dem Kernteam eine Rolle auf Organisationsebene zu, die Anfragen an Modellfunktionen sowie das Lesen und Schreiben von Dateien erlaubt.
- Erstelle für jede App ein Projekt. Füge externe Mitarbeitende nur diesen Projekten hinzu und weise ihnen Rollen auf Projektebene zu.
Größere Organisation
- Synchronisiere Gruppen aus deinem IdP (z. B. „Recherche“, „Support“, „Finanzen“).
- Erstelle benutzerdefinierte Rollen für die einzelnen Aufgabenbereiche und weise sie auf Organisationsebene zu. Wenn ein Projekt strengere Zugriffskontrollen benötigt, vergib stattdessen ausschließlich projektspezifische Rollen.
Externe Mitarbeitende und Dienstleistungsunternehmen
- Erstelle eine Gruppe „Externe Mitarbeitende“ ohne Rollen auf Organisationsebene.
- Füge sie bestimmten Projekten mit eng begrenzten Projektrollen hinzu (zum Beispiel ohne Schreibzugriff).
So werden die Zugriffsrechte von Nutzenden ermittelt
Im Dashboard kombinieren wir:
- Rollen der Organisation (direkt und über Gruppen zugewiesen)
- Rollen des Projekts (direkt und über Gruppen zugewiesen)
Die wirksamen Berechtigungen ergeben sich aus der Vereinigung der Berechtigungen aller zugewiesenen Rollen.
Bei einer Anfrage mit einem API-Schlüssel innerhalb eines Projekts berücksichtigen wir die dem API-Schlüssel zugewiesenen Berechtigungen und stellen sicher, dass die anfragende Person eine Projektrolle hat, die ihr diese Berechtigungen gewährt. Bei einer Anfrage an /v1/models muss dem API-Schlüssel beispielsweise api.model.read zugewiesen sein, und die anfragende Person muss eine Projektrolle mit api.model.read haben.
Bewährte Methoden
- Bilde deine Organisation in Gruppen ab: Bilde Teams in deinem IdP ab und weise Rollen Gruppen statt Einzelpersonen zu.
- Trenne Zuständigkeiten: Unterscheide zwischen dem Lesen von Modellen, dem Hochladen von Dateien und der Verwaltung von Schlüsseln.
- Nutze Projektgrenzen: Verwende getrennte Projekte für Experimente, Staging und den Produktivbetrieb.
- Überprüfe regelmäßig: Entferne ungenutzte Rollen und Schlüssel und rotiere sensible Schlüssel.
- Teste mit einem Konto ohne Inhaberrolle: Prüfe vor einer breiten Einführung, ob die Zugriffsrechte den Erwartungen entsprechen.