Anwendungsfall: Zugriffssteuerung mit Namespace-Dienstkonten

Auf dieser Seite wird der Anwendungsfall beschrieben, bei dem Sie den Zugriff auf Google Cloud Ressourcen auf Namespaceebene steuern, wenn Sie Daten von Cloud Storage zu BigQuery migrieren.

Für die Zugriffssteuerung auf Google Cloud Ressourcen verwenden Namespaces in Cloud Data Fusion standardmäßig den Cloud Data Fusion API-Dienst-Agent.

Für eine bessere Datenisolierung können Sie jedem Namespace ein benutzerdefiniertes IAM-Dienstkonto zuordnen (Dienstkonto pro Namespace). Mit dem benutzerdefinierten IAM-Dienstkonto, das für verschiedene Namespaces unterschiedlich sein kann, können Sie den Zugriff aufGoogle Cloud -Ressourcen zwischen Namespaces für Pipeline-Designvorgänge in Cloud Data Fusion steuern, z. B. Pipeline-Vorschau, Wrangler und Pipeline-Validierung.

Weitere Informationen finden Sie unter Zugriffssteuerung mit Namespace-Dienstkonten.

Szenario

In diesem Anwendungsfall migriert Ihre Marketingabteilung Daten mit Cloud Data Fusion aus Cloud Storage in BigQuery.

Datenpipeline mit Cloud Storage-Quelle, Wrangler-Transformation und BigQuery-Senke

Die Marketingabteilung hat drei Teams: A, B und C. Ihr Ziel besteht darin, einen strukturierten Ansatz zur Steuerung des Datenzugriffs in Cloud Storage über Cloud Data Fusion-Namespaces zu entwickeln, die den einzelnen Teams A, B und C entsprechen.

Lösung

In den folgenden Schritten wird beschrieben, wie Sie den Zugriff auf Google Cloud Ressourcen mit Namespace-Dienstkonten steuern und so unbefugten Zugriff zwischen den Datenspeichern verschiedener Teams verhindern.

Jedem Namespace ein IAM-Dienstkonto zuordnen

Konfigurieren Sie für jedes Team ein IAM-Dienstkonto im Namespace (siehe Namespace-Dienstkonto konfigurieren):

  1. Richten Sie die Zugriffssteuerung ein, indem Sie ein benutzerdefiniertes Dienstkonto für Team A hinzufügen, z. B. team-a@pipeline-design-time-project.iam.gserviceaccount.com.

    Konfigurieren Sie ein Dienstkonto für Team A.
    Abbildung 1: Benutzerdefiniertes Dienstkonto für Team A hinzufügen
  2. Wiederholen Sie die Konfigurationsschritte für die Teams B und C, um die Zugriffssteuerung mit ähnlichen benutzerdefinierten Dienstkonten einzurichten.

Zugriff auf Cloud Storage-Buckets einschränken

Begrenzen Sie den Zugriff auf Cloud Storage-Buckets, indem Sie die entsprechenden Berechtigungen erteilen:

  1. Gewähren Sie dem IAM-Dienstkonto die Berechtigung storage.buckets.list, die zum Auflisten von Cloud Storage-Buckets im Projekt erforderlich ist. Weitere Informationen finden Sie unter Listen-Buckets.
  2. Gewähren Sie dem IAM-Dienstkonto die Berechtigung zum Zugriff auf die Objekte in bestimmten Buckets.

    Weisen Sie beispielsweise dem IAM-Dienstkonto, das mit dem Namespace team_A im Bucket team_a1 verknüpft ist, die Rolle Storage-Objekt-Betrachter zu. Mit dieser Berechtigung kann Team A Objekte und verwaltete Ordner sowie deren Metadaten in diesem Bucket in einer isolierten Designzeitumgebung aufrufen und auflisten.

    Weisen Sie die Rolle auf der Seite „Bucket-Details“ zu.
    Abbildung 2: Fügen Sie das Team auf der Seite Cloud Storage-Buckets als Principal hinzu und weisen Sie ihm die Rolle „Storage-Objekt-Nutzer“ zu.

Cloud Storage-Verbindung in den jeweiligen Namespaces erstellen

Erstellen Sie eine Cloud Storage-Verbindung im Namespace jedes Teams:

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Data Fusion-Instanzen auf und öffnen Sie eine Instanz in der Cloud Data Fusion-Weboberfläche.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Systemadministrator > Konfiguration > Namespaces.

  3. Klicken Sie auf den gewünschten Namespace, z. B. den Namespace für Team A.

  4. Klicken Sie auf den Tab Verbindungen und dann auf Verbindung hinzufügen.

  5. Wählen Sie GCS aus und konfigurieren Sie die Verbindung.

    Cloud Storage-Verbindung in Cloud Data Fusion erstellen
    Abbildung 3: Cloud Storage-Verbindung für den Namensbereich konfigurieren
  6. Erstellen Sie für jeden Namespace eine Cloud Storage-Verbindung, indem Sie die vorherigen Schritte wiederholen. Jedes Team kann dann für seine Designzeitvorgänge mit einer isolierten Kopie dieser Ressource interagieren.

Isolierung zur Laufzeit für jeden Namespace prüfen

Team A kann die Isolation bei der Entwicklung prüfen, indem es auf Cloud Storage-Buckets in den jeweiligen Namespaces zugreift:

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Data Fusion-Instanzen auf und öffnen Sie eine Instanz in der Cloud Data Fusion-Weboberfläche.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Systemadministrator > Konfiguration > Namespaces.

  3. Wählen Sie einen Namespace aus, z. B. den Namespace „Team A“, team_A.

  4. Klicken Sie auf  und dann auf das Dreistrich-Menü > Wrangler.

  5. Klicken Sie auf GCS.

  6. Klicken Sie in der Bucket-Liste auf den Bucket team_a1.

    • Sie können die Liste der Bucket ansehen, da der Namespace „Team A“ die Berechtigung storage.buckets.list hat.

    • Wenn Sie auf den Bucket klicken, können Sie sich seinen Inhalt ansehen, da der NameSpace von Team A die Rolle „Storage-Objekt-Betrachter“ hat.

    Prüfen Sie die Cloud Storage-Verbindung für Team A. Prüfen Sie, ob Team A auf die Bucket zugreifen kann.
    Abbildungen 4 und 5: Prüfen Sie, ob Team A auf den entsprechenden Speicher-Bucket zugreifen kann.
  7. Kehren Sie zur Bucket-Liste zurück und klicken Sie auf den Bucket team_b1 oder team_c1. Der Zugriff ist eingeschränkt, da Sie diese Designzeitressource für Team A mit dem Namespace-Dienstkonto isoliert haben.

    Prüfen Sie, ob Team A nicht auf eingeschränkte Ressourcen zugreifen kann.
    Abbildung 6: Prüfen, ob Team A nicht auf die Speicher-Buckets von Team B und C zugreifen kann.

Nächste Schritte