Veröffentlicht am: 25. Februar 2025

11 Minuten Lesezeit

Der ultimative Leitfaden für die Token-Verwaltung mit GitLab

Erfahre Schritt für Schritt, wie du Token identifizierst, verwaltest und schützt, um die Sicherheit in deinem gesamten Software-Entwicklungsprozess zu verbessern.

Stell dir Folgendes vor: Du bist Entwickler(in) in einem aufstrebenden Technologieunternehmen, es ist 2 Uhr morgens und du erhältst einen dringenden Anruf. Eine wichtige Bereitstellungs-Pipeline ist fehlgeschlagen und dein Team versucht, den Grund herauszufinden. Nach stundenlangem Suchen stellst du fest, dass jemand einen persönlichen Zugriffs-Token widerrufen hat, der zu einem bzw. einer Entwickler(in) gehörte, der bzw. die schon seit Wochen nicht mehr für das Unternehmen arbeitet. Dieser Token war an mehrere Automatisierungsprozesse gekoppelt, sodass jetzt dein gesamtes System im Chaos versunken ist. Wie stellst du sicher, dass so etwas nicht nochmals passiert?

40 Stunden weniger Arbeit pro Woche: Cube nutzt GitLab Duo für mehr Effizienz. Codevorschläge, Testgenerierung und KI-Chat verhelfen zu einer besseren Arbeitsweise – schnell, sicher und effizient. Erfahre, wie Cube mit GitLab Duo den KI-Einsatz im SDLC perfektioniert. Erfolgsstory lesen

Folge dieser Anleitung und erfahre Schritt für Schritt, wie du mit GitLab Token identifizieren, verwalten und schützen kannst. Dies ist eine praktische Ergänzung zur umfassenden Token-Übersichtsdokumentation für GitLab-Administrator(inn)en, Entwickler(innen) und Sicherheitsteams, die eine robuste Token-Verwaltung in ihren Projekten benötigen.

In diesem Leitfaden geht es um folgende Themen:

Wie wählst du den richtigen Token für den Job aus?

Mit der Auswahl des richtigen Tokens garantierst du die für deinen Anwendungsfall optimale Sicherheit und Funktionsfähigkeit. Token können zur Authentifizierung von API-Anfragen, zur Automatisierung von CI/CD-Pipelines, zur Integration von externen Tools, zur Verwaltung von Bereitstellungen und Repositories und für vieles mehr verwendet werden.

Leitfaden für die Token-Verwaltung – Flussdiagramm für Token

Der Einfachheit halber zeigt dieses Diagramm einen unkomplizierten Anwendungsfall, bei der nur ein(e) Benutzer(in) die Inhaberschaft hat. Weitere Informationen findest du in unsere Dokumentation zu Benutzerrollen und Berechtigungen in den einzelnen Namensräumen (Benutzer(innen)/Gruppe) in deiner Instanz oder Hauptgruppe. Beispiele für Anwendungsfälle:

  • Persönliche Zugriffs-Token (PAT) können von Entwickler(innen) verwendet werden, wenn für eine(n) Benutzer(in) persönlicher Zugriff und persönliche Berechtigungen nötig sind. In diesem Fall folgen die Anmeldeinformationen dem Status und den Berechtigungen des Benutzers bzw. der Benutzerin, einschließlich der Entfernung des Zugriffs, wenn das Konto den Zugriff auf ein bestimmtes Projekt oder eine bestimmte Gruppe verliert (oder vollständig gesperrt wird).
  • Projekt-/Gruppenzugriffs-Token (PrAT/GrAT) werden empfohlen, wenn der Zugriff auf Ressourcen in einem bestimmten Projekt oder einer bestimmten Gruppe eingeschränkt werden soll. Da diese PrAT/GrAT einem bestimmten Geltungsbereichen zugewiesen wurden, können alle auf die jeweils nötigen Ressourcen zugreifen.

Token-Arten

Unten findest du eine Liste mit GitLab-Token und deren standardmäßigen Präfixen und Anwendungsfällen. Weitere Informationen findest du auf der GitLab-Token-Übersichtsseite.

