Zugriffssteuerung mit einem Namespace-Dienstkonto

Mit einem Namespace-Dienstkonto in Cloud Data Fusion können Sie während der Pipeline-Entwurfszeit eine detaillierte Zugriffssteuerung zwischen Namespaces erzwingen. Durch die Konfiguration eines dedizierten IAM-Dienstkontos (Identity and Access Management) werden Aktivitäten zur Entwurfszeit wie Wrangler, Pipelinevorschau und Pipelinevalidierung auf bestimmte Google Cloud -Ressourcen beschränkt.

Namespaces in Cloud Data Fusion

Ein Namespace ist eine logische Gruppierung von Anwendungen, Daten und den zugehörigen Metadaten in einer Cloud Data Fusion-Instanz. Sie können sich Namespaces als Partitionierung der Instanz vorstellen. Jede Anwendung oder Daten, die hier als Entität bezeichnet werden, können unabhängig voneinander in mehreren Namespaces vorhanden sein. In einer einzelnen Instanz speichert ein Namespace die Daten und Metadaten einer Entität unabhängig von einem anderen Namespace.

Zugriffssteuerung mit einem Namespace-Dienstkonto

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 (auch als Dienstkonto pro Namespace bezeichnet) zuweisen. 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 Vorgänge zur Pipeline-Entwurfszeit in Cloud Data Fusion steuern, z. B. Pipeline-Vorschau, Wrangler und Pipeline-Validierung.

Vorbereitung

  • Dienstkonten pro Namespace werden in RBAC-fähigen Instanzen in Cloud Data Fusion-Versionen ab 6.10.0 unterstützt.
  • Dienstkonten pro Namespace werden verwendet, um den Zugriff auf Google Cloud -Ressourcen zu steuern und zu verwalten.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Data Fusion-Administrator (roles/datafusion.admin) für die Cloud Data Fusion-Instanz im Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Anpassen von Namespace-Dienstkonten und zum Erteilen von Nutzerberechtigungen innerhalb eines Namespace benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Berechtigungen für Nutzer in einem Namespace verwalten

Wenn Sie Nutzern die erforderlichen Berechtigungen in einem Namespace gewähren möchten, weisen Sie ihnen vordefinierte Cloud Data Fusion-Rollen zu. Weitere Informationen finden Sie unter Vordefinierte Cloud Data Fusion-Rollen, die Nutzern in RBAC-fähigen Instanzen zur Verfügung stehen.

Namespace-Dienstkonto konfigurieren

Console

So konfigurieren Sie ein Dienstkonto für den Namespace:

  1. Wenn Sie noch kein Dienstkonto für den Namespace haben, erstellen Sie eines.
  2. Rufen Sie in der Google Cloud -Konsole die Seite Cloud Data Fusion-Instanzen auf und öffnen Sie eine Instanz in der Cloud Data Fusion-Weboberfläche.

    Zur Seite „VM-Instanzen“

  3. Klicken Sie auf Systemadministrator > Konfiguration > Namespaces.

  4. Klicken Sie auf den Namespace, den Sie konfigurieren möchten.

  5. Klicken Sie auf den Tab Dienstkonten und dann auf Dienstkonto hinzufügen.

    Schaltfläche „Dienstkonto hinzufügen“

  6. Weisen Sie die Rolle „Workload Identity-Nutzer“ (roles/iam.workloadIdentityUser) zu.

    So weisen Sie die Rolle zu:

    1. Geben Sie im Feld Dienstkonto für Pipeline-Design die E-Mail-Adresse des Dienstkontos ein, z. B. SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.
    2. Folgen Sie der Anleitung im angezeigten Dialogfeld.
  7. Kehren Sie zum Namespace Ihrer Cloud Data Fusion-Instanz zurück und klicken Sie auf Speichern, um die Dienstkontokonfiguration abzuschließen.

  8. Wiederholen Sie die Schritte, um für jeden Namespace ein Dienstkonto zu konfigurieren.

REST API

  1. Weisen Sie die Rolle „Workload Identity-Nutzer“ (roles/iam.workloadIdentityUser) zu.

    So weisen Sie die Rolle zu:

    1. Legen Sie die folgenden Umgebungsvariablen fest:

      export TENANT_PROJECT_ID=TENANT_PROJECT
      export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
      

      Ersetzen Sie Folgendes:

      • TENANT_PROJECT: die Mandantenprojekt-ID. Rufen Sie dazu die Seite Instanzen auf und klicken Sie auf den Instanznamen. Die ID wird auf der Seite Instanzdetails angezeigt.

        Zur Seite „VM-Instanzen“

      • SERVICE_ACCOUNT_PROJECT: dieGoogle Cloud Projekt-ID, in der sich das IAM-Dienstkonto befindet.

    2. Weisen Sie die Rolle „Workload Identity-Nutzer“ zu:

      gcloud iam service-accounts add-iam-policy-binding \
          --role roles/iam.workloadIdentityUser
          --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \
          --project ${GSA_PROJECT_ID}
      

      Ersetzen Sie Folgendes:

      • NAMESPACE_IDENTITY: die Identität des Namespace. Weitere Informationen finden Sie unter Details eines Namespace.

      • SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des Dienstkontos, z. B. SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

  2. Validieren Sie die E-Mail-Adresse des Namespace-Dienstkontos aus dem vorherigen Schritt. Legen Sie environment variables fest und führen Sie dann den folgenden Befehl aus:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Ersetzen Sie Folgendes:

    • NAMESPACE_NAME: die ID des Namespace.
    • SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des IAM-Dienstkontos, die Sie im Namespace festlegen möchten.
  3. Legen Sie das Namespace-Dienstkonto fest. Legen Sie environment variables fest und führen Sie dann den folgenden Befehl aus:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

Namespace-Dienstkonto bearbeiten

Console

So bearbeiten Sie ein Namespace-Dienstkonto:

  1. Klicken Sie in Ihrer Cloud Data Fusion-Instanz auf Systemadministrator > Konfiguration > Namespaces.
  2. Klicken Sie auf den Namespace mit dem Dienstkonto, das Sie bearbeiten möchten.
  3. Wenn Sie das Dienstkonto bearbeiten möchten, rufen Sie den Tab Dienstkonten auf. Klicken Sie neben dem Namen des Dienstkontos auf Menü > Bearbeiten.
  4. Folgen Sie der Anleitung zum Konfigurieren eines Namespace-Dienstkontos.

REST API

So bearbeiten Sie ein Namespace-Dienstkonto:

  1. Legen Sie die environment variables fest und führen Sie dann den folgenden Befehl aus:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Ersetzen Sie Folgendes:

    • NAMESPACE_NAME: die ID des Namespace.
    • SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des IAM-Dienstkontos, die Sie im Namespace festlegen möchten.

Namespace-Dienstkonto löschen

Console

So löschen Sie ein Namespace-Dienstkonto aus einem Namespace:

  1. Klicken Sie in Ihrer Cloud Data Fusion-Instanz auf Systemadministrator > Konfiguration > Namespaces.
  2. Klicken Sie auf den Namespace, der das Dienstkonto enthält, das Sie löschen möchten.
  3. Wenn Sie das Dienstkonto entfernen möchten, rufen Sie den Tab Dienstkonten auf. Klicken Sie neben dem Namen des Dienstkontos auf Menü > Löschen.

REST API

So löschen Sie ein Namespace-Dienstkonto aus einem Namespace:

  1. Legen Sie die environment variables fest und führen Sie dann den folgenden Befehl aus:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
    

    Ersetzen Sie Folgendes:

    • NAMESPACE_NAME: die ID des Namespace.

Namespace-Dienstkonto abrufen

Console

So rufen Sie Dienstkontoinformationen für den Namespace ab:

  1. Rufen Sie in der Google Cloud -Konsole 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 einen Namespace-Namen, um die Details des Dienstkontos aufzurufen.

REST API

So rufen Sie den Namen des Namespace-Dienstkontos ab:

  1. Legen Sie die environment variables fest und führen Sie dann den folgenden Befehl aus:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
    

    Ersetzen Sie Folgendes:

    • NAMESPACE_NAME: die ID des Namespace.

    Bei Erfolg erhalten Sie die E-Mail-Adresse des Dienstkontos in der folgenden Antwort:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

Nächste Schritte