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 für Objekt-ACLs ACL_PRESERVE festgelegt ist, ist für das Quellobjekt zusätzlich die Rolle Inhaber alter Storage-Objekte (roles/storage.legacyObjectOwner
) erforderlich. Fügen Sie für ACL_PRESERVE das Dienstkonto manuell hinzu, damit es die Rolle Storage Legacy Object Owner hat, um 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 hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Ruby
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
JSON
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.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:
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
.