Auf dieser Seite wird beschrieben, wie Sie Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) zur Verwendung durch Cloud-Clientbibliotheken, Google API-Clientbibliotheken sowie die REST API und die RPC API in verschiedenen Umgebungen bereitstellen. Zur Einrichtung von ADC geben Sie Anmeldedaten für ADC in der Umgebung an, in der Ihr Code ausgeführt wird.
Application Default Credentials (ADC) ist eine Strategie, die von den Google-Authentifizierungsbibliotheken verwendet wird, um Anmeldedaten automatisch basierend auf der Anwendungsumgebung zu finden. Die Authentifizierungsbibliotheken stellen diese Anmeldedaten für Cloud-Clientbibliotheken und Google API-Clientbibliotheken zur Verfügung. Wenn Sie ADC verwenden, kann Ihr Code in einer Entwicklungs- oder Produktionsumgebung ausgeführt werden, ohne dass sich die Authentifizierung Ihrer Anwendung bei Google Cloud-Diensten und APIs ändert.
Informationen dazu, wo ADC nach Anmeldedaten sucht und in welcher Reihenfolge dies geschieht, finden Sie unter Funktionsweise von Standardanmeldedaten für Anwendungen.
Wenn Sie API-Schlüssel verwenden, müssen Sie ADC nicht einrichten. Weitere Informationen finden Sie unter API-Schlüssel verwenden.
Anmeldedaten für ADC bereitstellen
Wählen Sie die Umgebung aus, in der Ihr Code ausgeführt wird:
- Lokale Entwicklungsumgebung
- Cloud Shell oder andere cloudbasierte Entwicklungsumgebungen von Google Cloud
- Compute Engine oder andere Google Cloud-Dienste, die das Anhängen eines Dienstkontos unterstützen
- Google Kubernetes Engine oder GKE Enterprise
- Lokal oder bei einem anderen Cloud-Anbieter
Lokale Entwicklungsumgebung
Sie können entweder Ihre Nutzeranmeldedaten oder die Anmeldedaten für das Dienstkonto in ADC in einer lokalen Entwicklungsumgebung angeben.
Nutzeranmeldedaten
Wenn Ihr Code in einer lokalen Entwicklungsumgebung ausgeführt wird, z. B. auf einer Entwicklungs-Workstation, empfiehlt es sich, die mit Ihrem Nutzerkonto verknüpften Anmeldedaten zu verwenden.
Wenn Sie Nutzeranmeldedaten zum Erstellen einer lokalen ADC-Datei angeben, sollten Sie Folgendes beachten:
Nutzeranmeldedaten können für einige Methoden und APIs wie die Cloud Translation API oder die Cloud Vision API ohne zusätzliche Parameter oder Konfiguration möglicherweise nicht ausgeführt werden. Wenn Sie eine Fehlermeldung erhalten, dass die API nicht im Projekt aktiviert ist oder kein Kontingentprojekt verfügbar ist, lesen Sie die Fehlerbehebung für die ADC-Einrichtung.
Der lokale ADC enthält Ihre Zugriffs- und Aktualisierungstokens. Jeder Nutzer mit Zugriff auf Ihr Dateisystem kann diese Anmeldedaten verwenden. Wenn Sie diese lokalen Anmeldedaten nicht mehr benötigen, können Sie sie mit dem Befehl
gcloud auth application-default revoke
widerrufen.Wenn Ihr Nutzerkonto nicht über die erforderlichen IAM-Rollen (Identity and Access Management) in Ihrem Projekt verfügt, kann Ihr Code auf einige Ressourcen nicht zugreifen. In diesem Fall muss Ihnen jemand die erforderlichen Rollen zuweisen.
Ihre lokale ADC-Datei ist mit Ihrem Nutzerkonto verknüpft, nicht mit der gcloud CLI-Konfiguration. Eine Änderung der Konfiguration in eine andere gcloud CLI wirkt sich nicht auf Ihre lokale ADC-Datei oder die für ADC bereitgestellten Anmeldedaten aus.
Wie Sie Ihre Nutzeranmeldedaten in ADC angeben, hängt davon ab, ob Ihr Nutzerkonto von Google verwaltet wird (also ein Google-Konto ist) oder von einem anderen Identitätsanbieter, und ob es mit der Workforce Identity-Föderation föderiert wird.
Anmeldedaten für Ihr Google-Konto angeben
Verwenden Sie die Google Cloud CLI, um Ihre Nutzeranmeldedaten in ADC für ein Google-Konto bereitzustellen:
Installieren und initialisieren Sie die gcloud CLI.
Achten Sie bei der Initialisierung der gcloud CLI auf ein Google Cloud-Projekt, in dem Sie die Berechtigung für den Zugriff auf die Ressourcen haben, die Ihre Anwendung benötigt.
Erstellen Sie Ihre Datei mit Anmeldedaten:
gcloud auth application-default login
Ein Anmeldebildschirm wird angezeigt. Nach der Anmeldung werden Ihre Anmeldedaten in der lokalen Anmeldedatendatei für ADC gespeichert.
Nutzeranmeldedaten für ein von einem externen IdP verwaltetes Konto bereitstellen
Um Ihre Nutzeranmeldedaten für ein Nutzerkonto bereitzustellen, das von einem externen IdP verwaltet und mit der Workforce Identity-Föderation föderiert ist, benötigen Sie den Namen Ihres Workforce-Pool-Anbieters. Der Administrator sollte Ihnen diese Informationen zur Verfügung stellen können. Der Name des Anbieters des Mitarbeiterpools hat folgendes Format:
locations/global/workforcePools/POOL_ID/provider/PROVIDER_ID
Geben Sie Ihre Nutzeranmeldedaten für ADC für ein föderiertes Nutzerkonto an:
Erstellen Sie die Konfigurationsdatei für die Anmeldung und legen Sie das
auth/login_config_file
-Attribut der gcloud CLI so fest, dass es auf seinen Speicherort verweist. Verwenden Sie dazu den Befehl iam workforce-pools create-login-config:gcloud iam workforce-pools create-login-config PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE --activate
Ersetzen Sie Folgendes:
PROVIDER_ID
: die Anbieter-IDLOGIN_CONFIG_FILE
: ein Pfad zur von Ihnen angegebenen Konfigurationsdatei, z. B.login.json
Die erstellte Datei sieht in etwa so aus:
{ "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/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", }
Melden Sie sich mit der Anmeldedatei in der gcloud CLI an:
gcloud auth login
Initialisieren Sie die gcloud CLI:
gcloud init
Erstellen Sie Ihre lokale ADC-Datei:
gcloud auth application-default login
Weitere Informationen finden Sie unter Workforce Identity-Föderation.
Dienstkonto-Anmeldedaten
Sie können ADC mit Anmeldedaten aus einem Dienstkonto einrichten. Verwenden Sie dazu die Identitätsübernahme des Dienstkontos oder einen Dienstkontoschlüssel.
Identitätsübertragung für ein Dienstkonto
Sie können den Identitätswechsel für ein Dienstkonto verwenden, um eine lokale ADC-Datei (Standardanmeldedaten für Anwendungen) einzurichten. Clientbibliotheken, die den Identitätswechsel unterstützen, können diese Anmeldedaten automatisch verwenden. Lokale ADC-Dateien, die mit Identitätswechsel erstellt wurden, werden in den folgenden Sprachen unterstützt:
- C#
- Go
- Java
- Node.js
- Python
Sie benötigen die IAM-Rolle Dienstkonto-Ersteller (roles/iam.serviceAccountTokenCreator
) für das Dienstkonto, dessen Identität Sie übernehmen. Weitere Informationen finden Sie unter Erforderliche Rollen.
Verwenden Sie die Identität des Dienstkontos, um eine lokale ADC-Datei zu erstellen:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL
Dienstkontoschlüssel
Wenn Sie keine Nutzeranmeldedaten oder die Identität des Dienstkontos für die lokale Entwicklung verwenden können, können Sie einen Dienstkontoschlüssel verwenden.
So erstellen Sie einen Dienstkontoschlüssel und stellen ihn für ADC bereit:
Erstellen Sie ein Dienstkonto mit den Rollen, die Ihre Anwendung benötigt, sowie einen Schlüssel für dieses Dienstkonto. Folgen Sie dazu der Anleitung unter Dienstkontoschlüssel erstellen.
-
Legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen.
Cloudbasierte Entwicklungsumgebung von Google Cloud
Wenn Sie eine cloudbasierte Google Cloud-Entwicklungsumgebung wie Cloud Shell oder Cloud Code verwenden, verwendet das Tool die bei der Anmeldung angegebenen Anmeldedaten und verwaltet die erforderlichen Autorisierungen. In diesen Umgebungen können Sie mit der gcloud CLI keine Anmeldedaten für ADC bereitstellen. Wenn Sie ein anderes Nutzerkonto für ADC bereitstellen oder Anmeldedaten mithilfe eines Dienstkontos bereitstellen müssen, verwenden Sie eine lokale Entwicklungsumgebung oder eine Google Cloud-Computing-Ressource als Entwicklungsumgebung.
Google Cloud-Dienste, die das Anhängen eines Dienstkontos unterstützen
Einige Google Cloud-Dienste wie Compute Engine, App Engine und Cloud Functions unterstützen das Anhängen eines nutzerverwalteten Dienstkontos an einige Ressourcentypen. Im Allgemeinen wird das Anhängen eines Dienstkontos unterstützt, wenn die Ressourcen dieses Dienstes ausgeführt oder Anwendungscode enthalten können. Wenn Sie ein Dienstkonto an eine Ressource anhängen, kann der Code, der auf der Ressource ausgeführt wird, dieses Dienstkonto als Identität verwenden.
Zum Anhängen von Anmeldedaten an ADC für den in Google Cloud ausgeführten Produktionscode sollten Sie das Anhängen eines nutzerverwalteten Dienstkontos bevorzugen.
Informationen zum Ermitteln der Rollen, die Sie für Ihr Dienstkonto bereitstellen müssen, finden Sie unter Vordefinierte Rollen auswählen.
Informationen dazu, welche Ressourcen Sie an ein Dienstkonto anhängen können, und Hilfe beim Anhängen des Dienstkontos an die Ressource finden Sie in der IAM-Dokumentation zum Anhängen eines Dienstkontos.
Richten Sie die Authentifizierung ein:
-
Erstellen Sie das Dienstkonto:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAME
mit einem Namen für das Dienstkonto. -
Um Zugriff auf Ihr Projekt und Ihre Ressourcen zu gewähren, weisen Sie dem Dienstkonto eine Rolle zu:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Dabei gilt:
SERVICE_ACCOUNT_NAME
: der Name des DienstkontosPROJECT_ID
: die Projekt-ID, unter der Sie das Dienstkonto erstellt habenROLE
: die zu gewährende Rolle
- Führen Sie den Befehl wie schon im vorherigen Schritt aus, um dem Dienstkonto eine weitere Rolle zuzuweisen.
-
Gewähren Sie Ihrem Google-Konto eine Rolle, mit der Sie die Rollen des Dienstkontos verwenden und das Dienstkonto an andere Ressourcen anhängen können:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Dabei gilt:
SERVICE_ACCOUNT_NAME
: der Name des DienstkontosPROJECT_ID
: die Projekt-ID, unter der Sie das Dienstkonto erstellt habenUSER_EMAIL
: E-Mail-Adresse Ihres Google-Kontos
GKE oder GKE Enterprise
Die Authentifizierung für containerisierte Anwendungen, die in GKE oder GKE Enterprise ausgeführt werden, wird zwischen lokalen Testumgebungen und Google Cloud-Umgebungen unterschiedlich behandelt.
Containeranwendungen lokal testen
Zum Testen der Containeranwendung auf Ihrer lokalen Workstation können Sie Container so konfigurieren, dass sie sich mit Ihrer lokalen Anmeldedatendatei authentifizieren. Verwenden Sie zum Testen der Container eine lokale Kubernetes-Implementierung wie minikube
und das Add-on gcp-auth
.
Containeranwendungen auf Google Cloud ausführen
Sie richten die Authentifizierung für Google Cloud-Containerumgebungen je nach Kontext unterschiedlich ein:
- Informationen zu GKE Enterprise finden Sie in der Authentifizierungsübersicht und unter Workload Identity verwenden.
- Für GKE lesen Sie Workload Identity für GKE verwenden.
- Informationen zu Cloud Run for Anthos finden Sie unter Workload Identity für Cloud Run for Anthos verwenden.
Lokal oder bei einem anderen Cloud-Anbieter
Wenn Sie Ihre Anwendung außerhalb von Google Cloud ausführen, müssen Sie Anmeldedaten angeben, die von Google Cloud erkannt werden, um Google Cloud-Dienste zu verwenden.
Identitätsföderation von Arbeitslasten
Die bevorzugte Methode zur Authentifizierung bei Google Cloud mit Anmeldedaten eines anderen Identitätsanbieters ist die Verwendung einer Workload Identity-Föderation. Sie erstellen eine Konfigurationsdatei für Anmeldedaten und legen die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS
fest, die auf ihn verweist. Dieser Ansatz ist sicherer als das Erstellen eines Dienstkontoschlüssels.
Informationen zum Einrichten der Workload Identity-Föderation für ADC finden Sie unter Workload Identity-Föderation konfigurieren und Kurzlebige Anmeldedaten für die Identitätsföderation abrufen.
Dienstkontoschlüssel
Wenn Sie keine Workload Identity-Föderation konfigurieren können, müssen Sie ein Dienstkonto erstellen, ihm die von Ihrer Anwendung benötigten IAM-Rollen zuweisen und einen Schlüssel für das Dienstkonto erstellen.
So erstellen Sie einen Dienstkontoschlüssel und stellen ihn für ADC bereit:
Erstellen Sie ein Dienstkonto mit den Rollen, die Ihre Anwendung benötigt, sowie einen Schlüssel für dieses Dienstkonto. Folgen Sie dazu der Anleitung unter Dienstkontoschlüssel erstellen.
Legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen.
Nächste Schritte
- Mehr über die Suche nach Anmeldedaten in ADC erfahren
- Für die Verwendung von Cloud-Clientbibliotheken authentifizieren
- Authentifizierung bei Google ansehen