TokenPräfixBeschreibung
Persönlicher Zugriffs-TokenglpatFür den Zugriff auf benutzerspezifische Daten
OAuth-2.0-TokengloasFür die Integration mit externen Anwendungen über das OAuth2.0-Authentifizierungsprotokoll
Imitations-TokenglpatFür administrative Handlungen im Namen anderer Benutzer(innen)
Projektzugriffs-TokenglpatFür den Zugriff auf Daten eines bestimmten Projekts
Gruppenzugriffs-TokenglpatFür den Zugriff auf Daten einer bestimmten Gruppe
Bereitstellungs-TokengldtZum Klonen, Pushen und Pullen von Container-Registry-Images eines Projekts ohne Benutzer(in) und Passwort
Bereitstellungsschlüsseln.v.Ermöglicht den Lese- oder Schreibzugriff auf deine Repositories
Runner-Authentifizierungs-TokenglrtFür die Authentifizierung von GitLab-Runners
CI/CD-Job-TokenglcbtFür die Automatisierung von CI/CD-Prozessen
Trigger-TokenglpttLöst Pipelines manuell oder programmatisch aus
Feed-TokenglftFür die Authentifizierung des Zugriffs auf Paket-/RSS-Feeds
Token für eingehende MailsglimtFür die Verarbeitung eingehender E-Mails
Token für GitLab Agent for KubernetesglagentFür die Verwaltung von Kubernetes-Clustern über den GitLab Agent
SCIM-TokenglsoatErmöglicht SCIM-Integrationen für die Benutzerbereitstellung
Client-Token für Feature-FlagsglffctFür programmatische Feature-Flags
Webhook-Tokenn.v.Vom bzw. von der Benutzer(in) festgelegter geheimer Token, um Webhook-Payloads zu sichern und zu gewährleisten, dass Anfragen von GitLab stammen

Entdecke deine Token

Credentials Inventory

In GitLab Ultimate können Administrator(inn)en (GitLab Self-Managed) und Eigentümer(innen) von Hauptgruppen eines Unternehmens (GitLab.com ab Version 17.5) die Zugangsdaten in ihrem Namensraum überwachen.

Dieses Inventar verfolgt Token-Details wie:

  • Token-Typ
  • Zugehörige Benutzerkonten
  • Token-Geltungsbereiche sowie Erstellungs- und Ablaufdaten
  • Zuletzt verwendete IP-Adressen des Tokens (ab GitLab 17.10)
  • Token-Filterung basierend auf den oben genannten benutzerdefinierten Parametern
  • Möglichkeit zum Widerrufen und Rotieren dieser Token

Ein gut gepflegtes Credentials Inventory hilft dabei, Token mit zu vielen Berechtigungen zu identifizieren, und gibt Aufschluss über Zugangsdaten, die möglicherweise rotiert werden müssen, um einen sicheren und effizienten Workflow zu gewährleisten.

Credentials Inventory API

Als Ergänzung zur UI entwickeln wir derzeit eine Credentials Inventory API über den neuen Endpunkt /group/:id/manage. Die unter diesem Endpunkt zugänglichen Zugangsdaten sind auf Enterprise-Benutzer(innen) beschränkt und können vom bzw. von der Eigentümer(in) der Hauptgruppe eines Unternehmens abgerufen werden. Ein Beispiel für den zukünftigen API-Aufruf wäre:

      curl --header "PRIVATE-TOKEN: <pat>" "https://verified_domain.com/api/v4/groups/<group_id>/manage/personal_access_tokens"           

    

GitLab-API

Mit der GitLab-API kannst du Token in deinem Unternehmen programmgesteuert auflisten und verwalten. Wichtige authentifizierungsbezogene Endpunkte unterstützen verschiedene Token-Typen), darunter persönliche Token, Gruppen-Token, CI/CD-Token und mehr. Ein Beispiel für die Verwendung eines persönlichen Zugriffs-Tokens zum Auflisten aller sichtbaren Projekte in GitLab für authentifizierte Benutzer(innen) ist:

      curl --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/projects"


    

In diesem Video erfährst du, wie du API-Aufrufe an die GitLab-API sendest.

Finde heraus, wo Token verwendet werden

Kund(inn)en können auf verschiedene Arten herausfinden, wo Token verwendet werden:

  • Unter Benutzerprofil > Zugriffstoken
  • Im Credentials Inventory
  • In Audit-Ereignissen
  • Über die API

Informationen zur Token-Nutzung werden alle 10 Minuten für last_used und einmal pro Minute für last_used_ip aktualisiert.

