Anmeldedaten für verschiedene Anwendungsfälle

Übersicht

gsutil unterstützt derzeit mehrere Typen von Anmeldedaten/Authentifizierung sowie die Möglichkeit, anonym auf öffentliche Daten zuzugreifen. Jeder dieser Anmeldedatentypen wird weiter unten ausführlicher erklärt. Sie finden dort außerdem Informationen zum Konfigurieren und Verwenden von Anmeldedaten entweder über das Cloud SDK oder die eigenständige Installationen von gsutil.

Anmeldedaten über die Cloud SDK-Distribution von gsutil konfigurieren/verwenden

Wenn gsutil über das Cloud SDK ("gcloud") installiert/verwendet wird, werden die Anmeldedaten vom Cloud SDK in einer nicht vom Nutzer bearbeitbaren Datei unter ~/.config/gcloud gespeichert. Jegliche Bearbeitung von Anmeldedaten sollte über den Befehl "gcloud auth" erfolgen. Wenn Sie mehrere Anmeldedaten einrichten müssen, z. B. für ein persönliches Nutzerkonto und für ein Dienstkonto, verwaltet der Befehl "gcloud auth" die Anmeldedaten für Sie. Mit dem Befehl "gcloud auth" können Sie auch zwischen Anmeldedaten wechseln. Weitere Informationen finden Sie unter https://cloud.google.com/sdk/gcloud/reference/auth.

Sobald die Anmeldedaten über "gcloud auth" konfiguriert wurden, werden diese auch verwendet, unabhängig davon, ob der Nutzer boto-Konfigurationsdateien hat (die sich unter ~/.boto befinden, sofern kein anderer Pfad in der Umgebungsvariablen BOTO_CONFIG angegeben ist). gsutil sucht jedoch weiterhin nach Anmeldedaten in der boto-Konfigurationsdatei, wenn ein Anmeldedatentyp außerhalb von Cloud Storage erforderlich ist, der nicht im gcloud-Anmeldedatenspeicher vorhanden ist (z. B. HMAC-Anmeldedaten für ein S3-Konto).

Anmeldedaten über die eigenständige gsutil-Distribution konfigurieren/verwenden

Wenn Sie eine eigenständige gsutil-Distribution installiert haben, die Sie unter https://pub.storage.googleapis.com/gsutil.tar.gz, https://pub.storage.googleapis.com/gsutil.zip oder über PyPi heruntergeladen haben, werden Anmeldedaten mit dem Befehl "gsutil config" konfiguriert und in der vom Nutzer bearbeitbaren boto-Konfigurationsdatei gespeichert. Diese befindet sich unter ~/.boto, sofern in der Umgebungsvariablen BOTO_CONFIG kein anderer Pfad angegeben ist. Wenn Sie in diesem Fall mehrere Anmeldedaten einrichten möchten, z. B. für ein persönliches Nutzerkonto und für ein Dienstkonto, führen Sie "gsutil config" jeweils einmal für die jeweiligen Anmeldedaten aus und speichern alle erzeugten boto-Konfigurationsdateien. Benennen Sie beispielsweise ein Konto in "~/.boto_user_account" und das zweite in "~/.boto_service_account" um. Sie können mit der Umgebungsvariablen BOTO_CONFIG auch zwischen den Anmeldedaten wechseln, z. B. durch Ausführen von "BOTO_CONFIG=~/.boto_user_account gsutil ls".

