In dieser Anleitung härten Sie die Datenübertragungen von Amazon Simple Storage Service (Amazon S3) nach Cloud Storage, indem Sie Storage Transfer Service mit einem VPC Service Controls-Perimeter verwenden. Diese Anleitung richtet sich an Dateninhaber, die Daten in Amazon S3 gespeichert haben und diese sicher in Google Cloud verarbeiten oder dorthin migrieren möchten.
In dieser Anleitung wird davon ausgegangen, dass Sie mit Amazon Web Services (AWS) und den Grundlagen des Arbeitens mit Daten in Objektspeichern vertraut sind. In dieser Anleitung wird eine dienstkontobasierte Methode zur Zugriffssteuerung verwendet, indem Access Context Manager eingesetzt wird. Weitere Zugriffsebenen, die über die dienstkontobasierte Methode hinausgehen, finden Sie unter Zugriffsebene erstellen.
Architektur
Das folgende Diagramm zeigt die VPC Service Controls-Architektur.
Im obigen Diagramm wird durch VPC Service Controls die Kommunikation zwischen Google Cloud-Diensten ausdrücklich unterbunden, es sei denn, beide Projekte befinden sich in dem kontrollierten Perimeter.
Ziele
- AWS-Zugriff konfigurieren
- VPC Service Controls-Perimeter erstellen
- Mithilfe von Access Context Manager eine Zugriffsrichtlinie und eine Zugriffsebene erstellen
- Mithilfe des Storage Transfer Service Daten zwischen Amazon S3 und Cloud Storage verschieben
- Storage Transfer Service einrichten, um Daten nach einem Zeitplan abzurufen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
There are no extra costs to use Storage Transfer Service; however, Cloud Storage pricing and external provider costs apply when using Storage Transfer Service.
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
In dieser Anleitung werden neben Google Cloud-Ressourcen die folgenden AWS-Ressourcen (Amazon Web Services) verwendet, die möglicherweise Kosten verursachen:
Vorbereitung
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Access Context Manager, Cloud Storage, and Storage Transfer Service APIs aktivieren.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Access Context Manager, Cloud Storage, and Storage Transfer Service APIs aktivieren.
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
- Wechseln Sie in der Google Cloud Console zur Seite IAM & Verwaltung, um Ihrem Konto die Rolle des Storage-Administrators und des Access Context Manager-Administrators zuzuweisen.
Zur Seite "IAM & Verwaltung" firebase.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.*
storage.objects.*
accesscontextmanager.accessLevels.*
accesscontextmanager.accessPolicies.*
accesscontextmanager.accessPolicies.setIamPolicy
accesscontextmanager.accessPolicies.update
accesscontextmanager.accessZones.*
accesscontextmanager.policies.*
accesscontextmanager.servicePerimeters.*
resourcemanager.organizations.get
Die Rolle "Storage-Administrator" hat die folgenden Berechtigungen:
Die Rolle "Access Context Manager-Administrator" hat die folgenden Berechtigungen:
AWS-Zugriff konfigurieren
In dieser Anleitung verwenden Sie bestehende AWS IAM-Nutzer (AWS Identity and Access Management), um eine AWS IAM-Richtlinie für die Kommunikation mit Storage Transfer Service zu erstellen. Diese Richtlinien und Nutzer werden benötigt, um Ihre Verbindung zu Google Cloud zu authentifizieren und Ihre Daten bei der Übertragung zu schützen. Für diese Anleitung ist es erforderlich, dass Sie über einen Amazon S3-Bucket verfügen, aus dem Daten übertragen werden können. Sie können einen vorhandenen Amazon S3-Bucket verwenden oder einen neuen Bucket erstellen. Sie können ein Test- oder Sandbox-AWS-Konto verwenden, um eine Beeinträchtigung der Produktionsressourcen im selben Konto zu vermeiden.
AWS IAM-Richtlinie für Storage Transfer Service erstellen und auf den Bucket anwenden
- Wechseln Sie in der AWS-Managementkonsole zur IAM-Seite.
- Klicken Sie auf Richtlinien und dann auf Richtlinie erstellen.
- Klicken Sie im visuellen Editor auf IAM-Richtlinie.
- Klicken Sie auf S3.
Klicken Sie auf die folgenden Kästchen für Zugriffsebene:
- Auflisten
- Lesen
- Schreiben
Klicken Sie im Bereich Ressourcen auf Spezifisch.
Klicken Sie im Bereich Bucket auf ARN hinzufügen.
Geben Sie im Feld Bucket-Name den Namen des Buckets ein, aus dem Sie Daten übertragen möchten.
Klicken Sie auf Richtlinien für Rezensionen und geben Sie einen Namen wie
transfer-user-policy
ein.Klicken Sie auf Richtlinie erstellen.
AWS IAM-Nutzer zu AWS IAM-Richtlinie hinzufügen
- Wechseln Sie in der AWS-Managementkonsole zur IAM-Seite.
- Klicken Sie auf Benutzer und dann auf Benutzer hinzufügen.
- Geben Sie im Feld Name
transfer-user
ein. - Klicken Sie bei Zugriffstyp auf Programmgesteuerter Zugriff und fügen Sie die Richtlinie
transfer-user-policy
hinzu, die Sie für diesen Nutzer erstellt haben. - Nachdem Sie den Nutzer erstellt haben, notieren Sie sich die Zugriffs-ID und den geheimen Schlüssel, da Sie diese später in dieser Anleitung benötigen.
- Klicken Sie auf Speichern.
Cloud Storage-Bucket erstellen
Bevor Sie den VPC Service Controls-Perimeter aktivieren können, müssen Sie einen Cloud Storage-Bucket erstellen.
Wechseln Sie in der Google Cloud Console zum Cloud Storage-Browser.
Klicken Sie auf Bucket erstellen.
Geben Sie im Feld Name einen Namen ein, z. B.
project-id-destination-bucket
, wobeiproject-id
für Ihre Google Cloud-Projekt-ID steht.Legen Sie als Standard-Speicherklasse des Buckets Regional Storage fest.
Klicken Sie in der Drop-down-Liste Speicherort auf eine Region, in der die Bucket-Daten gespeichert sind.
Klicken Sie auf Erstellen.
Name des Dienstkontos für Übertragungsvorgänge finden
Storage Transfer Service verwendet einen Dienst-Agent, um mit Cloud Storage- und Pub/Sub-Ressourcen in Ihrem Projekt zu kommunizieren. Sie müssen den Namen Ihres Dienst-Agents ermitteln, da Sie diesen später in dieser Anleitung benötigen. Wenn Sie den Storage Transfer Service noch nicht verwendet haben, führen Sie die folgenden Schritte aus, um den Storage Transfer Service-Dienst-Agent zu erstellen. Weitere Informationen zu Dienst-Agents finden Sie unter Dienst-Agents.
- Rufen Sie zum Ermitteln des Namens des Dienst-Agents die Seite für die Storage Transfer Service API auf.
Geben Sie im Feld String die Google Cloud-Projekt-ID ein.
Der Name des Dienst-Agents hat normalerweise folgendes Format:
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
Zugriffsrichtlinie in Access Context Manager erstellen
Eine Zugriffsrichtlinie erfasst die Dienstperimeter und Zugriffsebenen, die Sie für Ihre Organisation erstellen. Eine Organisation kann immer nur eine Zugriffsrichtlinie haben.
Öffnen Sie in der Google Cloud Console die Seite Einstellungen.
Notieren Sie sich die Google Cloud-Projekt-ID und den Namen der Organisation.
Erstellen Sie in Cloud Shell eine Richtlinie:
gcloud access-context-manager policies create \ --organization organization-id --title policy-title
organization-id
ist die Organisations-ID, die Sie zuvor ermittelt haben.policy-title
ist der Titel des Perimeters. Beispiel:Example-Company-Access-Policy
Die Ausgabe sieht so aus:
Create request issued Waiting for operation [accessPolicies/policy-title/create/policy-number] to complete...done. Created.
policy-number
steht für eine eindeutige ID, die dem Richtlinientitel zugewiesen wurde.
VPC Service Controls-Perimeter erstellen
Wenn Sie den VPC Service Controls-Perimeter erstellen, wird anfangs kein Datenverkehr zugelassen. Sie erstellen dann eine explizite Zugriffsebene, damit der Übertragungsvorgang Daten in den kontrollierten Perimeter senden kann.
Rufen Sie in der Google Cloud Console die Seite VPC Service Controls auf.
Klicken Sie auf Neuer Perimeter.
Geben Sie im Feld Name einen Namen für den Perimeter ein, z. B.
data-transfer-perimeter
.Behalten Sie die Auswahl Regulärer Perimeter bei.
Klicken Sie auf Projekt hinzufügen und fügen Sie das im Rahmen dieser Anleitung erstellte Projekt der Liste der zu schützenden Projekte hinzu.
Klicken Sie auf Cloud Storage API.
Behalten Sie für Zugriffsebenen den Standardwert bei.
Klicken Sie auf Speichern.
Zugriffsebene in der Zugriffsrichtlinie erstellen
In diesem Abschnitt beschränken Sie den Zugriff auf die VPC über das Dienstkonto.
Erstellen Sie in Cloud Shell eine YAML-Datei mit dem Namen
conditions.yaml
, in der die Hauptkonten aufgelistet sind, denen Sie Zugriff gewähren möchten:- members: - serviceAccount:project-project-number@storage-transfer-service.iam.gserviceaccount.com - user:sysadmin@example.com
Erstellen Sie die Zugriffsebene:
gcloud access-context-manager levels create name \ --title title \ --basic-level-spec ~./conditions.yaml \ --combine-function=OR \ --policy=policy-id
name
ist der eindeutige Name für die Zugriffsebene. Dieser Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Unterstriche enthalten.title
ist ein Titel, der für die Richtlinie eindeutig ist, z. B.trusted-identity-ingest
.policy-id
ist die ID (Nummer) der Zugriffsrichtlinie Ihrer Organisation.combine-function
ist aufOR
gesetzt. Der StandardwertAND
erfordert, dass alle Bedingungen erfüllt sind, bevor eine Zugriffsebene gewährt wird. Mit dem WertOR
wird den Hauptkonten Zugriff gewährt, auch wenn andere Bedingungen wie die IP-Adresse oder die von anderen erforderlichen Zugriffsebenen übernommenen Bedingungen nicht erfüllt sind.
Die Ausgabe sieht etwa so aus:
Create request issued for: name Waiting for operation [accessPolicies/policy-id/accessLevels/name/create/access-level-number] to complete...done. Created level name.
access-level-number steht für eine eindeutige ID, die der Zugriffsebene zugewiesen ist.
Zugriffsebene an VPC Service Controls binden
Wechseln Sie in der Google Cloud Console zu VPC Service Controls.
Klicken Sie bei VPC Service Controls auf Bearbeiten.
Klicken Sie auf Zugriffsebene und wählen Sie die Zugriffsebene
trusted-identity-ingest
aus.Klicken Sie auf Speichern.
Die einzigen Vorgänge, die im kontrollierten Perimeter nun zulässig sind, stammen von dem Dienstkonto, das Sie definiert haben.
Übertragung initiieren
Öffnen Sie in der Google Cloud Console die Seite Übertragung.
Klicken Sie auf Übertragung erstellen.
Klicken Sie auf Amazon S3-Bucket.
Geben Sie im Feld Amazon S3-Bucket den Namen des Amazon S3-Quell-Buckets so ein, wie er in der AWS-Managementkonsole angezeigt wird.
Geben Sie die Zugriffsschlüssel-ID und den geheimen Schlüssel ein, die dem Amazon S3-Bucket zugeordnet sind. Sie haben diese Werte am Anfang dieser Anleitung kopiert.
Geben Sie für Ziel auswählen den Namen des Buckets ein, den Sie in Ihrem Perimeter erstellt haben, z. B.
project-id-destination-bucket
.Legen Sie unter Übertragung konfigurieren für den Übertragungsjob Jetzt ausführen fest.
Optional: Bearbeiten Sie den Namen des Übertragungsjobs.
Verwenden Sie für Beschreibung einen eindeutigen, aussagekräftigen Namen, damit Sie den Übertragungsjob später leichter identifizieren können.
Klicken Sie auf Erstellen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Nächste Schritte
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center
- Zugriffsebenen mit dem Access Context Manager über komplexere Methoden aktivieren