Wenn Sie die Identitätsübernahme eines Dienstkontos verwenden, beginnen Sie mit einem authentifizierten Hauptkonto (Ihrem Nutzer- oder Dienstkonto) und fordern kurzlebige Anmeldedaten für ein Dienstkonto an, für das die erforderliche Autorisierung vorliegt. Das authentifizierte Hauptkonto muss die erforderlichen Berechtigungen für die Übernahme der Identität des Dienstkontos haben.
Die Identitätsübernahme des Dienstkontos ist sicherer als die Verwendung eines Dienstkontoschlüssels, da für die Identitätsübernahme des Dienstkontos eine vorherige authentifizierte Identität erforderlich ist und die Anmeldedaten, die mithilfe der Identitätsübernahme erstellt werden, nicht erhalten bleiben. Im Vergleich dazu ist für die Authentifizierung mit einem Dienstkontoschlüssel keine vorherige Authentifizierung erforderlich. Der nichtflüchtige Schlüssel ist bei einer Offenlegung ein hohes Risiko.
Weitere Informationen zu Identitätswechsel für Dienstkonten.
Hinweise
Bevor Sie die Identitätsübernahme des Dienstkontos verwenden, müssen Sie die erforderlichen APIs aktivieren und sicherstellen, dass Sie die erforderlichen Rollen haben.
APIs aktivieren
Um die Identität eines Dienstkontos zu übernehmen, müssen Sie in Ihrem Projekt die Service Account Credentials API aktivieren.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“
(roles/serviceusage.serviceUsageAdmin), die
die Berechtigung serviceusage.services.enable enthält. Informationen zum Zuweisen von
Rollen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen für das Dienstkonto die IAM-Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator) zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Übernehmen der Identität eines Dienstkontos benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die
iam.serviceAccounts.getAccessToken
Berechtigung,
die erforderlich ist, um die Identität eines Dienstkontos zu übernehmen.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie müssen diese Rollen Ihrem Konto zuweisen, auch wenn Sie in einem von Ihnen erstellten Projekt arbeiten.
Weitere Informationen zu den für die Identitätsübertragung erforderlichen Rollen finden Sie unter Rollen für die Dienstkontoauthentifizierung.
Sie können die Identitätsübernahme des Dienstkontos mithilfe der folgenden Methoden verwenden:
- gcloud CLI verwenden
- Standardanmeldedaten für Anwendungen für die Verwendung von Clientbibliotheken einrichten
- Kurzlebige Anmeldedaten generieren und verwalten
gcloud CLI verwenden
Die gcloud CLI bietet eine einfache Möglichkeit, die Identität des Dienstkontos zu verwenden. Diese Methode funktioniert sehr gut, wenn Sie ein Dienstkonto verwenden müssen, um über die gcloud CLI auf Ressourcen oder Dienste zuzugreifen. Google Cloud
Sie können die Identität eines Dienstkontos für einen bestimmten gcloud CLI-Befehl übernehmen oder die gcloud CLI so einrichten, dass die Identitätsübertragung für jeden Befehl automatisch verwendet wird.
Identitätsübernahme für einen bestimmten gcloud CLI-Befehl verwenden
Wenn Sie die Identität für einen bestimmten gcloud CLI-Befehl verwenden möchten, verwenden Sie das Flag --impersonate-service-account. Der folgende Befehl listet beispielsweise Storage-Buckets mit der Identität und dem Zugriff des angegebenen Dienstkontos auf:
gcloud storage buckets list --impersonate-service-account=SERVICE_ACCT_EMAIL
Wenn Sie dieses Flag verwenden, fordert die gcloud CLI kurzlebige Anmeldedaten für das angegebene Dienstkonto an und authentifiziert sie bei der API und autorisiert den Zugriff. Das Hauptkonto, das in der gcloud CLI angemeldet ist (normalerweise Ihr Nutzerkonto) muss die erforderliche Berechtigung für das Dienstkonto haben.
Standardmäßigen Identitätswechsel mit der gcloud CLI verwenden
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
Wenn dieses Konfigurationsattribut festgelegt ist, fordert die gcloud CLI kurzlebige Anmeldedaten für das angegebene Dienstkonto an und autorisiert diesen für die Authentifizierung bei der API und die Autorisierung des Zugriffs auf die Ressource für jeden Befehl. Das Hauptkonto, das in der gcloud CLI angemeldet ist, muss die erforderliche Berechtigung für das Dienstkonto haben.
Standardanmeldedaten für Anwendungen für die Verwendung von Clientbibliotheken einrichten
Sie können die Identitätsübernahme des Dienstkontos verwenden, um eine lokale ADC-Datei (Standardanmeldedaten für Anwendungen) einzurichten. Client Clientbibliotheken, die den Identitätswechsel unterstützen, können diese Anmeldedaten automatisch verwenden. Lokale ADC-Dateien die mithilfe der Identitätsübernahme erstellt wurden, werden in den folgenden Sprachen unterstützt:
- C#
- Go
- Java
- Node.js
- Python
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
Sie können Clientbibliotheken jetzt in den unterstützten Sprachen genauso verwenden wie nach dem Einrichten einer lokalen ADC-Datei mit Nutzeranmeldedaten. Anmeldedaten werden automatisch von den Authentifizierungsbibliotheken gefunden. Weitere Informationen finden Sie unter Für die Verwendung von Clientbibliotheken authentifizieren.
Anmeldedaten aus einer lokalen ADC-Datei, die mithilfe der Identitätsübernahme des Dienstkontos generiert wurden, werden nicht von allen Authentifizierungsbibliotheken unterstützt. Weitere Informationen finden Sie unter Fehler bei lokalen Anmeldedaten aus der Identitätsübernahme des Dienstkontos.
Kurzlebige Anmeldedaten generieren und verwalten
Wenn keine der vorherigen Methoden auf Ihren Anwendungsfall zutrifft, müssen Sie kurzlebige Tokens generieren und verwalten. Wenn Sie beispielsweise eine andere Art von kurzlebigen Anmeldedaten (andere als ein Zugriffstoken) benötigen oder die Identitätsübertragung in einer Produktionsumgebung verwenden müssen, verwenden Sie diese Methode.
Informationen zum Generieren kurzlebiger Tokens finden Sie unter Kurzlebige Anmeldedaten für ein Dienstkonto erstellen.
Nächste Schritte
- Mehr über die Suche nach Anmeldedaten in ADC erfahren
- Authentifizierungsmethoden kennenlernen