Die gcloud-Befehlszeile ermöglicht Entwicklern, private Schlüssel für die Authentifizierung mit Dienstkonten, auch Robot-Konten genannt, zu verwenden. Auf dieser Seite wird beschrieben, wie Sie P12-Schlüssel von Dienstkonten für die Google Clouderstellen und verwenden.
Pyca/Cryptography installieren
Mit der Bibliothek pyca/cryptography (Version >= 2.5
) kann die gcloud CLI die Schlüsseldateien im P12-Format decodieren, die ein Dienstkonto identifizieren. Da die Pyca/Kryptografie kryptografische Routinen enthält, wird sie nicht mit der gcloud-Befehlszeile ausgeliefert.
Wenn auf Ihrem System pip
die Befehlszeile für den Python-Paketindex, vorhanden ist, um pyca/cryptography
zu installieren, führen Sie den folgenden Befehl aus.
Weitere Informationen finden Sie in der Installationsanleitung.
python -m pip install cryptography
CLOUDSDK_PYTHON_SITEPACKAGES=1
Nach der Installation von pyca/cryptography müssen Sie die Umgebungsvariable CLOUDSDK_PYTHON_SITEPACKAGES
auf 1
festlegen. Damit weiß die gcloud-Befehlszeile, dass sie außerhalb des eigenen google-cloud-sdk/lib
-Verzeichnisses nach einzubindenden Bibliotheken suchen muss. In der Regel verursacht die Einstellung CLOUDSDK_PYTHON_SITEPACKAGES=1
keine Probleme. Sollten jedoch Funktionsstörungen auftreten, müssen Sie sie eventuell zurücksetzen.
Dienstkonto erstellen
Führen Sie die Schritte unter Dienstkontoschlüssel erstellen aus, um ein neues Dienstkonto zu erstellen und eine p12-Schlüsseldatei herunterzuladen.
Diese Schlüsseldatei sollte geheim sein. Sorgen Sie also mit entsprechenden Sicherheitsmaßnahmen dafür, dass sie vor dem Zugriff durch nicht vertrauenswürdige Parteien geschützt ist. Auf Unix-ähnlichen Systemen können Sie mit folgendem Befehl sicherstellen, dass eine Datei für andere remote verbundene Nutzer (ausgenommen Root-Nutzer) nicht sichtbar ist.
chmod 0600 YOUR_KEY_FILE.p12
Dienstkonto mit der gcloud CLI verwenden
Anmeldedaten für ein Dienstkonto können mit gcloud auth activate-service-account
aktiviert werden.
Um das Dienstkonto mit der gcloud CLI zu verwenden, führen Sie gcloud auth activate-service-account
aus, übergeben den Pfad zur Schlüsseldatei mit dem entsprechenden --key-file
-Flag und weisen ein Konto als Positionsargument zu.
Verwenden Sie als Konto möglichst die in der Google Cloud Console aufgeführte E-Mail-Adresse des Dienstkontos. Diese wird zwar nicht verifiziert, hilft Ihnen aber, das verwendete Konto nicht zu vergessen.
gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.gserviceaccount.com Activated service account credentials for my_service_account@developer.gserviceaccount.com.
WARNUNG: Mit dem Befehl gcloud auth activate-service-account
wird Ihr privater Schlüssel kopiert und unter $HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12
und $HOME/.config/gcloud/credentials.db
gespeichert.
Er wird mit 0600
-Berechtigungen (Lesen/Schreiben nur für Ihren eigenen Nutzer) erstellt. Alle Dateien, die in $HOME/.config/gcloud
gespeichert sind, sollten bereits als geheim gelten. Wenn Sie Authentifizierungsdaten, die von der gcloud CLI gespeichert wurden, zuverlässig und sicher löschen möchten, löschen Sie einfach nur $HOME/.config/gcloud
. Die sichere Verwaltung der aus der Google Cloud -Konsole heruntergeladenen Schlüsseldatei bleibt dem Nutzer überlassen. Im Zweifelsfall können Sie den Schlüssel in der Google Cloud Console widerrufen.
Nach der Aktivierung des Dienstkontos wird es in der Liste der Anmeldedaten angezeigt.
gcloud auth list Credentialed Accounts ACTIVE ACCOUNT * my_service_account@developer.gserviceaccount.com To set the active account, run: $ gcloud config set account my_service_account@developer.gserviceaccount.com