Anwendungsfall: Zugriffssteuerung mit Namespace-Dienstkonten

Auf dieser Seite wird der Anwendungsfall beschrieben, in dem Sie den Zugriff auf Google Cloud Ressourcen auf Namespace-Ebene steuern, wenn Sie Daten aus Cloud Storage nach BigQuery migrieren.

Um den Zugriff auf Google Cloud Ressourcen zu steuern, verwenden Namespaces in Cloud Data Fusion standardmäßig den Cloud Data Fusion API-Dienst-Agent.

Für eine bessere Datenisolation können Sie jedem Namespace ein benutzerdefiniertes IAM-Dienstkonto zuordnen, das als Dienstkonto pro Namespace bezeichnet wird. Mit dem benutzerdefinierten IAM-Dienstkonto, das für verschiedene Namespaces unterschiedlich sein kann, können Sie den Zugriff auf Google Cloud Ressourcen zwischen Namespaces für Pipeline-Designzeitvorgänge in Cloud Data Fusion steuern, z. B. für die Pipeline-Vorschau, Wrangler und die 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 nach BigQuery.

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

Die Marketingabteilung besteht aus drei Teams: A, B und C. Ihr Ziel ist es, einen strukturierten Ansatz zu entwickeln, um den Datenzugriff in Cloud Storage über Cloud Data Fusion-Namespaces zu steuern, die jeweils den Teams A, B und C entsprechen.

Lösung

In den folgenden Schritten wird gezeigt, 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 Identity and Access Management-Dienstkonto zuordnen

Konfigurieren Sie für jedes Team ein IAM-Dienstkonto im Namespace (siehe Dienstkonto für einen Namespace 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 die Cloud Storage-Buckets beschränken

Beschränken Sie den Zugriff auf Cloud Storage-Buckets, indem Sie die entsprechenden Berechtigungen erteilen:

  1. Erteilen Sie dem IAM-Dienstkonto die Berechtigung storage.buckets.list, die erforderlich ist, um Cloud Storage-Buckets im Projekt aufzulisten. Weitere Informationen finden Sie unter Buckets auflisten.
  2. Erteilen Sie dem IAM-Dienstkonto die Berechtigung für den Zugriff auf die Objekte in bestimmten Buckets.

    Erteilen Sie beispielsweise die Rolle Storage-Objekt-Betrachter für den Bucket team_a1 dem IAM-Dienstkonto, das dem Namespace team_A zugeordnet ist. Mit dieser Berechtigung kann Team A Objekte und verwaltete Ordner sowie deren Metadaten in diesem Bucket in einer isolierten Designzeitumgebung ansehen und auflisten.

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

Cloud Storage-Verbindung in den jeweiligen Namespaces erstellen

Erstellen Sie in jedem Namespace des Teams eine Cloud Storage-Verbindung:

  1. Rufen Sie in der Google Cloud console die Seite **Instanzen** von Cloud Data Fusion auf und öffnen Sie eine Instanz in der Cloud Data Fusion-Web oberflä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 Namespace 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.

Designzeitisolation für jeden Namespace validieren

Team A kann die Isolation zur Designzeit validieren, indem es auf Cloud Storage-Buckets in den jeweiligen Namespaces zugreift:

  1. Rufen Sie in der Google Cloud console die Seite **Instanzen** von Cloud Data Fusion auf und öffnen Sie eine Instanz in der Cloud Data Fusion-Web oberfläche.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Systemadministrator > Konfiguration > Namespaces.

  3. Wählen Sie einen Namespace aus, z. B. den Namespace für Team A, team_A.

  4. Klicken Sie auf das 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 Buckets aufrufen, da der Namespace von Team A die Berechtigung storage.buckets.list hat.

    • Wenn Sie auf den Bucket klicken, können Sie seinen Inhalt aufrufen, da der Namespace von Team A die Rolle Storage-Objekt-Betrachter hat.

    Cloud Storage-Verbindung für Team A validieren Prüfen Sie, ob Team A auf die Buckets zugreifen kann.
    Abbildung 4 und 5: Prüfen, ob Team A auf den entsprechenden Storage-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 Dienstkonto des Namespace 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 Storage-Buckets von Team B und C zugreifen kann.

Nächste Schritte

  • Weitere Informationen zu Sicherheits funktionen in Cloud Data Fusion