Zu agentenlosen Übertragungen gehören Übertragungen innerhalb von Cloud Storage oder von Amazon S3, Azure Blob Storage oder Data Lake Storage Gen2 oder URL-Listen mit öffentlichen Objekten. Dafür sind keine Übertragungs-Agents oder Agent-Pools erforderlich.
Wenn Sie Daten zwischen Cloud-Anbietern in einer agentenlosen Übertragung übertragen, müssen Sie zwei Hauptkonten Berechtigungen gewähren:
- Das Nutzerkonto , mit dem die Übertragung erstellt oder verwaltet wird.
- Ein Dienst-Agent , der automatisch erstellt wird, wenn Sie zum ersten Mal mit Storage Transfer Service interagieren. Sie können die Berechtigungen des Dienst-Agents an ein vom Nutzer verwaltetes Dienstkonto delegieren. Weitere Informationen finden Sie unter Berechtigungen des Dienst-Agents an ein vom Nutzer verwaltetes Dienstkonto delegieren.
Weitere Informationen zum Gewähren von IAM-Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Einfachste Methode zum Gewähren von Berechtigungen
Mit der gcloud CLI können Sie dem Nutzerkonto und dem Dienst-Agent die erforderlichen Berechtigungen gewähren.
Mit diesen Berechtigungen kann der Nutzer Übertragungsjobs erstellen, bearbeiten und löschen sowie Bandbreitenlimits festlegen oder ändern.
Wenn diese Berechtigungen für die Richtlinien Ihrer Organisation zu weit gefasst sind, finden Sie in den späteren Abschnitten dieses Dokuments die Mindestberechtigungen, die für Storage Transfer Service erforderlich sind.
Führen Sie den folgenden Befehl aus, um vorhandene Berechtigungen zu prüfen und fehlende Rollen auszugeben:
gcloud transfer authorize
Verwenden Sie das Flag --add-missing, um diese Rollen automatisch anzuwenden:
gcloud transfer authorize --add-missing
Wenn Sie Berechtigungen für ein vom Nutzer verwaltetes Dienstkonto anstelle des Nutzers gewähren möchten, übergeben Sie die Dienstkonto-Schlüsseldatei:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
Mit dem Befehl werden die folgenden Berechtigungen gewährt.
Für den Nutzer / das vom Nutzer verwaltete Dienstkonto:
roles/ownerroles/storagetransfer.adminroles/storagetransfer.transferAgentroles/storage.objectAdminroles/pubsub.editor
Für den Dienst-Agent:
roles/storage.adminroles/storagetransfer.serviceAgent
Eine Anleitung zur Installation der gcloud CLI finden Sie in der
gcloud Kurzanleitung.
Nutzerkontoberechtigungen
Das Nutzerkonto benötigt die Berechtigung zum Ausführen von Storage Transfer Service-Vorgängen. Diese Berechtigungen werden über eine von zwei Rollen gewährt: Storage Transfer-Nutzer oder Storage Transfer-Administrator.
Außerdem benötigt das Konto die Berechtigung, den Dienst-Agent abzurufen, um seine Berechtigungen zu prüfen.
Gewähren Sie die folgenden IAM-Berechtigungen und -Rollen, um das Nutzerkonto oder das vom Nutzer verwaltete Dienstkonto einzurichten.
| Rolle / Berechtigung | Funktion | Hinweise |
|---|---|---|
resourcemanager.projects.getIamPolicy |
Mit dieser Berechtigung wird bestätigt, dass der Dienst-Agent die erforderlichen Berechtigungen für eine Übertragung hat. | Um diese Berechtigung zu gewähren, gewähren Sie die
Rollenbetrachter
(roles/iam.roleViewer) vordefinierte Rolle, oder
erstellen Sie eine benutzerdefinierte Rolle mit
dieser Einzelberechtigung und gewähren Sie die benutzerdefinierte Rolle. |
| Eine der folgenden Rollen: | ||
Storage Transfer-Administrator
(roles/storagetransfer.admin)
|
Ermöglicht alle Storage Transfer Service-Vorgänge, einschließlich des Löschens von Übertragungsjobs. | Eine ausführliche Liste der gewährten Berechtigungen finden Sie unter Vordefinierte Rollen für Storage Transfer Service. |
Storage Transfer-Nutzer
(roles/storagetransfer.user)
|
Ermöglicht dem Nutzer, Übertragungen zu erstellen, abzurufen, zu aktualisieren und aufzulisten. Der Nutzer kann keine Übertragungsjobs löschen. | Eine ausführliche Liste der gewährten Berechtigungen finden Sie unter Vordefinierte Rollen für Storage Transfer Service. |
Berechtigungen des Dienst-Agents
Storage Transfer Service verwendet einen
Dienst-Agent, um
Ihre Daten zu verschieben. Dieses Dienstkonto wird automatisch erstellt, wenn Sie zum ersten Mal
einen Übertragungsjob erstellen, googleServiceAccounts.get aufrufen oder die Seite zum Erstellen von Jobs in der Google Cloud console aufrufen.
Das Dienstkonto hat meist das Format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
Verwenden Sie den API-Aufruf [googleServiceAccounts.get][googleServiceAccounts.get], um die Dienstkonto-ID abzurufen.
Rollen automatisch zuweisen
Es gibt zwei Möglichkeiten, dem Dienst-Agent automatisch die richtigen Rollen zuzuweisen:
Erstellen Sie die Übertragung mit der Google Cloud console. Die Console wendet die erforderlichen Berechtigungen automatisch an.
Verwenden Sie
gcloud transfer authorize --add-missing. Weitere Informationen finden Sie unter Einfachste Methode zum Gewähren von Berechtigungen.
Rollen manuell zuweisen
Wenn Sie dem Dienst-Agent Zugriff auf Ressourcen gewähren möchten, die für die Übertragung erforderlich sind, weisen Sie dem Dienst-Agent die folgenden Rollen oder entsprechende Berechtigungen zu.
| Rolle / Berechtigung | Funktion | Hinweise |
|---|---|---|
Autor von Legacy-Storage-Buckets
(roles/storage.legacyBucketWriter)
|
Ermöglicht dem Storage Transfer Service, Bucket-Metadaten zu lesen, Objekte im Bucket aufzulisten und Objekte in den Ziel-Bucket zu schreiben. |
Für den Cloud Storage-Ziel-Bucket gewähren. Cloud Storage |
Storage-Objekt-Betrachter
(roles/storage.objectViewer)
|
Ermöglicht dem Storage Transfer Service, Objekte aus einer Cloud Storage Quelle zu kopieren. Außerdem kann der Storage Transfer Service damit feststellen, ob eine Datei bereits im Cloud Storage-Ziel vorhanden ist und ob sie sich geändert hat. |
Für den Cloud Storage-Quell-Bucket gewähren, wenn Sie Daten aus Cloud Storage übertragen. Gewähren Sie die Rolle auch für den Cloud Storage-Ziel-Bucket, wenn Ihre Übertragung so konfiguriert ist, dass Objekte in der Senke überschrieben werden, wenn sie sich unterscheiden, oder nie. Nicht erforderlich, wenn die Übertragungseinstellung immer überschreiben lautet. Sie können die Rolle auf Projektebene für das Projekt zuweisen, über das der Storage Transfer Service ausgeführt wird, sofern dies für Ihre Situation erforderlich ist. |
Leser von Legacy-Storage-Buckets
(roles/storage.legacyBucketReader)
|
Ermöglicht dem Storage Transfer Service, Cloud Storage-Bucket-Metadaten zu lesen. |
Für den Cloud Storage-Quell-Bucket gewähren, wenn Sie Daten aus Cloud Storage übertragen. Cloud Storage |
Eine Anleitung finden Sie unter Erforderliche Berechtigungen erteilen.
An ein vom Nutzer verwaltetes Dienstkonto delegieren
Sie können die Berechtigungen des Dienst-Agents an ein vom Nutzer verwaltetes Dienstkonto delegieren. So können Sie Bucket-Berechtigungen für verschiedene Übertragungsjobs auf Dienstkonten aufteilen, anstatt sie in einem einzigen Dienst-Agent zu zentralisieren.
Weitere Informationen finden Sie unter Berechtigungen des Dienst-Agents an ein vom Nutzer verwaltetes Dienstkonto delegieren.
Projektübergreifende Cloud Storage-Übertragungen
Wenn Sie Objekte zwischen Cloud Storage-Buckets in verschiedenen Projekten übertragen möchten, müssen Sie einem einzelnen Dienst-Agent sowohl für den Quell- als auch für den Ziel-Bucket Berechtigungen gewähren. Der Dienst-Agent gehört zu dem Projekt, aus dem Sie die Übertragung erstellen.
Das Nutzerkonto oder das vom Nutzer verwaltete Dienstkonto benötigt nur Berechtigungen für das Projekt, in dem die Übertragung erstellt wird.
Die E-Mail-Adresse des Dienst-Agents finden Sie unter E-Mail-Adresse des Dienst-Agents suchen.
Gewähren Sie dem Dienst-Agent auf Bucket-Ebene die folgenden Rollen für den Quell-Bucket:
- Leser von Legacy-Storage-Buckets (
roles/storage.legacyBucketReader) - Storage-Objekt-Betrachter (
roles/storage.objectViewer)
Gewähren Sie dem gleichen Dienst-Agent auf Bucket-Ebene die folgende Rolle für den Ziel-Bucket:
- Autor von Legacy-Storage-Buckets (
roles/storage.legacyBucketWriter) - Außerdem für Übertragungen, die so konfiguriert sind, dass Objekte in der Senke überschrieben werden, wenn sie sich unterscheiden, oder nie: Storage-Objekt-Betrachter
(
roles/storage.objectViewer)
Eine Anleitung zum Gewähren von Rollen auf Bucket-Ebene finden Sie auf den folgenden Seiten:
- Zugriff auf eine Quelle konfigurieren: Cloud Storage
- Zugriff auf eine Senke konfigurieren: Cloud Storage
Legacy-Rollen in Cloud Storage können nicht auf Projektebene gewährt werden.
Organisationsbeschränkungen
Wenn in Ihrer Organisation
Einschränkungen für Organisationsrichtlinien wie
Domainbeschränkungen
(constraints/iam.allowedPolicyMemberDomains) oder
das Deaktivieren des Anhängens von Dienstkonten an Ressourcen in anderen Projekten
(constraints/iam.disableCrossProjectServiceAccountUsage) angewendet wurden, müssen diese Einschränkungen
aktualisiert werden, bevor projektübergreifende Übertragungen erfolgreich ausgeführt werden können.
Möglicherweise müssen Sie auch die VPC Service Controls-Einstellungen aktualisieren, um projektübergreifende Übertragungen zu unterstützen. Weitere Informationen finden Sie unter VPC Service Controls für Übertragungen von Cloud-Objektspeichern konfigurieren.
AWS- und Microsoft-Berechtigungen
Sie müssen auch den Zugriff auf Ihre Quelldateien konfigurieren, wenn sie sich in AWS S3 oder Microsoft Azure Storage befinden. In den folgenden Dokumenten werden die erforderlichen Schritte beschrieben: