Cloud Storage verwendet ein von Google verwaltetes Dienstkonto, das als Dienst-Agent bezeichnet wird, 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.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 Ziel-Bucket.
Sie können die Schritte auf dieser Seite überspringen. Konfigurieren Sie bei Bedarf den Zugriff auf die Quelle und erstellen Sie 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.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
)
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.
Erforderliche Berechtigungen erteilen
So weisen Sie dem Dienst-Agent die Rolle Storage Legacy Bucket Writer zu:
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 Ziel-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 Legacy Bucket Writer
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.legacyBucketWriter
Wobei:
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.legacyBucketWriter", "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
.
Weitere Informationen zum Zuweisen von IAM-Rollen zu Cloud Storage-Ressourcen finden Sie in der Cloud Storage IAM-Dokumentation.