Die gcloud CLI und p12-Dienstkontoschlüssel

Über die gcloud CLI können Entwickler private Schlüssel zur Authentifizierung mit Dienstkonten verwenden, die auch als Robot-Konten bezeichnet werden. Auf dieser Seite wird beschrieben, wie Sie p12-Schlüssel von Dienstkonten für die Google Cloud erstellen 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 es kryptografische Routinen enthält, wird Pyca/Cryptography nicht mit der gcloud CLI verteilt.

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 wird der gcloud CLI mitgeteilt, 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

Dienstkonto-Anmeldedaten können mit gcloud auth activate-service-account aktiviert werden.

Führen Sie gcloud auth activate-service-account aus, übergeben Sie den Pfad zu Ihrer Schlüsseldatei mit dem erforderlichen Flag --key-file und geben Sie ein Konto als Positionsargument an, um Ihr Dienstkonto mit der gcloud CLI zu verwenden.

Verwenden Sie als Konto die E-Mail-Adresse des Dienstkontos, das in der Google Cloud Console aufgeführt ist. Diese wird jedoch nicht bestätigt. Sie hilft Ihnen nur, sich zu merken, welches Konto Sie gerade verwenden.

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, müssen Sie nur $HOME/.config/gcloud löschen. Die sichere Verwaltung der Schlüsseldatei, die aus der Google Cloud Console heruntergeladen wurde, bleibt dem Nutzer überlassen. Widerrufen Sie im Zweifelsfall den Schlüssel in der Google Cloud Console.

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

Nach oben