Aktualisiert am: 21. August 2026

3 Minuten Lesezeit

Credential-Exposition mit Fine-Grained PATs einschränken

Tokens, die nur die Berechtigungen tragen, die sie benötigen, und nichts weiter.

Update: jetzt allgemein verfügbar in GitLab 19.2

Fine-Grained Personal Access Tokens sind bereit für den Produktionseinsatz. Jeder Token lässt sich damit auf genau die Berechtigungen zuschneiden, die eine Aufgabe braucht. Dieses Release bringt vollständige Abdeckung der REST-API und eine erweiterte GraphQL-Abdeckung. Für den Zuschnitt eines neuen Tokens genügt eine Beschreibung des eigenen Workflows, woraufhin GitLab Duo einen passenden Berechtigungssatz vorschlägt. Bestehende PATs funktionieren unverändert weiter. Mehr dazu steht in der Dokumentation.

Personal Access Tokens (PATs) authentifizieren den Großteil der Automatisierung, die in GitLab läuft. Wenn ein Token mit einem breiten Scope wie api oder read_api ausgestellt wird, erstreckt sich der Zugriff auf viele Projekte und Groups. Fine-Grained Permissions für PATs ermöglichen es, einen Token auf genau die Berechtigungen zu beschränken, die eine Aufgabe erfordert, beispielsweise Lesezugriff auf den Code eines einzelnen Projekts statt Lesezugriff auf alle Projekte, die ein Nutzer erreichen kann.

Warum PAT-Berechtigungen eingeschränkt werden sollten

Ein Maintainer in 20 Projekten könnte einen einzigen Token tragen, der Quellcode lesen, Pipelines ändern, aus der Container Registry pullen und CI/CD-Variablen über all diese Projekte hinweg entschlüsseln kann. Der Token ist auf den Nutzenden zugeschnitten, nicht auf eine bestimmte Aufgabe. Ein Leak legt damit jeden Zugriff offen, den der Nutzende hat.

Fine-Grained PATs stellen sicher, dass der Scope der Aufgabe folgt: Ein Nur-Lese-Token, der für ein Projekt ausgestellt wurde, ist ausschließlich für dieses Projekt schreibgeschützt. Bei einem Leak beginnt und endet die Untersuchung und Behebung dort. Fine-Grained PATs ergänzen bestehende Schutzmaßnahmen wie Laufzeitbegrenzungen und automatischen Widerruf, die einschränken, wie lange ein Angreifer einen gestohlenen Token missbrauchen kann.

Was neu ist

Ein Fine-Grained PAT lässt sich entlang zweier Dimensionen definieren:

  • Wo er Zugriff hat: nur persönliche Projekte, alle Projekte und Groups, in denen Mitgliedschaft besteht, oder nur ausgewählte Projekte und Groups.
  • Was er dort darf: ressourcenspezifische Berechtigungen für die Bereiche, die Entwicklungsteams automatisieren (Issues, Merge Requests, Pipelines, Repositories, Container Registry und mehr), mit Create, Read, Update und Delete, die unabhängig für jede Ressource vergeben werden.

Statt eines einzigen PATs, der alles kann, was der Nutzende kann, wird ein PAT pro Aufgabe ausgestellt, der genau den Berechtigungssatz dieser Aufgabe trägt. Eine Pipeline, die Container-Images pusht, erhält keinen api-gescopten Token, sondern einen Token, der auf die Container Registry eines einzelnen Projekts beschränkt ist, mit Create und Read und nichts weiter. Wenn dieser Token geleakt wird, beschränkt sich der Auswirkungsbereich auf eine Registry in einem Projekt, nicht auf den gesamten Zugriffsfußabdruck.

Den Scope eines Fine-Grained PAT definieren: Gruppen oder Projekte auswählen und ressourcenspezifische Berechtigungen vergeben.Den Scope eines Fine-Grained PAT definieren: Gruppen oder Projekte auswählen und ressourcenspezifische Berechtigungen vergeben.

Die Token-Tabelle wurde aktualisiert, um Prüfbarkeit auf einen Blick zu ermöglichen. Jeder erstellte Token, ob grob oder feingranular, zeigt die genauen Scopes und ressourcenspezifischen Berechtigungen, sodass übermäßig privilegierte Tokens bei Reviews leichter erkannt werden.

Aktuelle Abdeckung und Roadmap

Fine-Grained PATs decken die REST-API-Endpunkte vollständig ab und unterstützen eine wachsende Zahl von GraphQL-Endpunkten.

Bestehende PATs funktionieren weiterhin wie gehabt. Traditionelle und Fine-Grained PATs lassen sich parallel erstellen, um das neue Modell zu evaluieren.

Mehr erfahren und Feedback geben

So wird ein Fine-Grained Personal Access Token erstellt:

  1. Zu Benutzereinstellungen → Personal Access Tokens navigieren.
  2. Im Dropdown Token generieren die Option Fine-Grained Token wählen.
  3. Den Scope definieren.

Für administrative Kontrollen und die vollständige Liste unterstützter Ressourcen und Berechtigungen steht die Dokumentation zu Fine-Grained Personal Access Tokens zur Verfügung.

Feedback dazu, wie Fine-Grained Permissions für PATs in der eigenen Umgebung funktionieren und was noch fehlt, um Least-Privilege-Token-Muster vollständig zu übernehmen, ist willkommen. Rückmeldungen bitte in diesem Roadmap-Epic teilen, sie helfen dabei, die nächsten Iterationen zu gestalten.

Feedback erwünscht

Hat dir dieser Blogbeitrag gefallen? Hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab-Community-Forum und lass andere an deinen Eindrücken teilhaben.

Feedback teilen

Beginne noch heute, schneller zu entwickeln

Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.