Berechtigungen für die agentenlose Übertragung

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:

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/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • Für den Dienst-Agent:

    • roles/storage.admin
    • roles/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 legacy Rollen können nur auf Bucket-Ebene zugewiesen werden.

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 legacy Rollen können nur auf Bucket-Ebene zugewiesen werden.

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:

Eine Anleitung zum Gewähren von Rollen auf Bucket-Ebene finden Sie auf den folgenden Seiten:

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: