Cloud Storage verwendet einen
Dienst-Agent
um Daten in einen Cloud Storage-Bucket zu verschieben. Dieser Dienst-Agent
wird beim ersten Aufruf von
googleServiceAccounts.get erstellt.
Der Ziel-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 Ziel-Bucket, um dem Dienst-Agent die erforderlichen Berechtigungen zu erteilen:
storage.buckets.getIamPolicystorage.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 Google Cloud Console erstellen und die Berechtigungen unter Nutzerberechtigungen haben, erhält der Dienst-Agent automatisch die erforderlichen Berechtigungen für Ihren Ziel-Bucket.
Sie können die Schritte auf dieser Seite überspringen. Konfigurieren Sie bei Bedarf den Zugriff auf Ihre Quelle, erstellen Sie dann eine Übertragung.
Erforderliche Berechtigungen
Das Dienstkonto muss die folgenden Berechtigungen für den Ziel-Bucket haben:
| Berechtigung | Beschreibung |
|---|---|
storage.buckets.get |
Ermöglicht dem Dienstkonto, den Standort des Buckets abzurufen. |
storage.objects.get |
Ermöglicht dem Dienstkonto, Objekte und ihre Metadaten anzusehen, ausgenommen ACLs. Erforderlich, wenn die Übertragung so konfiguriert ist, dass Objekte in der Senke [überschrieben werden](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) , wenn sie unterschiedlich sind, oder nie. Nicht erforderlich, wenn die Übertragungseinstellung immer überschreiben lautet. |
storage.objects.create |
Ermöglicht dem Dienstkonto, Objekte zum Bucket hinzuzufügen. |
storage.objects.delete |
Ermöglicht dem Dienstkonto, Objekte im Bucket zu löschen.
Erforderlich, wenn Sie Wenn im Ziel-Bucket die Objekt-Versionsverwaltung aktiviert ist, löscht weder |
storage.objects.list |
Ermöglicht dem Dienstkonto, Objekte im Bucket aufzulisten. Erforderlich, wenn Sie overwriteObjectsAlreadyExistingInSink auf false oder deleteObjectsUniqueInSink auf true gesetzt haben. |
Die folgende vordefinierte Rolle gewährt die erforderlichen Berechtigungen:
- Autor von Legacy-Storage-Buckets (
roles/storage.legacyBucketWriter)
Weisen Sie dem Dienst-Agent außerdem die folgende vordefinierte Rolle für Übertragungen zu, die so konfiguriert sind, dass Objekte überschriebenwerden, wenn sie unterschiedlich sind, oder nie:
- Storage-Objekt-Betrachter (
roles/storage.objectViewer)
Eine vollständige Liste der Cloud Storage-Rollen und der damit verbundenen Berechtigungen, die sie enthalten, finden Sie unter IAM-Rollen.
Erforderliche Berechtigungen erteilen
So weisen Sie dem Dienst-Agent die Rollen Autor von Legacy-Storage-Buckets und Storage-Objekt-Betrachter zu:
E-Mail-Adresse des Dienst-Agents suchen
Rufen Sie die Referenzseite
googleServiceAccounts.getauf.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 Ziel-Buckets unterscheiden.
Klicken Sie auf Ausführen.
Die E-Mail-Adresse des Dienst-Agents wird als Wert von
accountEmailzurü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 Google Cloud Console unter „Cloud Storage“ zur Seite 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 den Button + 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 Legacy Bucket Writeraus.Klicken Sie auf Speichern.
Wiederholen Sie den Vorgang, um die Rolle
Storage Object Viewerhinzuzufügen, wenn die Übertragung so konfiguriert ist, dass Objekte in der Senke überschrieben werden, wenn sie unterschiedlich sind, oder nie.
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.legacyBucketWriter
Ersetzen Sie Folgendes:
BUCKET_NAMEist der Name des Buckets, für den Sie dem Hauptkonto Zugriff gewähren. Beispiel:my-bucket.YOUR_AGENT_EMAIList die E-Mail-Adresse des Agent-Kontos, die Sie unter E-Mail-Adresse des Dienst-Agents suchen kopiert haben.
So gewähren Sie die Rolle Storage Object Viewer für Übertragungen, die so konfiguriert sind, dass
Objekte in der Senke
überschrieben werden, wenn sie unterschiedlich sind, oder nie:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
Codebeispiele
C++
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier: 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 Clientbibliotheken einrichten.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier: 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 Clientbibliotheken einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier: Cloud Storage-Clientbibliotheken. 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: 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 Clientbibliotheken einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier: 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 Clientbibliotheken einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier: 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 Clientbibliotheken einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Storage finden Sie hier: Cloud Storage-Clientbibliotheken. 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: 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 Clientbibliotheken einrichten.
Rust
JSON
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
AuthorizationHeader zu generieren.Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "bindings":[ { "role": "roles/storage.legacyBucketWriter", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Ersetzen Sie Folgendes:
YOUR_AGENT_EMAIList 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"
Ersetzen Sie Folgendes:
JSON_FILE_NAMEist der Pfad für die Datei, die Sie in Schritt 2 erstellt haben.OAUTH2_TOKENist das Zugriffstoken, das Sie in Schritt 1 generiert haben.BUCKET_NAMEist der Name des Buckets, für den Sie dem Hauptkonto Zugriff gewähren möchten. Beispiel:my-bucket.
Weitere Informationen zum Zuweisen von IAM-Rollen zu Cloud Storage Ressourcen finden Sie in der IAM-Dokumentation für Cloud Storage.