gcloud CLI autorisieren

Um auf Google Cloud zugreifen zu können, müssen Sie normalerweise die Google Cloud CLI autorisieren. Diese Seite enthält die verfügbaren Autorisierungsoptionen und zeigt, wie Sie die Konten verwalten, die Sie für die Autorisierung verwenden. Wenn Sie eine Compute Engine-Instanz oder Cloud Shell verwenden, müssen Sie die gcloud CLI nicht autorisieren.

Kontotypen

Sie können der gcloud CLI den Zugriff auf Google Cloud entweder über ein Nutzerkonto oder ein Dienstkonto gewähren.

Ein Nutzerkonto ist ein Google Cloud-Konto, mit dem Sie sich bei Ihrer Anwendung authentifizieren können. Für die häufigsten Anwendungsfälle, besonders die interaktive Verwendung der gcloud CLI, sollte ein Nutzerkonto verwendet werden.

Ein Dienstkonto ist ein mit Ihrem Google Cloud-Projekt (und nicht mit einem bestimmten Nutzer) verknüpftes Google-Konto. Sie können das in Cloud Run-Funktionen, App Engine, Compute Engine oder Google Kubernetes Engine integrierte Dienstkonto verwenden. Zum Ausführen von gcloud CLI-Scripts auf mehreren Maschinen wird ein Dienstkonto empfohlen.

Autorisierungstyp auswählen

Sie müssen die Google Cloud CLI autorisieren, Google Cloud-Ressourcen zu verwalten. Sowohl die Google Cloud CLI als auch Google Cloud verwenden OAuth2 zur Authentifizierung und Autorisierung.

Wählen Sie einen der folgenden Autorisierungstypen aus:

Typ Beschreibung
Nutzerkonto Empfohlen, wenn Sie die gcloud CLI über die Befehlszeile verwenden oder Skripts mit der gcloud CLI für die Verwendung auf einem einzelnen Computer schreiben.
Dienstkonto Empfohlen, wenn Sie die gcloud CLI im Rahmen einer Rechnerbereitstellung für die Produktion oder zur Verwendung auf VM-Instanzen von Compute Engine, auf denen alle Nutzer Zugriff auf root haben, installieren und einrichten.

Weitere Informationen zur Authentifizierung und zu Google Cloud finden Sie unter Authentifizierung.

Mit Nutzerkonto autorisieren

In diesem Abschnitt wird beschrieben, wie Sie eine Autorisierung mit einem Nutzerkonto vornehmen.

Mit einem Google-Konto authentifizieren

Sie können die folgenden gcloud CLI-Befehle verwenden, um den Zugriff mit einem Nutzerkonto zu autorisieren:

Befehl Beschreibung
gcloud init Autorisiert den Zugriff und führt andere gängige Einrichtungsschritte aus.
gcloud auth login Autorisiert nur den Zugriff.

Diese Befehle rufen während der Autorisierung Anmeldedaten für das Konto aus Google Cloud ab und speichern sie auf dem lokalen System. Das angegebene Konto wird dann zum aktiven Konto in Ihrer Konfiguration. Die gcloud CLI verwendet die gespeicherten Anmeldedaten, um auf Google Cloud zuzugreifen. Sie können für eine einzelne gcloud-Befehlszeileninstallation beliebig viele Konten mit gespeicherten Anmeldedaten verwalten. Es ist jedoch immer nur ein Konto aktiv.

"gcloud init" ausführen

gcloud init autorisiert den Zugriff und führt andere gängige Einrichtungsschritte aus. Bei gcloud init erfolgt die Autorisierung, bei der das Nutzerkonto authentifiziert und Zugriffsberechtigungen erteilt werden, mit einem Webbrowser.

So führen Sie die Zugriffsautorisierung und andere gängige Einrichtungsschritte aus:

  1. Führen Sie gcloud init aus.

    gcloud init
    

    Wenn kein Webbrowser automatisch geöffnet werden soll, verwenden Sie folgenden Befehl:

    gcloud init --console-only
    

    Das Flag --console-only ist nützlich, wenn Sie den Befehl auf einem Remote-System über ssh ausführen und dort keinen Zugriff auf einen Browser haben. Sie müssen dann die bereitgestellte URL manuell in einem Browser auf Ihrem lokalen System öffnen, um die Autorisierung abzuschließen.

  2. Führen Sie die Schritte für die Autorisierung im Browser aus, um das Konto zu authentifizieren und Zugriffsberechtigungen zu erteilen.

