Storage Transfer Service verwendet ein von Google verwaltetes Dienstkonto, das als Dienst-Agent bezeichnet wird, um Daten aus einem Cloud Storage-Quell-Bucket zu verschieben. Dieser Dienst-Agent wird beim ersten Aufruf von googleServiceAccounts.get
erstellt.
Der Quell-Bucket muss nicht zum selben Projekt wie der Dienst-Agent gehören. Die Schritte sind unabhängig davon, in welchem Projekt sich der Bucket befindet, identisch.
Nutzerberechtigungen
Sie benötigen die entsprechenden Berechtigungen für den Quell-Bucket, um dem Dienst-Agent die erforderlichen Berechtigungen zu erteilen:
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
Die Rollen Inhaber alter Storage-Buckets (roles/storage.legacyBucketOwner
) und Storage-Administrator (roles/storage.admin
) enthalten die erforderlichen Berechtigungen.
Berechtigungen in der Google Cloud Console automatisch gewähren
Wenn Sie die Übertragung in der Cloud Console erstellen und die Berechtigungen unter Nutzerberechtigungen haben, erhält der Dienst-Agent automatisch die erforderlichen Berechtigungen für Ihren Quell-Bucket.
Sie können die Schritte auf dieser Seite überspringen und direkt mit Erstellen einer Übertragung fortfahren.
Erforderliche Berechtigungen
Das Dienstkonto muss die folgenden Berechtigungen für den Quell-Bucket haben:
Berechtigung | Beschreibung |
---|---|
storage.buckets.get |
Ermöglicht dem Dienstkonto, den Standort des Buckets abzurufen |
storage.objects.list |
Ermöglicht dem Dienstkonto, Objekte im Bucket aufzulisten |
storage.objects.get |
Ermöglicht dem Dienstkonto, Objekte im Bucket zu lesen |
storage.objects.create |
Ermöglicht dem Dienst-Agent, Objekte im Bucket zu erstellen. Erforderlich, wenn die Übertragung in ein Dateisystem erfolgt Storage Transfer Service erstellt und füllt zwei Ordner im Quell-Bucket aus: |
storage.objects.delete |
Ermöglicht dem Dienstkonto, Objekte im Bucket zu löschen. Erforderlich, wenn Sie deleteObjectsFromSourceAfterTransfer auf true festlegen
|
Die folgenden vordefinierten Rollen gewähren die erforderlichen Berechtigungen:
- Eine der Folgenden:
- Storage-Objekt-Betrachter (
roles/storage.objectViewer
), wenn die Übertragung in einen anderen Cloud Storage-Bucket erfolgt. - Storage-Objekt-Ersteller (
roles/storage.objectCreator
), wenn die Übertragung in ein Dateisystem erfolgt.
- Storage-Objekt-Betrachter (
- Plus:
- Autor von Legacy-Storage-Buckets (
roles/storage.legacyBucketWriter
), wenn die Berechtigung zum Löschen von Objekten erforderlich ist. - Leser von Legacy-Storage-Buckets (
roles/storage.legacyBucketReader
), wenn die Berechtigung zum Löschen von Objekten nicht erforderlich ist.
- Autor von Legacy-Storage-Buckets (
Jede als legacy
-Rolle markierte Cloud Storage-Rolle kann nur auf Bucket-Ebene zugewiesen werden.
Eine vollständige Liste der Cloud Storage-Rollen und der damit verbundenen Berechtigungen finden Sie unter IAM-Rollen.
Wenn ACL_PRESERVE für Objekt-ACLs festgelegt ist, ist zusätzlich die Rolle ACL_PRESERVE (roles/storage.legacyObjectOwner
) für das Quellobjekt erforderlich. Fügen Sie für ACL_PRESERVE das Dienstkonto manuell hinzu, um die Rolle Inhaber alter Storage-Objekte zu erhalten und dem Quellobjekt die Berechtigung storage.objects.getIamPolicy
zu gewähren.
Erforderliche Berechtigungen erteilen
Führen Sie die folgenden Schritte aus, um dem Dienst-Agent die erforderlichen Berechtigungen zu erteilen.
E-Mail-Adresse des Dienst-Agents suchen
Rufen Sie die Referenzseite
googleServiceAccounts.get
auf.Es wird ein interaktives Steuerfeld mit dem Titel Diese Methode testen geöffnet.
Geben Sie im Steuerfeld unter Anfrageparameter Ihre Projekt-ID ein. Das hier angegebene Projekt muss das Projekt sein, das Sie zum Verwalten des Storage Transfer Service verwenden. Dieses kann sich vom Projekt des Quell-Buckets unterscheiden.
Klicken Sie auf Ausführen.
Die E-Mail-Adresse des Dienst-Agents wird als Wert von
accountEmail
zurückgegeben. Kopieren Sie diesen Wert.Die E-Mail des Dienst-Agents hat das Format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Dienst-Agent zu einer Richtlinie auf Bucket-Ebene hinzufügen
Console
- Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.
Klicken Sie auf das Dreipunkt-Menü
des Buckets, für den Sie einem Hauptkonto eine Rolle zuweisen möchten.Wählen Sie Zugriff bearbeiten aus.
Klicken Sie auf die Schaltfläche + Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Dienst-Agents ein.
Wählen Sie im Drop-down-Menü Rolle auswählen die Option
Storage Object Viewer
oderStorage Object Creator
aus.Klicken Sie auf Weitere Rolle hinzufügen.
Wählen Sie entweder
Storage Legacy Bucket Writer
oderStorage Legacy Bucket Reader
aus.Klicken Sie auf Speichern.
gcloud
Führen Sie den Befehl gcloud storage buckets add-iam-policy-binding
aus:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.legacyBucketReader
Dabei gilt:
BUCKET_NAME
ist der Name des Buckets, auf den Sie dem Hauptkonto Zugriff erteilen. Beispiel:my-bucket
.YOUR_AGENT_EMAIL
ist die E-Mail-Adresse des Agent-Kontos, die Sie unter E-Mail-Adresse des Dienst-Agents suchen kopiert haben.
Codebeispiele
C++
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage C++ API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage C# API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage Go API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage Java API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage Node.js API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage PHP API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage Python API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie unter Cloud Storage-Clientbibliotheken Weitere Informationen finden Sie in der Cloud Storage Ruby API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
JSON
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header
Authorization
einfügen.Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.legacyBucketReader", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Wobei:
YOUR_AGENT_EMAIL
ist die E-Mail-Adresse des Agent-Kontos, die Sie unter E-Mail-Adresse des Dienst-Agents suchen kopiert haben.
Verwenden Sie
cURL
, um die JSON API mit einerPUT setIamPolicy
-Anfrage aufzurufen:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dabei gilt:
JSON_FILE_NAME
ist der Pfad für die Datei, die Sie in Schritt 2 erstellt haben.OAUTH2_TOKEN
ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.BUCKET_NAME
ist der Name des Buckets, für den Sie dem Hauptkonto Zugriff gewähren möchten. Beispiel:my-bucket
.