Auf dieser Seite wird erläutert, wie Sie einen öffentlichen Schlüssel für ein Dienstkonto hochladen. Nachdem Sie den öffentlichen Schlüssel hochgeladen haben, können Sie sich mit dem privaten Schlüssel aus dem Schlüsselpaar als Dienstkonto authentifizieren.
Hinweise
Enable the IAM API.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Zentraler Dienstkontoadministrator (roles/iam.serviceAccountKeyAdmin
) für das Projekt oder das Dienstkonto, dessen Schlüssel Sie verwalten möchten, zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Hochladen von Dienstkontenschlü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.
Ö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.
Fügen Sie keine privaten Informationen in das X.509-Zertifikat ein. Verwenden Sie insbesondere ein allgemeines Thema und fügen Sie keine optionalen Attribute hinzu. Zertifikate sind öffentlich sichtbar. Alle privaten Informationen im Zertifikat sind für jeden sichtbar, der das Zertifikat abruft. Weitere Informationen finden Sie unter Offenlegung vertraulicher Informationen in hochgeladenen X.509-Zertifikaten vermeiden.
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.
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, 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 Bestehenden 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 der Datei mit dem öffentlichen Schlüssel 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" }
Hochladen von öffentlichen Schlüsseln deaktivieren
Informationen zum Deaktivieren der Funktion zum Hochladen von Schlüsseln für Ihr Projekt finden Sie unter Dienstkontoschlüssel-Upload einschränken.
Nächste Schritte
- Dienstkontoschlüssel erstellen und löschen
- Dienstkontoschlüssel auflisten und abrufen
- Weitere Informationen finden Sie unter Alternativen zu Dienstkontoschlüsseln für die Authentifizierung.
- 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