Weitere Informationen zu gcloud init finden Sie unter gcloud CLI initialisieren.

„gcloud auth login“ ausführen

Durch Ausführen von gcloud auth login wird nur das Nutzerkonto autorisiert. Wenn Sie den Zugriff ohne weitere Einrichtungsschritte autorisieren möchten, verwenden Sie eine der folgenden Optionen.

  • Wenn Sie die gcloud CLI auf einem Computer mit einem Browser autorisieren möchten, gehen Sie so vor:

    1. Autorisieren Sie die gcloud CLI:

      gcloud auth login
      
    2. Führen Sie die Schritte für die Autorisierung im Browser aus, um das Konto zu authentifizieren und Zugriffsberechtigungen zu erteilen.

  • Wenn Sie die gcloud CLI auf einem Computer autorisieren möchten, auf dem kein Browser installiert ist, und Sie die gcloud CLI auf einem anderen Computer mit einem Browser installieren können, verwenden Sie das Flag --no-browser.

    1. Autorisieren Sie die gcloud CLI:

      gcloud auth login --no-browser
      
    2. Kopieren Sie den langen Befehl, der mit gcloud auth login --remote-bootstrap=" beginnt.

    3. Fügen Sie diesen Befehl in die Befehlszeile eines anderen vertrauenswürdigen Computers ein und führen Sie ihn aus. Auf diesem Computer müssen sowohl ein Webbrowser als auch die gcloud CLI-Version 372.0 oder höher lokal installiert sein.

    4. Kopieren Sie die lange URL-Ausgabe vom Computer mit dem Webbrowser.

    5. Fügen Sie die lange URL auf dem ersten Computer unter der Aufforderung „Geben Sie die Ausgabe des Befehls oben ein“ ein und drücken Sie die Eingabetaste, um die Autorisierung abzuschließen.

  • Wenn Sie die gcloud CLI auf einem Computer autorisieren möchten, auf dem kein Browser installiert ist, und Sie die gcloud CLI nicht auf einem anderen Computer mit einem Browser installieren können, verwenden Sie das Flag --no-launch-browser. Mit dem Flag --no-launch-browser wird verhindert, dass der Befehl automatisch einen Webbrowser öffnet.

    1. Autorisieren Sie die gcloud CLI:

      gcloud auth login --no-launch-browser
      
    2. Kopieren Sie die lange URL, die mit https://accounts.google.com/o/oauth2/auth... beginnt.

    3. Fügen Sie diese URL in den Browser eines anderen vertrauenswürdigen Computers mit Webbrowser ein.

    4. Kopieren Sie den Autorisierungscode vom Computer mit dem Webbrowser.

    5. Fügen Sie den Autorisierungscode auf dem ersten Computer in die Aufforderung „Bestätigungscode eingeben“ ein und drücken Sie die Eingabetaste, um die Autorisierung abzuschließen.

  • Wenn Sie bereits ein Zugriffstoken haben, können Sie es mit einer der folgenden Methoden an die gcloud CLI übergeben:

    • Speichern Sie das Zugriffstoken in einer Datei und legen Sie den Pfad über das Flag --access-token-file fest.
    • Speichern Sie das Zugriffstoken in einer Datei und legen Sie den Pfad in der Property auth/access_token_file fest.
    • Legen Sie die Umgebungsvariable CLOUDSDK_AUTH_ACCESS_TOKEN auf den Wert des Zugriffstokens fest.

Mit Workforce Identity Federation authentifizieren

In diesem Abschnitt wird beschrieben, wie Sie sich mit der Workforce Identity-Föderation in der gcloud CLI anmelden.

Browserbasierte Anmeldung bei der gcloud CLI

