Auf dieser Seite wird erläutert, wie Sie Dienstkontoschlüssel mit der Google Cloud Console, Google Cloud CLI, der Identity and Access Management API oder eine der Google Cloud-Clientbibliotheken erstellen und verwalten.
Hinweis
IAM API aktivieren.
Informationen zu Dienstkonten.
Installieren Sie die gcloud CLI.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle "Zentraler Dienstkontoadministrator" (roles/iam.serviceAccountKeyAdmin
) für das Projekt oder für das Dienstkonto, dessen Schlüssel Sie verwalten möchten, zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Dienstkontoschlüsseln benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Weitere Informationen finden Sie unter Dienstkontenrollen.
Einfache IAM-Rollen enthalten auch Berechtigungen zum Verwalten von Dienstkontoschlüsseln. In einer Produktionsumgebung sollten Sie keine einfachen Rollen zuweisen, Sie können sie aber in einer Entwicklungs- oder Testumgebung gewähren.
Dienstkontoschlüssel erstellen
Sie müssen erst die Identität des Dienstkontos bestätigen, um ein Dienstkonto außerhalb von Google Cloud zu verwenden, zum Beispiel auf anderen Plattformen oder lokal. Paare aus öffentlichen und privaten Schlüsseln bieten dafür eine sichere Möglichkeit. Wenn Sie einen Dienstkontoschlüssel erstellen, wird der öffentliche Teil in Google Cloud gespeichert, während der private Teil nur für Sie verfügbar ist. Weitere Informationen zu öffentlichen/privaten Schlüsselpaaren finden Sie unter Dienstkontoschlüssel.
Sie können einen Dienstkontoschlüssel mithilfe der Google Cloud Console, der gcloud CLI, der Methode serviceAccounts.keys.create()
oder einer der Clientbibliotheken erstellen.
Ein Dienstkonto kann bis zu 10 Schlüssel haben.
Standardmäßig laufen Dienstkontoschlüssel niemals ab. Sie können mit den Ressourceneinstellungen die Dauer angeben, für die ein Dienstkontoschlüssel gültig ist. Weitere Informationen finden Sie unter Ablaufzeit für von Nutzern verwaltete Schlüssel angeben.
In den folgenden Beispielen ist SA_NAME
der Name Ihres Dienstkontos und PROJECT_ID
die ID Ihres Google Cloud-Projekts. Sie können den String SA_NAME@PROJECT_ID.iam.gserviceaccount.com
auf der Seite Dienstkonten in der Google Cloud Console abrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Dienstkontos, für das Sie einen Schlüssel erstellen möchten.
Klicken Sie auf den Tab Schlüssel.
Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und wählen Sie Neuen Schlüssel erstellen aus.
Wählen Sie als Schlüsseltyp JSON aus und klicken Sie dann auf Erstellen.
Wenn Sie auf Erstellen klicken, wird eine Dienstkontoschlüsseldatei heruntergeladen. Nachdem Sie die Schlüsseldatei heruntergeladen haben, können Sie sie nicht noch einmal herunterladen.
Der heruntergeladene Schlüssel hat das folgende Format, wobei PRIVATE_KEY
der private Teil des öffentlichen/privaten Schlüsselpaars ist:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Bewahren Sie die Schlüsseldatei sicher auf, da sie zur Authentifizierung als Ihr Dienstkonto verwendet werden kann. Sie können diese Datei beliebig verschieben und umbenennen.
Sie können Dienstkonto-Schlüsseldateien verwenden, um eine Anwendung als Dienstkonto zu authentifizieren.
gcloud
Mit dem Befehl gcloud iam service-accounts keys create
können Sie Dienstkontoschlüssel erstellen.
Ersetzen Sie die folgenden Werte:
KEY_FILE
: Der Pfad zu einer neuen Ausgabedatei für den privaten Schlüssel, z. B.~/sa-private-key.json
.SA_NAME
: Der Name des Dienstkontos, für das ein Schlüssel erstellt werden soll.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
Die Dienstkontoschlüsseldatei wird jetzt auf Ihren Computer heruntergeladen. Nachdem Sie die Schlüsseldatei heruntergeladen haben, können Sie sie nicht noch einmal herunterladen.
Der heruntergeladene Schlüssel hat das folgende Format, wobei PRIVATE_KEY
der private Teil des öffentlichen/privaten Schlüsselpaars ist:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Bewahren Sie die Schlüsseldatei sicher auf, da sie zur Authentifizierung als Ihr Dienstkonto verwendet werden kann. Sie können diese Datei beliebig verschieben und umbenennen.
Sie können Dienstkonto-Schlüsseldateien verwenden, um eine Anwendung als Dienstkonto zu authentifizieren.
REST
Die Methode projects.serviceAccounts.keys.create
ermöglicht es, einen Schlüssel für ein Dienstkonto zu erstellen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: Den Namen des Dienstkontos, für das Sie einen Schlüssel erstellen möchten.KEY_ALGORITHM
: Optional. Den Schlüsselalgorithmus, der für den Schlüssel verwendet werden soll. Der Standardwert ist ein 2.048-Bit-RSA-Schlüssel. Dieser Wert kann geändert werden. Eine Liste aller anwendbaren Werte finden Sie in der Referenz zuServiceAccountKeyAlgorithm
.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
JSON-Text anfordern:
{ "keyAlgorithm": "KEY_ALGORITHM" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält einen Schlüssel für Ihr Dienstkonto. Der zurückgegebene Schlüssel hat das folgende Format, wobei ENCODED_PRIVATE_KEY
der private Teil des öffentlichen/privaten Schlüsselpaars in base64 codiert ist.
{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
Zum Erstellen einer Schlüsseldatei, die Sie zur Authentifizierung als Dienstkonto verwenden können, decodieren Sie die privaten Schlüsseldaten und speichern Sie sie in einer Datei:
Linux
Führen Sie dazu diesen Befehl aus:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Ersetzen Sie PATH
durch den Pfad der Datei, in der Sie den Schlüssel speichern möchten. Verwenden Sie die Dateiendung .json
.
macOS
Führen Sie dazu diesen Befehl aus:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Ersetzen Sie PATH
durch den Pfad der Datei, in der Sie den Schlüssel speichern möchten. Verwenden Sie die Dateiendung .json
.
PowerShell
Speichern Sie die codierten privaten Schlüsseldaten (
ENCODED_PRIVATE_KEY
) in einer Datei.Decodieren Sie die Datei mit
certutil
:certutil -decode ENCODED_FILE DECODED_FILE
Ersetzen Sie die folgenden Werte:
ENCODED_FILE
: Der Pfad zur Datei mit den codierten privaten Schlüsseldaten.DECODED_FILE
: Der Pfad der Datei, in der Sie den Schlüssel speichern möchten. Verwenden Sie die Dateiendung.json
.
Bewahren Sie die Schlüsseldaten sicher auf, da sie zur Authentifizierung als Ihr Dienstkonto verwendet werden können.
Sie können Dienstkonto-Schlüsseldateien verwenden, um eine Anwendung als Dienstkonto zu authentifizieren.
C++
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C++ API.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go API.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Dienstkontoschlüssel auflisten
Sie können die Dienstkontoschlüssel für ein Dienstkonto in der Google Cloud Console, mit der gcloud CLI, der Methode serviceAccount.keys.list()
oder einer der Clientbibliotheken auflisten.
Die Methode serviceAccount.keys.list()
wird in der Regel verwendet, um Dienstkonten und Schlüssel zu überprüfen oder benutzerdefinierte Tools für die Verwaltung von Dienstkonten zu erstellen.
Um herauszufinden, zu welchem Projekt Ihr Schlüssel gehört, können Sie den Schlüssel als JSON-Datei herunterladen und sich anschließend die Datei ansehen.
Eventuell werden Schlüssel aufgelistet, die Sie nicht erstellt haben. Diese Schlüssel werden von Google erstellt und von der Service Account Credentials API verwendet. Weitere Informationen finden Sie unter Von Google verwaltete Schlüsselpaare.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Dienstkontos, dessen Schlüssel Sie auflisten möchten.
Klicken Sie auf Schlüssel. In der Google Cloud Console wird eine Liste der Schlüssel für das Dienstkonto angezeigt.
gcloud
Mit gcloud iam service-accounts keys list
können Sie Dienstkontoschlüssel löschen.
Ersetzen Sie die folgenden Werte:
SA_NAME
: Der Name des Dienstkontos, für das Schlüssel aufgelistet werden sollen.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
KEY_ID | CREATED_AT | EXPIRES_AT | DEAKTIVIERT |
8e6e3936d7024646f8ceb39792006c07f4a9760c | 2021-01-01T21:01:42Z | 9999-12-31T23:59:59Z | |
937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Wahr |
REST
Mit der Methode projects.serviceAccounts.keys.list
können Sie alle Dienstkontoschlüssel für ein Dienstkonto auflisten.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: Den Namen des Dienstkontos, dessen Schlüssel Sie auflisten möchten.KEY_TYPES
: Optional. Eine durch Kommas getrennte Liste der Schlüsseltypen, die Sie in die Antwort aufnehmen möchten. Der Schlüsseltyp gibt an, ob ein Schlüssel vom Nutzer (USER_MANAGED
) oder vom System (SYSTEM_MANAGED
) verwaltet wird. Wenn Sie das Feld leer lassen, werden alle Schlüssel zurückgegeben.
HTTP-Methode und URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "keys": [ { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c", "validAfterTime": "2020-03-04T17:39:47Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8", "validAfterTime": "2020-03-31T23:50:09Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e", "validAfterTime": "2020-05-17T18:58:13Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED", "disabled": true } ] }
C++
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C++ API.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go API.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Schlüssel für Dienstkonto abrufen
Mit der gcloud CLI oder der REST API können Sie die Daten des öffentlichen Schlüssels für einen Dienstkontoschlüssel abrufen. Außerdem können Sie die Google Cloud Console, die gcloud CLI oder die REST API dazu verwenden, Metadaten für den Schlüssel abzurufen, z. B. den Algorithmus, den der Schlüssel verwendet, und zu prüfen, ob der Schlüssel von Ihnen oder von Google verwaltet wird.
Console
So rufen Sie die Daten des öffentlichen Schlüssels für einen Dienstkontoschlüssel ab:
Verwenden Sie die gcloud CLI oder die REST API. Dieses Feature ist in der Google Cloud Console nicht verfügbar.
So rufen Sie Metadaten für einen Dienstkontoschlüssel ab:
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Dienstkontos, dessen Schlüssel Sie auflisten möchten.
Klicken Sie auf Schlüssel. Die Google Cloud Console zeigt eine Liste der Schlüssel für das Dienstkonto an, einschließlich der Metadaten für die einzelnen Schlüssel.
gcloud
So rufen Sie die Daten des öffentlichen Schlüssels für einen Dienstkontoschlüssel ab:
Führen Sie den Befehl gcloud beta iam service-accounts keys get-public-key
aus:
gcloud beta iam service-accounts keys get-public-key KEY_ID \ --iam-account=SA_NAME --output-file=FILENAME
Geben Sie folgende Werte an:
KEY_ID
: Die ID des öffentlichen Schlüssels, den Sie abrufen möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den abzurufenden Schlüssel und kopieren Sie seine ID, um die ID des Schlüssels zu ermitteln.SA_NAME
: Der Name des Dienstkontos, dessen öffentlichen Schlüssel Sie abrufen möchten.FILENAME
: Die Datei, in der die Daten des öffentlichen Schlüssels gespeichert werden.
Standardmäßig werden die Daten des öffentlichen Schlüssels im X.509-PEM-Format gespeichert. Führen Sie den Befehl mit dem zusätzlichen Flag --type=raw
aus, um den unbearbeiteten öffentlichen Schlüssel abzurufen.
Mit folgendem Befehl werden beispielsweise die Daten des öffentlichen Schlüssels für den Schlüssel c97cc34494c07c9b483701f28368f20145b9ef97
abgerufen , der zum Dienstkonto my-service-account@my-project.iam.gserviceaccount.com
gehört. Dann werden die Daten des öffentlichen Schlüssels in der Datei public_key.pem
gespeichert:
gcloud beta iam service-accounts keys get-public-key \
c97cc34494c07c9b483701f28368f20145b9ef97 \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--output-file=public_key.pem
So rufen Sie Metadaten für einen Dienstkontoschlüssel ab:
Führen Sie den Befehl gcloud iam service-accounts keys list
aus:
gcloud iam service-accounts keys list --iam-account=SA_NAME \ --filter="name~KEY_ID" --format=json
Geben Sie folgende Werte an:
SA_NAME
: Den Namen des Dienstkontos, für das Sie Schlüsselmetadaten benötigen.KEY_ID
: Die ID des Schlüssels, für den Sie Metadaten benötigen.
Der folgende Befehl ruft beispielsweise Metadaten für den Schlüssel c97cc34494c07c9b483701f28368f20145b9ef97
ab, der zum Dienstkonto my-service-account@my-project.iam.gserviceaccount.com
gehört:
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
REST
Die projects.serviceAccounts.keys.get
-Methode gibt Informationen zu einem öffentlichen Schlüssel für ein Dienstkonto zurück.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: Der Name des Dienstkontos, dessen öffentlichen Schlüssel Sie abrufen möchten.-
KEY_ID
: Die ID des öffentlichen Schlüssels, den Sie abrufen möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den abzurufenden Schlüssel und kopieren Sie seine ID am Ende von Feldname
, um die ID des Schlüssels zu finden. Die ID des Schlüssels ist alles, was aufkeys/
folgt. KEY_TYPE
: Das Format, in dem der öffentliche Schlüssel zurückgegeben werden soll. Verwenden SieTYPE_X509_PEM_FILE
für das X.509-PEM-Format oderTYPE_RAW_PUBLIC_KEY
für den unbearbeiteten öffentlichen Schlüssel. Wenn Sie diesen Abfrageparameter weglassen, gibt die Methode Metadaten für den Schlüssel zurück, jedoch nicht die Daten des öffentlichen Schlüssels.
HTTP-Methode und URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID?publicKeyType=KEY_TYPE
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/f4a83933ac07cf52bb74e0e66d99662a09f51a36", "validAfterTime": "2021-12-10T17:32:06Z", "validBeforeTime": "9999-12-31T23:59:59Z", "publicKeyData": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJT2lCdm9hR09nV0F3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXhNVk1UQXhNVGsxTlRFMk5UWXlPRGszTmpFek1qQXpNQ0FYRFRJeE1USXhNREUzTXpJd05sb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFERXhVeE1ERXhPVFUxTVRZMU5qSTRPVGMyTVRNeU1ETXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQzdzeDBFcXVUMGNwSXhlczl1SW0yRy9DS3EKdnc4YTl2a2JkaWZZbDZHSDh1ZUxEWDhGNHVUeEVQMkNzU3JLTHZtOFo2My9IVUxnWjBtQXByb0JlM08vaVR1ZwpmYVZ0NVNtakhvWm9YQ1lpbjR0MS93SkpvdDhrRFdPeDZhOEdieUdqZ215ak8yYk1XdEtaQ2dqeGZ3cUV0MmN3CklnajA5VzJKYTlHTWRsdVA0VGVubTRKSkJoaFpFbTJ1bVAwYVZZdkRnUWF5d0RCYnJuNG8yY0EzSWplRDZGM1gKK0VHRDNKU0s4VW02Sk5sM21adGp6VWNZSHBrYkF0U1A2ZDI5d1RmZkdIRFY0THJRWlM3bG15d3hsb3p5WnpaawpCOFpHckMzSkF1MVNVRTdQOTN6bWtFb1B6MlRUNWhaYXZMWFQ5TGM2SExiRklRVHFnVEJVWHlNMkpIcGZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQkhPNXlpUDY3NkE4UEN2RjdRSzdFMApYZVljbzdsSStFZkowaGJrWVlmdUtnSENPcXcvd3FBbCtOSithanljT2FPWDFPMlRZN3ZOc05pR2t3eWc2QXdqCklhL1NHVjd3NkxpS2JldFRuSVp4UlhRY25lcnVvZEwycUR5eWphMDJJSXJVTmVKY1o0MVJBNXRTL3NkcTFGNm4KM0NjSXFoZTI1OTA4TUNna3cwaFB1K0VLbFF6R1B5T3pVRHBLdXg0cnRBaHJTYTBUVW1wbEMxdTJnUk1YRkF6aApWUjU0V2dNa2tabURyalBNeWdBS3JmNkd0bHo2VHRTYTVLb1BWdGpsWExUQkxaSnlhdk4zc1F2dFlBK1NFQWpWCnA1N1ZabFBYZmR0dWN4ekJaOC9zS25SOHNyYU5hVWFjamg1NEE1Nm1URTE3b0IyUWkrTHBJUTYvNnVqVnNXaUYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }
Öffentlichen Schlüssel für ein Dienstkonto hochladen
Sie können den öffentlichen Schlüsselteil eines nutzerverwalteten Schlüsselpaars hochladen, um ihn mit einem Dienstkonto zu verknüpfen. Nachdem Sie den öffentlichen Schlüssel hochgeladen haben, können Sie den privaten Schlüssel aus dem Schlüsselpaar als Dienstkontoschlüssel verwenden.
Der hochgeladene Schlüssel muss ein öffentlicher RSA-Schlüssel sein, der in ein X.509 v3-Zertifikat eingebunden und base64-codiert ist. Sie können mit Tools wie OpenSSL einen Schlüssel und ein Zertifikat in diesem Format generieren.
Mit dem folgenden Befehl wird beispielsweise ein 2.048-Bit-RSA-Schlüsselpaar generiert und der öffentliche Schlüssel in ein selbst signiertes Zertifikat eingebunden, das 365 Tage gültig ist:
openssl req -x509 -nodes -newkey rsa:2048 -days 365 \
-keyout /path/to/private_key.pem \
-out /path/to/public_key.pem \
-subj "/CN=unused"
Anschließend können Sie die Datei public_key.pem
als öffentlichen Schlüssel für ein Dienstkonto hochladen.
Informationen zum Deaktivieren der Funktion zum Hochladen von Schlüsseln für Ihr Projekt finden Sie unter Dienstkontoschlüssel-Upload einschränken.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Dienstkontos, für das Sie einen Schlüssel hochladen möchten.
Klicken Sie auf den Tab Schlüssel.
Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und wählen Sie dann Vorhandenen Schlüssel hochladen aus.
Klicken Sie auf Durchsuchen und wählen Sie die Datei mit dem öffentlichen Schlüssel aus. Alternativ können Sie den Inhalt Ihrer öffentlichen Schlüsseldatei kopieren und in das Feld Vorhandenen Schlüssel einfügen einfügen.
Klicken Sie auf Hochladen.
gcloud
Mit dem Befehl gcloud iam service-accounts keys upload
können Sie einen öffentlichen Schlüssel zum Signieren von Dienstkontoschlüsseln hochladen.
Ersetzen Sie die folgenden Werte:
KEY_FILE
: der Pfad zur Datei mit den hochzuladenden Daten, z. B../public_key.pem
.SA_NAME
: Der Name des Dienstkontos, für das ein Schlüssel hochgeladen werden soll.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.
gcloud iam service-accounts keys upload KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Die Ausgabe enthält eine eindeutige Kennzeichnung für den hochgeladenen Schlüssel:
Name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0
Um festzustellen, ob der vorherige Befehl erfolgreich ausgeführt wurde, geben Sie den Befehl gcloud iam service-accounts keys list
ein:
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Die Ausgabe enthält die gleiche eindeutige Kennzeichnung, die nach dem Erstellen des Schlüssels zurückgegeben wurde:
KEY_ID | CREATED_AT | EXPIRES_AT | DEAKTIVIERT |
c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0 | 2019-06-26T21:01:42Z | 9999-12-31T23:59:59Z |
REST
Mit der Methode projects.serviceAccounts.keys.upload
können Sie den öffentlichen Schlüssel aus einem vom Nutzer verwalteten Schlüsselpaar hochladen und ihn dem Dienstkonto hinzufügen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: Den Namen des Dienstkontos, mit dem der Schlüssel verknüpft werden soll.PUBLIC_KEY_DATA
: Die Daten des öffentlichen Schlüssels für das Schlüsselpaar. Dieser Schlüssel muss ein öffentlicher RSA-Schlüssel sein, der in ein X.509 v3-Zertifikat eingebunden ist. Codieren Sie die Daten des öffentlichen Schlüssels mit base64, einschließlich der ersten Zeile,-----BEGIN CERTIFICATE-----
, und der letzten Zeile,-----END CERTIFICATE-----
.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys:upload
JSON-Text anfordern:
{ "publicKeyData": "PUBLIC_KEY_DATA" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0", "validAfterTime": "2020-05-17T19:31:19Z", "validBeforeTime": "2021-05-17T19:31:19Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "USER_PROVIDED", "keyType": "USER_MANAGED" }
Dienstkontoschlüssel deaktivieren
Wenn Sie einen Dienstkontoschlüssel deaktivieren, können Sie den Schlüssel nicht für die Authentifizierung bei Google APIs nutzen. Sie können jederzeit deaktivierte Schlüssel aktivieren.
Bevor Sie einen Dienstkontoschlüssel löschen, sollten Sie den Schlüssel deaktivieren und warten, bis Sie sicher sind, dass der Schlüssel nicht mehr benötigt wird. Anschließend können Sie den Schlüssel löschen.
Sie können sich deaktivierte Schlüssel in der Google Cloud Console anzeigen lassen, sie aber nicht mit der Google Cloud Console deaktivieren. Verwenden Sie stattdessen die gcloud CLI oder die REST API.
gcloud
Deaktivieren Sie mit dem Befehl gcloud iam service-accounts keys disable
einen Dienstkontoschlüssel.
Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des zu deaktivierenden Schlüssels. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu deaktivierenden Schlüssel und kopieren Sie seine ID, um die ID des Schlüssels zu ermitteln.SA_NAME
: Der Name des Dienstkontos, zu dem der Schlüssel gehört.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.
gcloud iam service-accounts keys disable KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
Disabled key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
REST
Mit der projects.serviceAccounts.keys.disable
-Methode wird ein Dienstkontoschlüssel deaktiviert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: den Namen des Dienstkontos, dessen Schlüssel Sie deaktivieren möchten.KEY_ID
: Die ID des Schlüssels, den Sie deaktivieren möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu deaktivierenden Schlüssel und kopieren Sie seine ID am Ende von Feldname
, um die ID des Schlüssels zu finden. Die ID des Schlüssels ist alles, was aufkeys/
folgt.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:disable
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ }
Dienstkontoschlüssel aktivieren
Nachdem Sie einen Dienstkontoschlüssel deaktiviert haben, können Sie ihn jederzeit wieder aktivieren und dann für die Authentifizierung bei Google APIs verwenden.
Sie können die Google Cloud Console nicht verwenden, um Dienstkontoschlüssel zu aktivieren. Verwenden Sie stattdessen die gcloud CLI oder die REST API.
gcloud
Führen Sie den Befehl gcloud iam service-accounts keys enable
aus, um einen Dienstkontoschlüssel zu aktivieren.
Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des zu aktivierenden Schlüssels. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den abzurufenden Schlüssel und kopieren Sie seine ID, um die ID des Schlüssels zu ermitteln.SA_NAME
: Der Name des Dienstkontos, zu dem der Schlüssel gehört.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.
gcloud iam service-accounts keys enable KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
Enabled key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
REST
Die projects.serviceAccounts.keys.enable
-Methode aktiviert einen Dienstkontoschlüssel.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: den Namen des Dienstkontos, dessen Schlüssel Sie aktivieren möchten.-
KEY_ID
: Die ID des Schlüssels, den Sie aktivieren möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu aktivierenden Schlüssel und kopieren Sie seine ID am Ende von Feldname
, um die ID des Schlüssels zu finden. Die ID des Schlüssels ist alles, was aufkeys/
folgt.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:enable
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ }
Dienstkontoschlüssel löschen
Wenn Sie einen Dienstkontoschlüssel endgültig löschen, können Sie den Schlüssel nicht mehr für die Authentifizierung bei Google APIs verwenden.
Ein gelöschter Schlüssel kann nicht wiederhergestellt werden. Bevor Sie einen Dienstkontoschlüssel löschen, sollten Sie den Schlüssel deaktivieren und warten, bis Sie sicher sind, dass der Schlüssel nicht mehr benötigt wird. Anschließend können Sie den Schlüssel löschen.
Als Best Practice sollten Sie Ihre Dienstkontoschlüssel regelmäßig rotieren. So rotieren Sie einen Schlüssel:
- Erstellen Sie einen neuen Schlüssel.
- Aktualisieren Sie Ihre Anwendungen, um den neuen Schlüssel zu verwenden.
- Deaktivieren Sie den alten Schlüssel.
- Warten Sie lange genug, um zu bestätigen, dass der alte Schlüssel nicht mehr verwendet wird.
- Löschen Sie den alten Schlüssel.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Dienstkontos, dessen Schlüssel Sie löschen möchten.
Klicken Sie auf den Tab Schlüssel.
Klicken Sie in der Liste der Schlüssel bei jedem Schlüssel, den Sie löschen möchten, auf Löschen
.
gcloud
Mit dem Befehl gcloud iam service-accounts keys delete
können Sie Dienstkontoschlüssel löschen.
Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des zu löschenden Schlüssels. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu löschenden Schlüssel und kopieren Sie seine ID, um die ID des Schlüssels zu ermitteln.SA_NAME
: Der Name des Dienstkontos, zu dem der Schlüssel gehört.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
REST
Mit der Methode projects.serviceAccounts.keys.delete
können Sie Dienstkontoschlüssel löschen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: Den Namen des Dienstkontos, dessen Schlüssel Sie löschen möchten.KEY_ID
: Die ID des Schlüssels, den Sie löschen möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu löschenden Schlüssel und kopieren Sie seine ID am Ende von Feldname
, um die ID des Schlüssels zu finden. Die ID des Schlüssels ist alles, was aufkeys/
folgt.
HTTP-Methode und URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ }
C++
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C++ API.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go API.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Nächste Schritte
- Dienstkonten mithilfe von Dienstkontoschlüsseln authentifizieren
- Mehr über die Best Practices für die Verwaltung von Dienstkontoschlüsseln.
Jetzt testen
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Jetzt kostenlos starten