In diesem Dokument wird beschrieben, wie Sie die Workload Identity-Föderation mit Google Cloud -Authentifizierungsbibliotheken (Auth-Bibliotheken) verwenden, um Workloads von Drittanbieter-Identitätsanbietern wie AWS, Microsoft Azure und Anbietern, die OpenID Connect (OIDC) oder SAML 2.0 unterstützen, zu authentifizieren.
Mit der Workload Identity-Föderation können Anwendungen, die außerhalb von Google Cloudausgeführt werden, auf Google Cloud Ressourcen zugreifen, ohne Dienstkontoschlüssel zu verwenden. Die Google-Authentifizierungsbibliotheken ermöglichen dies, indem sie externe Anmeldedaten gegen kurzlebige Google Cloud Zugriffstokens austauschen.
Für die Authentifizierung können Sie externe Anmeldedaten mit den folgenden Methoden abrufen:
- Standardmechanismus für gängige Setups.
- Benutzerdefinierte Anmeldedatenanbieter für komplexe Arbeitsabläufe, für die Sie eigenen Code schreiben müssen.
Hinweise
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Konfigurieren Sie die Workload Identity-Föderation mit Ihrem Identitätsanbieter.
Mit dem Standardmechanismus für Anmeldedaten authentifizieren
Bei häufig unterstützten Drittanbieter-Identitätsanbietern können Sie die integrierten Funktionen derGoogle Cloud auth-Bibliothek verwenden, um Ihre Arbeitslasten zu authentifizieren, indem Sie eine Konfigurationsdatei für Anmeldedaten generieren. Diese Datei enthält die erforderlichen Informationen für die Auth-Bibliotheken, um Identitäten von externen Anbietern zu föderieren.
Die Konfigurationsdatei für Anmeldedaten, die in der Regel über die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS geladen wird, kann die Auth-Bibliotheken anweisen, das Drittanbieter-Subjekt-Token mit einer der folgenden Methoden abzurufen:
- Dateibasiert:Die Bibliothek liest das Subjekt-Token aus einer lokalen Datei. Ein separater Prozess muss dafür sorgen, dass diese Datei ein gültiges, nicht abgelaufenes Token enthält.
- URL-basiert:Die Bibliothek ruft das Subjekt-Token ab, indem sie eine Anfrage an einen angegebenen lokalen URL-Endpunkt sendet.
- Ausführbar:Die Bibliothek führt einen konfigurierten ausführbaren Befehl aus. Die Standardausgabe der ausführbaren Datei sollte das Subjekt-Token enthalten.
Generieren Sie die Konfigurationsdatei für Anmeldedaten für Ihren spezifischen Anbieter:
- AWS
- Azure
OIDC- oder SAML-Identitätsanbieter
Auf dieser Seite finden Sie Anleitungen für Folgendes:
Verwenden Sie die Konfigurationsdatei für die Anmeldedaten zur Authentifizierung.
Damit die Google Cloud Clientbibliotheken Ihre Anmeldedatenkonfigurationsdatei automatisch finden und verwenden können, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALSauf den Pfad der generierten JSON-Datei fest.Exportieren Sie die Umgebungsvariable in Ihrer Shell:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.jsonNachdem Sie die Umgebungsvariable festgelegt haben, übernehmen die Clientbibliotheken den Authentifizierungsablauf.
Das folgende Codebeispiel zeigt, wie Sie einen authentifizierten Aufruf an eine Google Cloud API senden:
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Node.js API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Python API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Java API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Go API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Mit benutzerdefinierten Anmeldedatenanbietern authentifizieren
Wenn Ihre Umgebung die integrierten Funktionen der Google-Auth-Bibliothek nicht unterstützt oder Sie benutzerdefinierte Logik implementieren möchten, um der Google-Auth-Bibliothek Anmeldedaten bereitzustellen, verwenden Sie benutzerdefinierte Anmeldedatenanbieter, um Ihre Arbeitslasten zu authentifizieren.
Über AWS auf Ressourcen zugreifen
Wenn Sie den Authentifizierungsclient initialisieren, stellen Sie eine benutzerdefinierte Implementierung eines Anbieters von Anmeldedaten bereit. Die Clientinstanz überlässt es dem Anbieter, AWS-Sicherheitsanmeldedaten abzurufen, die gegen ein Google Cloud Zugriffstoken ausgetauscht werden können. Der Lieferant muss gültige und nicht abgelaufene Anmeldedaten zurückgeben, wenn der Client ihn aufruft.
Der Authentifizierungsclient speichert die zurückgegebenen AWS-Sicherheitsanmeldedaten oder die Region nicht im Cache. Implementieren Sie daher das Caching im Lieferanten, um redundante Anfragen für dieselben Ressourcen zu vermeiden.
Die folgenden Codebeispiele zeigen, wie Sie mit einem benutzerdefinierten Anbieter von Anmeldedaten den Zugriff auf Google Cloud-Ressourcen von AWS aus einrichten können.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Node.js API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Python API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Java API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Über OIDC und SAML auf Ressourcen zugreifen
Wenn Sie den Authentifizierungsclient initialisieren, geben Sie einen benutzerdefinierten Tokenanbieter an, um ein Subjekt-Token bereitzustellen, das gegen ein Google Cloud Zugriffstoken eingetauscht wird. Der Anbieter muss ein gültiges und nicht abgelaufenes Subjekt-Token zurückgeben, wenn der Client ihn aufruft.
Der Authentifizierungsclient speichert das zurückgegebene Token nicht im Cache. Implementieren Sie daher die Zwischenspeicherung im Anbieter, um redundante Anfragen für dasselbe Betreff-Token zu vermeiden.
Die folgenden Codebeispiele zeigen, wie Sie mit einem benutzerdefinierten Anbieter für Anmeldedaten den Zugriff auf Google Cloud-Ressourcen von Anbietern einrichten können, die OpenID Connect (OIDC) oder SAML 2.0 unterstützen.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Node.js API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Python API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Java API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.