So melden Sie sich mit einem browserbasierten Anmeldevorgang in der gcloud CLI an:

  1. Erstellen Sie eine Konfigurationsdatei für die Anmeldung.

    Mit dem folgenden Befehl erstellen Sie die Konfigurationsdatei für die Anmeldung. Optional können Sie die Datei mit dem Flag --activate als Standarddatei für die gcloud CLI aktivieren.

    gcloud iam workforce-pools create-login-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --output-file=LOGIN_CONFIG_FILE

    Ersetzen Sie Folgendes:

    • WORKFORCE_POOL_ID: die ID des Workforce Identity-Pools
    • PROVIDER_ID: die ID des Anbieters des Mitarbeiteridentitätspools
    • LOGIN_CONFIG_FILE: ein Pfad zur von Ihnen angegebenen Anmeldekonfigurationsdatei, z. B. login.json

    Die Datei enthält die Endpunkte, die von der gcloud CLI verwendet werden, um den browserbasierten Authentifizierungsvorgang zu aktivieren und die Zielgruppe auf den Identitätsanbieter festzulegen, der im Anbieter des Mitarbeiteridentitätspools konfiguriert wurde. Die Datei enthält keine vertraulichen Daten.

    Die Ausgabe sieht dann ungefähr so aus:

    {
      "type": "external_account_authorized_user_login_config",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
      "auth_url": "https://auth.cloud.google/authorize",
      "token_url": "https://sts.googleapis.com/v1/oauthtoken",
      "token_info_url": "https://sts.googleapis.com/v1/introspect",
    }

  2. Melden Sie sich mit der browserbasierten Authentifizierung an.

    Sie haben folgende Möglichkeiten, sich mit einer browserbasierten Anmeldung zu authentifizieren:

    • Wenn Sie das Flag --activate beim Erstellen der Konfigurationsdatei verwendet oder die Konfigurationsdatei mit gcloud config set auth/LOGIN_CONFIG_FILE aktiviert haben, wird sie automatisch von der gcloud CLI verwendet:

      gcloud auth login
    • Mit dem folgenden Befehl melden Sie sich durch Angabe des Speicherorts der Konfigurationsdatei an:

      gcloud auth login --login-config=LOGIN_CONFIG_FILE
    • Wenn Sie den Speicherort der Konfigurationsdatei mit einer Umgebungsvariable angeben möchten, legen Sie für CLOUDSDK_AUTH_LOGIN_CONFIG_FILE den Konfigurationspfad fest.

So beenden Sie die Verwendung der Konfigurationsdatei für die Anwendung:

  • Wenn Sie das Flag --activate beim Erstellen der Konfigurationsdatei verwendet oder die Konfigurationsdatei mit gcloud config set auth/LOGIN_CONFIG_FILE aktiviert haben, müssen Sie den folgenden Befehl ausführen, um die Festlegung aufzuheben:

    gcloud config unset auth/login_config_file
  • Löschen Sie die Umgebungsvariable CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, falls sie festgelegt ist.

Monitorlose Anmeldung bei der gcloud CLI

So melden Sie sich mit einem monitorlosen Ablauf in der gcloud CLI an:

OIDC

  1. Melden Sie einen Nutzer in Ihrer IdP-Anwendung an und rufen Sie das OIDC-Token ab.

    Informationen zum Abrufen des Tokens finden Sie in der OIDC-Dokumentation Ihres Identitätsanbieters.

  2. Speichern Sie das vom IdP zurückgegebene OIDC-Token an einem sicheren Ort auf Ihrem lokalen Computer.

  3. Führen Sie folgenden Befehl aus, um eine Konfigurationsdatei zu generieren:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:id_token" \
        --credential-source-file="PATH_TO_OIDC_ID_TOKEN" \
        --workforce-pool-user-project="WORKFORCE_POOL_USER_PROJECT" \
        --output-file="config.json"
    

Ersetzen Sie Folgendes:

  • WORKFORCE_POOL_ID: die ID des Workforce-Pools
  • PROVIDER_ID: die Anbieter-ID
  • PATH_TO_OIDC_TOKEN: der Pfad zur OIDC-IdP-Anmeldedatendatei
  • WORKFORCE_POOL_USER_PROJECT: die Projektnummer, die dem Nutzerprojekt für Workforce-Pools zugeordnet ist

Das Hauptkonto muss die Berechtigung serviceusage.services.use für dieses Projekt haben.

Durch Ausführen des Befehls wird eine OIDC-IdP-Konfigurationsdatei erstellt, die in etwa so aussieht:

{
  "type": "external_account",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
  "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
  "token_url": "https://sts.googleapis.com/v1/token",
  "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
  "credential_source": {
    "file": "PATH_TO_OIDC_CREDENTIALS_FILE"
  }
}

