Cloud Storage verwendet eine
Von Google verwaltetes Dienstkonto
auch als Dienst-Agent bezeichnet.
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. Falls erforderlich: den Zugriff auf die Quelle konfigurieren, 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 gewähren Sie dem Dienst-Agent die Rolle Storage Legacy Bucket Writer: führen Sie die folgenden Schritte aus.
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, mit dem Sie arbeiten. Gewähren des Hauptkontos Zugriff. 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.legacyBucketWriter", "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
.
Weitere Informationen zum Zuweisen von IAM-Rollen zu Cloud Storage finden Sie in der IAM-Dokumentation zu Cloud Storage.