Beachten Sie, dass Sie bei Verwendung der eigenständigen Version von gsutil mit der JSON API maximal einen der folgenden Typen von Cloud Storage-Anmeldedaten in einer einzelnen boto-Konfigurationsdatei konfigurieren können: OAuth2-Nutzerkonto, OAuth2-Dienstkonto. Darüber hinaus können Sie auch Anmeldedaten für S3 HMAC (erforderlich für die Verwendung von s3://-URLs) sowie Anmeldedaten für das interne Google Compute Engine-Dienstkonto einrichten. Anmeldedaten für das interne Google Compute Engine-Dienstkonto werden nur verwendet, wenn keine OAuth2-Anmeldedaten vorhanden sind.

Unterstützte Anmeldedatentypen

gsutil unterstützt mehrere Typen von Anmeldedaten. Die jeweilige Untergruppe hängt davon ab, welche gsutil-Distribution Sie verwenden (siehe oben).

OAuth2-Nutzerkonto:
Dies ist der bevorzugte Anmeldedatentyp für die Authentifizierung von Anfragen im Namen eines bestimmten Nutzers, was wahrscheinlich der häufigste Einsatz von gsutil ist. Dies ist der standardmäßige Anmeldedatentyp, der erstellt wird, wenn Sie "gsutil config" ausführen bzw. "gcloud init" für Cloud SDK-Installationen. Weitere Informationen zur OAuth2-Authentifizierung finden Sie unter https://developers.google.com/accounts/docs/OAuth2#scenarios
.
HMAC:

Dieser Anmeldedatentyp kann von Programmen verwendet werden, die mit HMAC-Authentifizierung implementiert werden. Dieser Authentifizierungsmechanismus wird von bestimmten anderen Cloud Storage-Dienstanbietern unterstützt. Er kann auch für die interaktive Authentifizierung eingesetzt werden, wenn Daten zu/von Dienstanbietern verschoben werden, die HMAC-Anmeldedaten unterstützen. Dieser Anmeldedatentyp wird erstellt, wenn Sie "gsutil config -a" ausführen.

Beachten Sie, dass Sie HMAC-Anmeldedaten sowohl für Cloud Storage als auch für einen anderen Dienstanbieter einrichten können. Sie können auch OAuth2-Anmeldedaten für ein Cloud Storage-Nutzerkonto und HMAC-Anmeldedaten für einen anderen Dienstanbieter einrichten. Dazu können Sie nach dem Ausführen des Befehls "gsutil config" (oder "gcloud init" für Cloud SDK-Installationen) die erzeugte Konfigurationsdatei ~/.boto bearbeiten und nach Kommentaren suchen, die angeben, wo andere Anmeldedaten hinzugefügt werden können.

Weitere Informationen zur HMAC-Authentifizierung finden Sie unter:
https://developers.google.com/storage/docs/reference/v1/getting-startedv1#keys
OAuth2-Dienstkonto:

Dies ist der bevorzugte Anmeldedatentyp, der bei der Authentifizierung im Namen eines Dienstes oder einer Anwendung (und nicht eines Nutzers) verwendet werden sollte. Wenn Sie beispielsweise gsutil über einen nächtlichen Cronjob ausführen, um Daten hoch- oder herunterzuladen, ist der Cronjob durch den Einsatz eines Dienstkontos nicht von den Anmeldedaten eines einzelnen Mitarbeiters in Ihrem Unternehmen abhängig. Dieser Anmeldedatentyp wird konfiguriert, wenn Sie "gsutil config -e" ausführen. Wenn die Installation über das Cloud SDK erfolgt ist, führen Sie "gcloud auth activate-service-account" aus, um Anmeldedaten für ein Dienstkonto zu konfigurieren.

Beachten Sie, dass ein Dienstkonto für den API-Zugriff standardmäßig als Bearbeiter und nicht als Inhaber betrachtet wird. Insbesondere kann es vorkommen, dass Bearbeiter die Zugriffsberechtigung "Inhaber" in den Standard-ACLs für Objekte und Buckets haben, der Inhaberzugriff der Bearbeiter aber von den Optionen für vordefinierte ACLs entfernt wird. Dies kann zu unerwarteten Ergebnissen führen. Die Lösung für dieses Problem besteht darin, "gsutil acl ch" anstelle von "gsutil acl set <canned-ACL>" zu verwenden, um die Berechtigungen für einen Bucket zu ändern.

Wie Sie Anmeldedaten für ein Dienstkonto mit "gsutil config -e" oder "gcloud auth activate-service-account" einrichten, erfahren Sie unter:

Weitere Informationen zu OAuth2-Dienstkonten finden Sie unter:
https://developers.google.com/accounts/docs/OAuth2ServiceAccount
Weitere Informationen zu den verschiedenen Rollen für Konten finden Sie unter:
https://developers.google.com/console/help/#DifferentRoles
Internes Google Compute Engine-Dienstkonto:

Dies ist der Dienstkontotyp, der für von App Engine oder Google Compute Engine gehostete Konten verwendet wird. Diese Anmeldedaten werden automatisch in Google Compute Engine erstellt, wenn Sie den Befehl "gcloud compute instances create" ausführen. Die Anmeldedaten können dann mit dem Flag "--scopes" gesteuert werden.

Weitere Informationen zu Google Compute Engine-Dienstkonten finden Sie unter:
https://developers.google.com/compute/docs/authentication
Weitere Informationen zu App Engine-Dienstkonten finden Sie unter:
https://developers.google.com/appengine/docs/python/appidentity/overview
Identitätsübertragung für ein Dienstkonto:

Die Identitätsübertragung für ein Dienstkonto ist nützlich, wenn Sie kurzfristigen Zugriff auf bestimmte Ressourcen gewähren müssen. Sie haben beispielsweise einen Bucket mit sensiblen Daten, der in der Regel schreibgeschützt ist, möchten aber vorübergehend über ein vertrauenswürdiges Dienstkonto Schreibzugriff darauf gewähren.

Sie können angeben, welches Dienstkonto für die Identitätsübertragung verwendet werden soll. Führen Sie dafür "gsutil -i" und "gsutil config" aus und bearbeiten Sie die boto-Konfigurationsdatei oder verwenden Sie den Befehl "gcloud config set auth/impersonate_service_account".

Wenn Sie eine Identität übertragen möchten, muss Ihren ursprünglichen Anmeldedaten die Rolle "roles/iam.serviceAccountTokenCreator" im Zieldienstkonto zugewiesen werden. Weitere Informationen erhalten Sie hier: