Berechtigungen für die agentenlose Übertragung

Agentenlose Übertragungen umfassen Übertragungen innerhalb von Cloud Storage oder von Amazon S3, Azure Blob Storage oder Data Lake Storage Gen2 oder URL-Listen mit öffentlichen Objekten. Es sind keine Übertragungs-Agents oder Agent-Pools erforderlich.

Wenn Sie Daten zwischen Cloud-Anbietern bei einer agentenlosen Übertragung übertragen, müssen Sie zwei Principals Berechtigungen erteilen:

  • Das Nutzerkonto, mit dem die Übertragung erstellt oder verwaltet wird.
  • Ein von Google verwalteter 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.

Informationen zum Zuweisen von IAM-Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Einfachste Methode zum Erteilen von Berechtigungen

Mit der gcloud-Befehlszeile können Sie dem Nutzerkonto und dem von Google verwalteten Dienstkonto 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 zu weit gefasst sind, finden Sie in den späteren Abschnitten dieses Dokuments die von Storage Transfer Service benötigten Mindestberechtigungen.

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 einem vom Nutzer verwalteten Dienstkonto anstelle des Nutzers Berechtigungen erteilen möchten, übergeben Sie die Dienstkonto-Schlüsseldatei:

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

Der Befehl gewährt die folgenden Berechtigungen.

  • Für den Nutzer bzw. das vom Nutzer verwaltete Dienstkonto:

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • An den von Google verwalteten 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 der beiden Rollen gewährt: Storage Transfer-Nutzer oder Storage Transfer-Administrator.

Außerdem muss das Konto die Berechtigung haben, den von Google verwalteten Dienst-Agent abzurufen, um seine Berechtigungen zu prüfen.

Weisen Sie die folgenden IAM-Berechtigungen und -Rollen zu, um das Nutzerkonto oder das vom Nutzer verwaltete Dienstkonto einzurichten.

Rolle/Berechtigung Funktion Hinweise
resourcemanager.projects.getIamPolicy Mit dieser Berechtigung wird bestätigt, dass das von Google verwaltete Dienstkonto die erforderlichen Berechtigungen für eine Übertragung hat. Um diese Berechtigung zu gewähren, gewähren Sie die vordefinierte Rolle Rollenbetrachter (roles/iam.roleViewer) 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) Der Nutzer kann Übertragungen erstellen, abrufen, aktualisieren und auflisten. 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 für von Google verwaltete Dienst-Agents

Storage Transfer Service verwendet einen von Google verwalteten Dienst-Agent, um Ihre Daten zu übertragen. Dieses Dienstkonto wird automatisch erstellt, wenn Sie einen Übertragungsjob zum ersten Mal 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 Service-Agent automatisch die richtigen Rollen zuzuweisen:

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 alter Storage-Buckets (roles/storage.legacyBucketWriter) Ermöglicht Storage Transfer Service, Bucket-Metadaten zu lesen, Objekte im Bucket aufzulisten und Objekte in den Ziel-Bucket zu schreiben.

Gewähren Sie Zugriff auf den Cloud Storage-Ziel-Bucket.

legacy-Rollen in Cloud Storage 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.

Ermöglicht dem Storage Transfer Service außerdem, zu bestimmen, ob eine Datei bereits im Cloud Storage-Ziel vorhanden ist und ob sie sich geändert hat.

Gewähren Sie für den Cloud Storage-Quell-Bucket, wenn Sie Daten aus Cloud Storage übertragen.

Gewähren Sie 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 überschrieben werden soll.

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.

Gewähren Sie Berechtigungen für den Cloud Storage-Quell-Bucket, wenn Sie Daten aus Cloud Storage übertragen.

legacy-Rollen in Cloud Storage können nur auf Bucket-Ebene zugewiesen werden.

Eine Anleitung finden Sie unter Erforderliche Berechtigungen erteilen.

Delegieren an ein vom Nutzer verwaltetes Dienstkonto

Sie können die Berechtigungen des Dienst-Agents an ein von Nutzern verwaltetes Dienstkonto delegieren. So können Sie Bucket-Berechtigungen für verschiedene Übertragungsjobs auf Dienstkonten aufteilen, anstatt sie in einem einzelnen Dienst-Agenten zu zentralisieren.

Weitere Informationen finden Sie unter Berechtigungen für Service-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 die Berechtigung erteilen. Der Dienst-Agent gehört zu dem Projekt, aus dem Sie den Transfer erstellen.

Das Nutzer- oder nutzerverwaltete Dienstkonto benötigt nur Berechtigungen für das Projekt, in dem der Transfer erstellt wird.

Informationen zum Abrufen der E-Mail-Adresse des Dienst-Agents finden Sie unter E-Mail-Adresse des Dienst-Agents suchen.

Weisen Sie dem Dienstkonto im Quell-Bucket die folgenden Rollen auf Bucket-Ebene zu:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

Weisen Sie dem gleichen Dienst-Agent im Ziel-Bucket die folgende Rolle auf Bucket-Ebene zu:

  • Storage Legacy Bucket Writer

Eine Anleitung zum Zuweisen von Rollen auf Bucket-Ebene finden Sie auf den folgenden Seiten:

Legacy-Rollen in Cloud Storage können nicht auf Projektebene zugewiesen werden.

Organisationsbeschränkungen

Wenn in Ihrer Organisation Einschränkungen für Organisationsrichtlinien wie Domänenbeschränkungen (constraints/iam.allowedPolicyMemberDomains) oder 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 sein können.

Möglicherweise müssen Sie auch alle VPC Service Control-Einstellungen aktualisieren, um projektübergreifende Übertragungen zu unterstützen. Weitere Informationen finden Sie unter VPC Service Controls für Cloud-Objektspeicherübertragungen 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: