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 löschen.
Hinweis
IAM API aktivieren.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Service Account Key Admin (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 Erstellen und Löschen von Dienstkontoschlüsseln benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
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 eine Einschränkung für die Organisationsrichtlinie verwenden, um die Dauer anzugeben, für die ein Dienstkontoschlüssel gültig ist. Weitere Informationen finden Sie unter Ablaufzeiten für von Nutzern verwaltete Schlüssel.
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:
Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt.
- 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 IAM-Referenzdokumentation zur C++ 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.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C# 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.
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.
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.
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:
Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt.
- Wählen Sie ein Projekt aus.
- Klicken Sie auf der Seite Dienstkonten 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 IAM-Referenzdokumentation zur C++ 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.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C# 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.
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.
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.
Nächste Schritte
- Dienstkontoschlüssel auflisten und abrufen
- Eigene öffentliche Dienstkontoschlüssel hochladen
- Dienstkontoschlüssel zur Authentifizierung als Dienstkonto verwenden
- 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