SAML

  1. Melden Sie einen Nutzer in Ihrer IdP-Anwendung an und rufen Sie die SAML-Assertion ab.

    Informationen zum Abrufen der SAML-Assertion von Ihrem IdP finden Sie in der SAML-Dokumentation Ihres IdP.

  2. Speichern Sie die vom IdP zurückgegebene SAML-Antwort an einem sicheren Ort auf Ihrem lokalen Computer und speichern Sie den Pfad dann und zwar so:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Führen Sie folgenden Befehl aus, um eine Konfigurationsdatei zu generieren:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:saml2" \
        --credential-source-file="SAML_ASSERTION_PATH"  \
        --workforce-pool-user-project="PROJECT_ID"  \
        --output-file="config.json"
    

    Ersetzen Sie Folgendes:

    • WORKFORCE_PROVIDER_ID: die ID des Workforce-Anbieters, die Sie zuvor in dieser Anleitung erstellt haben.
    • WORKFORCE_POOL_ID: die ID des Workforce-pools, die Sie zuvor in dieser Anleitung erstellt haben.
    • SAML_ASSERTION_PATH: der Pfad der SAML-Assertion-Datei.
    • PROJECT_ID: die Projekt-ID

    Die generierte Konfigurationsdatei sieht in etwa so aus:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
      "token_url": "https://sts.googleapis.com/v1/token",
      "credential_source": {
        "file": "SAML_ASSERTION_PATH"
      },
      "workforce_pool_user_project": "PROJECT_ID"
    }
    

Führen Sie den folgenden Befehl aus, um sich mit Token-Austausch in gcloud anzumelden:

gcloud auth login --cred-file="config.json"

gcloud tauscht dann Ihre IdP-Anmeldedaten transparent gegen temporäre Google Cloud-Zugriffstokens aus, sodass Sie andere gcloud-Aufrufe an Google Cloud senden können.

Die Ausgabe sieht in etwa so aus:

Authenticated with external account user credentials for:
[principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].

Führen Sie folgenden Befehl aus, um die Konten mit Anmeldedaten und das aktuell aktive Konto aufzulisten:

gcloud auth list

Mit einem Dienstkonto autorisieren

Mit dem Befehl gcloud auth login können Sie den Zugriff mit einem Dienstkonto autorisieren, indem Sie eine Anmeldedatendatei verwenden, die in Ihrem lokalen Dateisystem gespeichert ist. Diese Anmeldedaten können Nutzeranmeldedaten mit der Berechtigung zur Übernahme der Identität des Dienstkontos, eine Anmeldedatenkonfigurationsdatei für die Workload Identity-Föderation oder ein Dienstkontoschlüssel sein.

Dienstkonto mit Identitätsübernahme für Dienstkonten autorisieren

So autorisieren Sie die gcloud CLI, Anmeldedaten für die Identitätsübernahme des Dienstkontos zu verwenden:

  1. Rufen Sie in der Google Cloud Console die Seite „Dienstkonten“ auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie ein vorhandenes Konto aus oder erstellen Sie ein neues Konto, indem Sie auf Dienstkonto erstellen klicken.

  3. Bitten Sie Ihren Administrator, dem Hauptkonto die IAM-Rolle Dienstkonto-Token-Ersteller (roles/iam.serviceAccountTokenCreator) zu gewähren, damit das Hauptkonto die erforderliche Berechtigung hat, die Identität eines Dienstkontos zu übernehmen.. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Diese vordefinierte Rolle enthält die Berechtigung iam.serviceAccounts.getAccessToken, die erforderlich ist, um die Identität eines Dienstkontos zu übernehmen.

    Ihr Administrator kann dem Hauptkonto möglicherweise auch diese Berechtigung mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erteilen.

  4. Autorisieren Sie die gcloud CLI mit Ihrer Nutzeridentität, indem Sie gcloud auth login ausführen.

  5. Wenn Sie die gcloud CLI so einrichten möchten, dass standardmäßig die Identität und der Zugriff eines Dienstkontos verwendet werden, verwenden Sie den Befehl der gcloud CLI:

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
    
  6. Wenn Sie die Verwendung von Anmeldedaten für die Identitätsübernahme des Dienstkontos mit der gcloud CLI standardmäßig beenden möchten, setzen Sie das Flag mit dem Befehl „gcloud CLI config“ zurück:

    gcloud config unset auth/impersonate_service_account
    

Dienstkonto mithilfe der Identitätsföderation von Arbeitslasten autorisieren

So autorisieren Sie die gcloud CLI mit einem Dienstkonto mit externen Anmeldedaten aus der Workload Identity-Föderation:

  1. Rufen Sie in der Google Cloud Console die Seite „Dienstkonten“ auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie ein vorhandenes Konto aus oder erstellen Sie ein neues Konto, indem Sie auf Dienstkonto erstellen klicken.

  3. Erstellen Sie eine Konfigurationsdatei für Anmeldedaten für die Workload Identity-Föderation. Folgen Sie dazu der Anleitung für Ihren unterstützten Identitätsanbieter.

  4. Führen Sie zum Aktivieren Ihres Dienstkontos gcloud auth login mit dem Flag --cred-file aus:

    gcloud auth login --cred-file=CONFIGURATION_FILE
    

    Ersetzen Sie CONFIGURATION_FILE durch den Pfad zu einer Konfigurationsdatei für Anmeldedaten für die Workload Identity-Föderation.

Dienstkonto mit einem Dienstkontoschlüssel autorisieren

So autorisieren Sie die gcloud CLI mit einem Dienstkonto und einem Dienstkontoschlüssel:

  1. Rufen Sie in der Google Cloud Console die Seite „Dienstkonten“ auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie ein vorhandenes Konto aus oder erstellen Sie ein neues Konto, indem Sie auf Dienstkonto erstellen klicken.

  3. Informationen zum Erstellen von Dienstkontoschlüsseln finden Sie in der IAM-Anleitung unter Dienstkontoschlüssel erstellen.

  4. Führen Sie zum Aktivieren Ihres Dienstkontos gcloud auth login mit dem Flag --cred-file aus:

    gcloud auth login --cred-file=KEY_FILE
    

    Ersetzen Sie KEY_FILE durch den Pfad zu einer Dienstkontoschlüsseldatei.

Konten auflisten

Mit gcloud auth list listen Sie die Konten auf, deren Anmeldedaten im lokalen System gespeichert sind:

gcloud auth list

Die gcloud CLI listet die Konten auf und zeigt an, welches Konto aktiv ist:

Credentialed accounts:
 - user-1@gmail.com (active)
 - user-2@gmail.com

Aktives Konto wechseln

Führen Sie zum Wechseln des aktiven Kontos gcloud config set aus:

gcloud config set account ACCOUNT

Dabei ist [ACCOUNT] die vollständige E-Mail-Adresse des Kontos.

Sie können zum Wechseln des Kontos auch eine separate Konfiguration erstellen, in der das andere Konto angegeben ist, und dann zu dieser Konfiguration wechseln:

gcloud config configurations activate CONFIGURATION

Wenn Sie das von der gcloud CLI verwendete Konto auf Aufrufbasis wechseln möchten, überschreiben Sie das aktive Konto mit dem Flag --account.

Autorisierte Sitzungslänge festlegen

Als Administrator können Sie festlegen, wie lange verschiedene Nutzer auf die gcloud CLI zugreifen können, ohne sich noch einmal authentifizieren zu müssen. So können Sie beispielsweise Nutzer mit höheren Berechtigungen dazu zwingen, sich häufiger als reguläre Nutzer neu zu authentifizieren.

Weitere Informationen finden Sie im Hilfeartikel Sitzungsdauer für Google Cloud-Dienste festlegen.

Anmeldedaten für ein Konto widerrufen

Sie können Anmeldedaten widerrufen, wenn Sie den Zugriff der gcloud CLI für ein bestimmtes Konto nicht zulassen möchten. Für den Wechsel zwischen Konten müssen die Anmeldedaten nicht widerrufen werden.

Führen Sie zum Widerrufen von Anmeldedaten den Befehl gcloud auth revoke aus:

gcloud auth revoke ACCOUNT

Entfernen Sie die gcloud CLI aus der Liste der Anwendungen, die Zugriff auf Ihr Konto haben, um den gesamten Zugriff auf die gcloud CLI für alle Maschinen zu widerrufen.

Mit Anmeldedatendateien arbeiten

Dateien mit Anmeldedaten finden

Mit gcloud info können Sie suchen, in welchem Verzeichnis die Dateien mit den Anmeldedaten gespeichert sind:

gcloud info

Die gcloud CLI gibt Informationen zu Ihrer Installation aus. Dateien mit Anmeldedaten werden im Nutzerkonfigurationsverzeichnis abgelegt:

User Config Directory: [/home/USERNAME/.config/gcloud]

Standardanmeldedaten für Anwendungen einrichten

Die gcloud CLI unterstützt das Verwalten von Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) mit der Befehlsgruppe gcloud auth application-default. Führen Sie gcloud auth application-default login aus, um Nutzeranmeldedaten für ADC verfügbar zu machen:

gcloud auth application-default login

Diese Anmeldedaten werden nicht von der gcloud CLI verwendet. Weitere Möglichkeiten zum Einrichten von ADC finden Sie unter Standardanmeldedaten für Anwendungen einrichten.

unset GOOGLE_APPLICATION_CREDENTIALS
gcloud config unset auth/impersonate_service_account
gcloud auth application-default login

Nächste Schritte