Die Möglichkeit, IP-Adressen anzuzeigen, wurde in GitLab 17.9 eingeführt und wird durch das Feature-Flag gesteuert. Befolge diese Schritte, um herauszufinden, wann ein Token zuletzt verwendet wurde. Außerdem werden dir seine letzten fünf eindeutigen IP-Adressen angezeigt.

Leitfaden für Token-Verwaltung – Einstellungen für persönliche Zugriffs-Token

Token im GitLab-UI und in der API verwalten

In der folgenden Tabelle findest du Videos, in denen gezeigt wird, wie Token im UI erstellt werden und wie sie über die API genutzt werden können.

TokenGitLab-UIGitLab-API
Persönlicher Zugriffs-Token Dokumentation und VideoDokumentation und Video
Gruppenzugriffs-TokenDokumentation und VideoDokumentation und Video
Projektzugriffs-TokenDokumentation und VideoDokumentation und Video

Rotation der Tokens und Verwaltung von Ablaufdaten

Indem du Token rotierst und strikte Richtlinien für Ablaufdaten einführst, reduzierst du das Komprimittierungsrisiko und stellst die Einhaltung von Sicherheitsstandards sicher. Regelmäßige Rotation und erzwungene Abläufe verhindern, dass veraltete Zugangsdaten zu Sicherheitslücken werden.

Bisher wurden abgelaufene Gruppen- und Projektzugriffs-Token nach Ablauf automatisch gelöscht, was die Überwachung und Sicherheitsüberprüfung schwieriger machte, da keine Aufzeichnungen zu inaktiven Token vorlagen. Um dieses Problem zu beheben, wurde eine neue Funktion eingeführt, um Aufzeichnungen zu inaktiven Gruppen- und Projektzugriffs-Token 30 Tage, nachdem sie inaktiv wurden, im UI aufzubewahren. Diese Verbesserung soll es den Teams ermöglichen, die Verwendung, den Ablauf und den Widerruf von Token zu verfolgen, um die Compliance und Überwachung zu verbessern.

Um die Rotation von Token und die Verwaltung von Ablaufdaten proaktiv zu gestalten, kannst du Folgendes tun:

API für die Rotation von Token

Bis GitLab 17.7 mussten Kund(inn)en Zugriffs-Token programmgesteuert mit der API rotieren. Die entsprechende Funktion ist jetzt im UI verfügbar. Sieh dir das Video in der folgenden Tabelle an oder lies dir die Dokumentation durch.

Codeausschnitte für die Rotation von Token

In der folgenden Tabelle findest du Videos, in denen die Rotation von GitLab-Token erläutert wird.

TokenVoraussetzungenGitLab-UIGitLab-API
Persönliches Zugriffs-TokenGeltungsbereich: APIDokumentation und VideoDokumentation und Video
Gruppenzugriffs-TokenGeltungsbereich: API und Rolle(n): Eigentümer(in)Dokumentation und VideoDokumentation und Video
Projektzugriffs-TokenGeltungsbereich: API und Rolle(n): Eigentümer(in), Betreuer(in)Dokumentation und VideoDokumentation und Video

Best Practices für die Token-Verwaltung

Prinzip des geringsten Privilegs

Mindere Risiken, indem du Berechtigungen für Token wirklich nur für die jeweiligen unbedingt nötigen Aufgaben zuweist. Auf diese Weise kannst du Fehlerquellen in deinen Systemen proaktiv vorhersagen und beheben. Beachte dazu Folgendes:

  • Wähle den richtigen Token für den richtigen Job aus. Infos dazu findest du im Flussdiagramm.
  • Weise beim Erstellen eines Tokens nur die erforderlichen Geltungsbereiche zu. Verwende beispielsweise schreibgeschützte Geltungsbereiche für Token mit Aufgaben für Auditor(innen). Siehe Rollen.
  • Vermeide es, Administratorrechte zu gewähren, wenn sie nicht unbedingt nötig sind.
  • Erzwinge eine instanzweite Standard-Token-Lebensdauer.
  • Überprüfe und auditiere Token-Berechtigungen regelmäßig, um sicherzustellen, dass sie den aktuellen Anforderungen deines Unternehmens entsprechen.
  • Widerrufe Token, sobald die Aufgabe abgeschlossen ist.

Service-Konten

Dienstkonten stellen sicher, dass Token an nicht-menschliche Entitäten gebunden sind. Dadurch werden sie von einzelnen Benutzerkonten getrennt und die Abhängigkeit von bestimmten Benutzer(inne)n wird verringert. Anstatt persönliche Konten zu verwenden, um Token für die Automatisierung zu generieren, solltest du Dienstkonten mit eingeschränktem Geltungsbereich erstellen. Zu den Vorteilen gehören:

  • Verwendung von Dienstkonto-Token in CI/CD-Pipelines, um Störungen durch Änderungen des Benutzerkontos zu vermeiden
  • Programmgesteuerte Automatisierung von Rotationsprozessen, da persönliche Konten nicht betroffen sind
  • Klarere Überwachung und Prüfung der von Dienstkonten durchgeführten Aktionen
  • Dienstkonten ohne Ablaufdatum
  • Verbraucht keinen Lizenzplatz

GitLab plant die Veröffentlichung einer neuen Benutzeroberfläche für Dienstkonten als Gegenstück zur API-basierten Erstellung, wodurch die Verwaltung von Dienstkonten und der damit verbundenen Token vereinfacht werden soll. In der folgenden Demo wird die programmgesteuerte Verwendung von Dienstkonten erläutert.

Sicherheitslücken-Tools

Nutze die integrierten Sicherheitstools von GitLab, um Sicherheitslücken, die durch die Nutzung von Token entstehen, zu identifizieren und zu beheben. Für eine maximale Abdeckung wird empfohlen, alle Tools gemeinsam zu verwenden.

Audit-Protokolle und Überwachung

Pflege den Zustand von Token, indem du regelmäßig Audit-Protokolle und die Token-Nutzung auf Instanz- und/oder Gruppenebene überprüfst.

  • Audit Events: Protokolliere Audit Events in GitLab, um Aktivitäten im Zusammenhang mit Token zu verfolgen, z. B. Erstellung, Verwendung, Löschung und ungewöhnliche API-Aufrufe (nicht zulässige Parameter in Protokollen und konsistente Auslöser des Rate Limiters).
  • IP-Allowlisting: Verhindert, dass böswillige Benutzer(innen) ihre Aktivitäten hinter mehreren IP-Adressen verbergen.
  • Alarme: Richte Alarme für ungewöhnliche Aktivitäten ein (lösen z. B. Paging für Bereitschaftsrotationen aus oder verwende es, um Vorfälle zu erstellen).
  • Credentials Inventory: Erhalte vollständige Kontrolle über alle verfügbaren Zugriffs-Token sowie die Möglichkeit, diese bei Bedarf zu widerrufen.
  • Benachrichtigungen: Bearbeite proaktiv alle Ablaufbenachrichtigungen für Token (Gruppen-, Projekt- und persönliche Token), die du per E-Mail erhältst. Aufgrund der Nachfrage unserer Kund(inn)en wurde diese Funktion kürzlich um 30-Tage- und 60-Tage-Benachrichtigungen erweitert (die Standardeinstellung ist 7 Tage).
  • Webhooks: Zugriffs-Token-Webhooks können für Gruppen und Projekte konfiguriert werden, um Ereignisse sieben Tage vor Ablauf von Token auszulösen. Diese Funktion wurde kürzlich auch um 30-Tage- und 60-Tage-Benachrichtigungen hinter dem Feature-Flag erweitert (standardmäßig deaktiviert).

Was kommt als Nächstes?

Angesichts des großen Token-Katalogs von GitLab gibt es laufende Pläne für eine Konsolidierung mit Schwerpunkt auf der Lebensdauer, detaillierten Geltungsbereichen, konsistenter Verwaltung und Nutzung. Derzeit priorisieren wir hinsichtlich der Token-Funktionen ein umfassendes UI für Dienstkonten, zusätzliche Arten von Zugangsdaten im Credentials Inventory sowie ein verbessertes Auditing für Token und Dienstkonten.

Melde dich für eine kostenlose Testversion von GitLab Ultimate an, um die Token-Verwaltung zu nutzen.

Feedback erwünscht

Dieser Blogbeitrag hat gefallen oder es gibt Fragen oder Feedback? Ein neues Diskussionsthema im GitLab-Community-Forum erstellen und Eindrücke austauschen.

Feedback teilen

Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab

Stelle jetzt bessere Software schneller bereit

Erlebe, was dein Team mit der intelligenten

DevSecOps-Plattform erreichen kann.