Daten mit VPC Service Controls und Storage Transfer Service von Amazon S3 zu Cloud Storage übertragen

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.

Das folgende Diagramm zeigt die VPC Service Controls-Architektur.

Grafik: VPC Service Controls-Architektur, bei der die Kommunikation zwischen Google Cloud-Diensten außerhalb des kontrollierten Perimeters verweigert wird

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 dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

Für die Nutzung des Storage Transfer Service entstehen keine zusätzlichen Kosten. Es fallen jedoch die Kosten für Cloud Storage und externe Anbieter an.

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss dieser Anleitung 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:

Hinweis

  1. 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Access Context Manager, Cloud Storage, and Storage Transfer Service APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  7. Access Context Manager, Cloud Storage, and Storage Transfer Service APIs aktivieren.

    Aktivieren Sie die APIs

  8. Aktivieren Sie Cloud Shell in der Cloud Console.

    Cloud Shell aktivieren

    Unten in der Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Cloud SDK einschließlich des gcloud-Befehlszeilentools vorinstalliert ist. Die Werte sind bereits für Ihr aktuelles Projekt festgelegt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  9. Wechseln Sie in der 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"
  10. Die Rolle "Storage-Administrator" hat die folgenden Berechtigungen:

    • firebase.projects.get
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • storage.buckets.*
    • storage.objects.*

    Die Rolle "Access Context Manager-Administrator" hat die folgenden Berechtigungen:

    • accesscontextmanager.accessLevels.*
    • accesscontextmanager.accessPolicies.*
    • accesscontextmanager.accessPolicies.setIamPolicy
    • accesscontextmanager.accessPolicies.update
    • accesscontextmanager.accessZones.*
    • accesscontextmanager.policies.*
    • accesscontextmanager.servicePerimeters.*
    • resourcemanager.organizations.get

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

  1. Wechseln Sie in der AWS-Managementkonsole zur IAM-Seite.
  2. Klicken Sie auf Richtlinien und dann auf Richtlinie erstellen.
  3. Klicken Sie im visuellen Editor auf IAM-Richtlinie.
  4. Klicken Sie auf S3.
  5. Klicken Sie auf die folgenden Kästchen für Zugriffsebene:

    • Auflisten
    • Lesen
    • Schreiben
  6. Klicken Sie im Bereich Ressourcen auf Spezifisch.

  7. Klicken Sie im Bereich Bucket auf ARN hinzufügen.

  8. Geben Sie im Feld Bucket-Name den Namen des Buckets ein, aus dem Sie Daten übertragen möchten.

  9. Klicken Sie auf Richtlinien für Rezensionen und geben Sie einen Namen wie transfer-user-policy ein.

  10. Klicken Sie auf Richtlinie erstellen.

AWS IAM-Nutzer zu AWS IAM-Richtlinie hinzufügen

  1. Wechseln Sie in der AWS-Managementkonsole zur IAM-Seite.
  2. Klicken Sie auf Benutzer und dann auf Benutzer hinzufügen.
  3. Geben Sie im Feld Name transfer-user ein.
  4. 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.
  5. 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.
  6. 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.

  1. Wechseln Sie in der Cloud Console zum Cloud Storage-Browser.

    Zum Cloud Storage-Browser

  2. Klicken Sie auf Bucket erstellen.

  3. Geben Sie im Feld Name einen Namen ein, z. B. project-id-destination-bucket, wobei project-id für Ihre Google Cloud-Projekt-ID steht.

  4. Legen Sie als Standard-Speicherklasse des Buckets Regional Storage fest.

  5. Klicken Sie in der Drop-down-Liste Speicherort auf eine Region, in der die Bucket-Daten gespeichert sind.

  6. Klicken Sie auf Erstellen.

Name des Dienstkontos für Übertragungsvorgänge finden

Storage Transfer Service verwendet ein von Google verwaltetes Dienstkonto, um mit Cloud Storage- und Pub/Sub-Ressourcen in Ihrem Projekt zu kommunizieren. Sie müssen den Namen Ihres Dienstkontos ermitteln, da Sie diesen später in dieser Anleitung benötigen. Wenn Sie den Storage Transfer Service noch nicht verwendet haben, wird Folgendes für Sie erstellt: Weitere Informationen zu von Google verwalteten Dienstkonten finden Sie unter Dienstkonten.

  1. Rufen Sie zum Ermitteln des Namens des Dienstkontos die Seite für die Storage Transfer Service API auf.
  2. Geben Sie im Feld String die Google Cloud-Projekt-ID ein.

    Der Name des Dienstkontos 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.

  1. Rufen Sie in der Cloud Console die Seite Einstellungen auf.

    Zur Seite "Einstellungen"

  2. Notieren Sie sich die Google Cloud-Projekt-ID und den Namen der Organisation.

  3. 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.

  1. Wechseln Sie in der Cloud Console zur Seite VPC Service Controls.

    Zur Seite „VPC Service Controls”

  2. Klicken Sie auf Neuer Perimeter.

  3. Geben Sie im Feld Name einen Namen für den Perimeter ein, z. B. data-transfer-perimeter.

  4. Behalten Sie die Auswahl Regulärer Perimeter bei.

  5. 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.

  6. Klicken Sie auf Cloud Storage API.

  7. Behalten Sie für Zugriffsebenen den Standardwert bei.

  8. Klicken Sie auf Speichern.

Zugriffsebene in der Zugriffsrichtlinie erstellen

In diesem Abschnitt beschränken Sie den Zugriff auf die VPC über das Dienstkonto.

  1. 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
     

  2. 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 auf OR gesetzt. Der Standardwert AND erfordert, dass alle Bedingungen erfüllt sind, bevor eine Zugriffsebene gewährt wird. Mit dem Wert OR 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

  1. Wechseln Sie in der Cloud Console zu VPC Service Controls.

    Zur Seite „VPC Service Controls”

  2. Klicken Sie bei VPC Service Controls auf Bearbeiten.

  3. Klicken Sie auf Zugriffsebene und wählen Sie die Zugriffsebene trusted-identity-ingest aus.

  4. 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

  1. Wechseln Sie in der Cloud Console zur Seite Übertragung.

    Zur Seite "Übertragung"

  2. Klicken Sie auf Übertragung erstellen.

  3. Klicken Sie auf Amazon S3-Bucket.

  4. Geben Sie im Feld Amazon S3-Bucket den Namen des Amazon S3-Quell-Buckets so ein, wie er in der AWS-Managementkonsole angezeigt wird.

  5. 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.

  6. 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.

  7. Legen Sie unter Übertragung konfigurieren für den Übertragungsjob Jetzt ausführen fest.

  8. Optional: Bearbeiten Sie den Namen des Übertragungsjobs.

  9. Verwenden Sie für Beschreibung einen eindeutigen, aussagekräftigen Namen, damit Sie den Übertragungsjob später leichter identifizieren können.

  10. 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

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte