Bevor Sie eine agent-basierte Übertragung erstellen, müssen Sie Berechtigungen für die folgenden Entitäten konfigurieren:
Das nutzer- oder nutzerverwaltete Dienstkonto, das zum Erstellen der Übertragung verwendet wird. Dies ist das Konto, das in der Google Cloud Console angemeldet ist, oder das Konto, das bei der Authentifizierung bei der
gcloud
-Befehlszeile angegeben wird. Das Nutzerkonto kann ein reguläres Nutzerkonto oder ein vom Nutzer verwaltetes Dienstkonto sein.Das von Google verwaltete Dienstkonto, auch als Dienst-Agent bezeichnet, das von Storage Transfer Service verwendet wird. Dieses Konto wird in der Regel anhand seiner E-Mail-Adresse identifiziert, die das Format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
hat.Das Übertragungs-Agent-Konto, das Google Cloud-Berechtigungen für Übertragungs-Agents gewährt. Transfer Agent-Konten verwenden zur Authentifizierung die Anmeldedaten des Nutzers, der sie installiert, oder die Anmeldedaten eines nutzerverwalteten Dienstkontos.
Weitere Informationen zum Zuweisen von IAM-Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Einfachste Methode zum Gewähren von Berechtigungen
Über die gcloud
-Befehlszeile können dem Nutzer-/nutzerverwalteten Dienstkonto und dem von Google verwalteten Dienstkonto die erforderlichen Berechtigungen gewährt werden.
Mit diesen Berechtigungen kann der Nutzer Übertragungsjobs erstellen, bearbeiten und löschen sowie Bandbreitenbeschränkungen 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 erforderlichen Mindestberechtigungen für Storage Transfer Service.
Führen Sie den folgenden Befehl aus, um vorhandene Berechtigungen zu prüfen und fehlende Rollen auszudrucken:
gcloud transfer authorize
Verwenden Sie das Flag --add-missing
, um diese Rollen automatisch anzuwenden:
gcloud transfer authorize --add-missing
Übergeben Sie die Dienstkonto-Schlüsseldatei, um einem vom Nutzer verwalteten Dienstkonto Berechtigungen zu gewähren:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
Eine Anleitung zum Erstellen eines Dienstkontos finden Sie unter Dienstkonten erstellen und verwalten.
Durch diesen Befehl werden die folgenden Berechtigungen gewährt.
An das vom Nutzer bzw. vom Nutzer verwaltete Dienstkonto:
roles/owner
roles/storagetransfer.admin
roles/storagetransfer.transferAgent
roles/storage.objectAdmin
roles/pubsub.editor
Zum von Google verwalteten Dienstkonto:
roles/storage.admin
roles/storagetransfer.serviceAgent
Eine Anleitung zum Installieren der gcloud
-Befehlszeile finden Sie in der Kurzanleitung zu gcloud
.
Von Nutzern oder Nutzern verwaltete Dienstkontoberechtigungen
In diesem Abschnitt werden die Rollen beschrieben, die für Konten erforderlich sind, die Übertragungen verwalten und ausführen. In den Anforderungen Ihrer Organisation sind die genauen Rollen für jede Persona festgelegt. In diesem Abschnitt wird davon ausgegangen, dass Sie einen Administrator und einen Nutzer erstellen.
Administratorkonten
Storage Transfer Service-Administratorkonten verwalten Übertragungs-Agents, legen Limits für die Bandbreitennutzung fest und löschen Übertragungsjobs.
Weisen Sie zum Einrichten eines Administratorkontos die folgenden IAM-Berechtigungen und -Rollen zu:
Rolle/Berechtigung | Funktion | Notes |
---|---|---|
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. |
Storage Transfer-Administrator
(roles/storagetransfer.admin )
|
Ermöglicht Verwaltungsaktionen im Übertragungsprojekt, z. B. die Projekteinrichtung und Agent-Monitoring. | Eine ausführliche Liste der gewährten Berechtigungen finden Sie unter Vordefinierte Rollen für Storage Transfer Service. |
Nutzerkonten
Storage Transfer Service-Nutzerkonten werden zum Erstellen und Ausführen von Übertragungen verwendet. Diese Konten haben in der Regel keinen Zugriff zum Löschen von Übertragungsjobs.
Ein Nutzerkonto kann ein Nutzer der Google Cloud Console oder ein Dienstkonto sein. Wenn Sie ein Dienstkonto verwenden, hängt die Methode zum Übergeben der Anmeldedaten an den Storage Transfer Service je nach verwendeter Schnittstelle ab.
Weisen Sie dem Konto die folgenden Berechtigungen und Rollen zu, um ein Nutzerkonto einzurichten:
Rolle/Berechtigung | Funktion | Notes |
---|---|---|
resourcemanager.projects.getIamPolicy |
Wird verwendet, um zu bestätigen, dass das von Google verwaltete Dienstkonto die erforderlichen Pub/Sub-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. |
Storage Transfer-Nutzer
(roles/storagetransfer.user )
|
Der Nutzer kann Übertragungen erstellen, abrufen, aktualisieren und auflisten. | Eine ausführliche Liste der gewährten Berechtigungen finden Sie unter Vordefinierte Rollen für Storage Transfer Service. |
Berechtigungen für von Google verwaltetes Dienstkonto
Storage Transfer Service verwendet ein von Google verwaltetes Dienstkonto, um Ihre Daten zu bewegen. Dieses Dienstkonto wird automatisch erstellt, wenn Sie zum ersten Mal einen Übertragungsjob erstellen, googleServiceAccounts.get
aufrufen oder in der Google Cloud Console die Seite zur Joberstellung aufrufen.
Das Dienstkonto hat meist das Format project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Verwenden Sie den API-Aufruf
googleServiceAccounts.get
, um Ihre Dienstkonto-ID abzurufen.
Automatische Zuweisung von Rollen
Es gibt zwei Möglichkeiten, dem von Google verwalteten Dienstkonto automatisch die richtigen Rollen zuzuweisen:
Erstellen Sie die Übertragung mit der Google Cloud Console. In der Console werden die erforderlichen Berechtigungen automatisch angewendet.
Verwenden Sie
gcloud transfer authorize --add-missing
. Weitere Informationen finden Sie unter Einfachste Methode zum Gewähren von Berechtigungen.
Rollen manuell zuweisen
Weisen Sie dem Dienstkonto die folgenden Rollen oder entsprechende Berechtigungen zu, um dem von Google verwalteten Dienstkonto Zugriff auf Ressourcen zu gewähren, die für die Übertragung erforderlich sind.
Rolle/Berechtigung | Funktion | Notes |
---|---|---|
Storage-Objekt-Ersteller
(roles/storage.objectCreator )
|
Ermöglicht dem Storage Transfer Service, Übertragungslogs in dem mit dieser Übertragung verbundenen Cloud Storage-Bucket zu erstellen. |
Allen Cloud Storage-Buckets zuweisen, die in einer Übertragung verwendet werden. 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.
Eine detaillierte Liste der Berechtigungen, die diese Rollen gewähren, finden Sie unter Vordefinierte Cloud Storage-Rollen. |
Storage-Objekt-Betrachter
(roles/storage.objectViewer )
|
Ermöglicht dem Storage Transfer Service, zu bestimmen, ob eine Datei bereits zu oder von Cloud Storage übertragen wurde. | |
Storage Transfer-Dienst-Agent
(roles/storagetransfer.serviceAgent )
|
Ermöglicht dem Storage Transfer Service, Pub/Sub-Themen automatisch zu erstellen und zu ändern, um Agents von Google Cloud zu übertragen. |
Wenden Sie die Rolle auf Projektebene auf das Projekt an, aus dem der Storage Transfer Service ausgeführt wird.
Eine detaillierte Liste der Berechtigungen, die diese Rolle gewährt, finden Sie unter Berechtigungen und Rollen. |
Leser alter Storage-Buckets
(roles/storage.legacyBucketReader )
|
Ermöglicht dem Storage Transfer Service, Cloud Storage-Bucket-Metadaten zu lesen. |
Wird allen Cloud Storage-Buckets zugewiesen, die in einer Übertragung verwendet werden.
|
Eine Anleitung finden Sie unter Erforderliche Berechtigungen gewähren.
Berechtigungen für Agent-Konto übertragen
Storage Transfer Service-Transfer-Agents können entweder mit dem Nutzerkonto oder mit einem Dienstkonto ausgeführt werden.
Weisen Sie die Rolle "Transfer-Agent-Dienstkonto" oder "Nutzerkonto" zu, mit dem die Transfer-Agents ausgeführt werden:
Rolle/Berechtigung | Funktion | Notes |
---|---|---|
Storage Transfer-Agent
(roles/storagetransfer.transferAgent )
|
Gewährt Übertragungs-Agents die Berechtigungen des Storage Transfer Service und Pub/Sub, um eine Übertragung abzuschließen. |
Weisen Sie diese Rolle dem Nutzer oder Dienstkonto zu, das von Agents verwendet wird.
Eine detaillierte Liste der Berechtigungen, die diese Rolle gewährt, finden Sie unter Zugriffssteuerung mit IAM. |
Quell- und Zielberechtigungen
Außerdem müssen Sie darauf achten, dass das Agent-Konto über die richtigen Berechtigungen verfügt, um auf die Quelldaten zuzugreifen und in das Ziel zu schreiben.
Dateisystem, S3-kompatibler Speicher oder HDFS zu Cloud Storage
Wenn das Übertragungsziel ein Cloud Storage-Bucket ist, benötigt der Übertragungs-Agent die folgenden Berechtigungen für den Ziel-Bucket. Eine Anleitung finden Sie unter Hauptkonto zu einer Richtlinie auf Bucket-Ebene hinzufügen.
Berechtigung | Beschreibung |
---|---|
storage.objects.create |
Ermöglicht dem Agent-Konto, während der Übertragung Cloud Storage-Objekte zu schreiben. |
storage.objects.get |
Ermöglicht dem Agent-Konto, Objektdaten und Metadaten zu lesen. |
storage.objects.list |
Ermöglicht dem Agent-Konto, Objekte im Cloud Storage-Bucket aufzulisten. |
storage.objects.delete |
Erforderlich, wenn die Übertragung so konfiguriert ist, dass Objekte in der Senke überschrieben oder gelöscht werden Beispiel: overwriteObjectsAlreadyExistingInSink oder deleteObjectsUniqueInSink sind in der
transferOptions-Konfiguration Ihrer Übertragung festgelegt. |
Weisen Sie zum Zuweisen dieser Berechtigungen die folgende Rolle zu:
Alternativ können Sie eine benutzerdefinierte Rolle mit den spezifischen Berechtigungen erstellen und die benutzerdefinierte Rolle zuweisen.
Zum Aktivieren mehrteiliger Uploads sind zusätzliche Berechtigungen erforderlich.
Cloud Storage zum Dateisystem
Wenn die Quelle der Übertragung ein Cloud Storage-Bucket ist, benötigt der Transfer-Agent die folgende Berechtigung für den Quell-Bucket.
Berechtigung | Beschreibung |
---|---|
storage.objects.create |
Ermöglicht dem Agent-Konto, Übertragungslogs und transferbezogene Metadaten in den Cloud Storage-Quell-Bucket zu schreiben. |
storage.objects.get |
Ermöglicht dem Agent-Konto, Objektdaten und Metadaten zu lesen. |
storage.objects.list |
Ermöglicht dem Agent-Konto, Objekte im Cloud Storage-Bucket aufzulisten. |
storage.objects.delete |
Erforderlich, wenn Ihre Übertragung so konfiguriert ist, dass Objekte aus der Quelle gelöscht werden. Siehe
deleteObjectsFromSourceAfterTransfer . |
Weisen Sie zum Gewähren dieser Berechtigung die folgende Rolle zu:
- Storage-Objekt-Betrachter (
roles/storage.objectViewer
)
Alternativ können Sie eine benutzerdefinierte Rolle mit einer einzigen Berechtigung erstellen und die benutzerdefinierte Rolle zuweisen.
Dateisystem zum Dateisystem
Wenn die Übertragung zwischen zwei Dateisystemen erfolgt, benötigt der Transfer-Agent die folgenden Berechtigungen für den Zwischen-Bucket.
Berechtigung | Beschreibung |
---|---|
storage.objects.create |
Ermöglicht dem Agent-Konto, während der Übertragung Cloud Storage-Objekte zu schreiben. |
storage.objects.get |
Ermöglicht dem Agent-Konto, Objektdaten und Metadaten zu lesen. |
storage.objects.list |
Ermöglicht dem Agent-Konto, Objekte im Cloud Storage-Bucket aufzulisten. |
storage.objects.delete |
Erforderlich, wenn die Übertragung für das Löschen von Objekten im Zwischen-Bucket konfiguriert wurde, nachdem die Übertragung abgeschlossen wurde. |
Weisen Sie zum Zuweisen dieser Berechtigungen die folgende Rolle zu:
Alternativ können Sie eine benutzerdefinierte Rolle mit den spezifischen Berechtigungen erstellen und die benutzerdefinierte Rolle zuweisen.
Zum Aktivieren mehrteiliger Uploads sind zusätzliche Berechtigungen erforderlich.
Mehrteilige Uploads
Erteilen Sie dem Agent zusätzlich die folgenden Berechtigungen, um mehrteilige Uploads für Übertragungen oder Übertragungen von Dateisystemen zu Cloud Storage zwischen Dateisystemen zu aktivieren.
- Weisen Sie für Übertragungen zu Cloud Storage die Berechtigungen dem Ziel-Bucket zu.
- Bei Übertragungen zwischen Dateisystemen weisen Sie die Berechtigungen dem Zwischen-Bucket zu.
Name der mehrteiligen Upload-Berechtigung | Beschreibung |
---|---|
storage.multipartUploads.create |
Objekte in mehreren Teilen hochladen. |
storage.multipartUploads.abort |
Mehrteilige Upload-Sitzungen abbrechen. |
storage.multipartUploads.listParts |
Die hochgeladenen Objektteile in einer mehrteiligen Upload-Sitzung auflisten |
storage.multipartUploads.list |
Mehrteilige Upload-Sitzungen in einem Bucket auflisten. |
Weisen Sie zum Zuweisen dieser Berechtigungen die folgende Rolle zu:
Alternativ können Sie eine benutzerdefinierte Rolle mit den spezifischen Berechtigungen erstellen und die benutzerdefinierte Rolle zuweisen.