Anwendungsfall: Zugriffssteuerung für einen Dataproc-Cluster in einem anderen Projekt

Auf dieser Seite wird beschrieben, wie Sie die Zugriffssteuerung verwalten, wenn Sie eine Pipeline bereitstellen und ausführen, die Dataproc-Cluster in einem anderen Google Cloud-Projekt verwendet.

Szenario

Wenn eine Cloud Data Fusion-Instanz in einem Google Cloud-Projekt gestartet wird, werden standardmäßig Pipelines mithilfe von Dataproc-Clustern im selben Projekt bereitgestellt und ausgeführt. Ihre Organisation erfordern, dass Sie Cluster in einem anderen Projekt verwenden. In diesem Fall müssen Sie den Zugriff zwischen den Projekten verwalten. Auf der folgenden Seite wird beschrieben, wie Sie die Baseline (Standardkonfigurationen) ändern und die entsprechenden Zugriffssteuerungen anwenden.

Hinweise

Für die Lösungen in diesem Anwendungsfall ist der folgende Kontext erforderlich:

Annahmen und Umfang

Dieser Anwendungsfall hat folgende Anforderungen:

  • Eine private Cloud Data Fusion-Instanz. Aus Sicherheitsgründen kann eine Organisation verlangen, dass Sie diese Art von Instanz verwenden.
  • Eine BigQuery-Quelle und -Senke.
  • Zugriffssteuerung mit IAM, keine rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC).

Lösung

Bei dieser Lösung werden die Architektur und Konfiguration der Baseline mit denen des Anwendungsfalls verglichen.

Architektur

In den folgenden Diagrammen wird die Projektarchitektur zum Erstellen einer Cloud Data Fusion-Instanz und zum Ausführen von Pipelines verglichen, wenn Sie Cluster im selben Projekt (Baseline) und in einem anderen Projekt über die VPC des Mandantenprojekts verwenden.

Referenzarchitektur

Dieses Diagramm zeigt die grundlegende Architektur der Projekte:

Mandanten-, Kunden- und Dataproc-Projektarchitektur in Cloud Data Fusion

Für die Baseline-Konfiguration erstellen Sie eine private Cloud Data Fusion-Instanz und führen eine Pipeline ohne zusätzliche Anpassungen aus:

  • Sie verwenden eines der integrierten Compute-Profile.
  • Quell- und Senkenobjekt befinden sich im selben Projekt wie die Instanz
  • Den Dienstkonten wurden keine zusätzlichen Rollen gewährt

Weitere Informationen zu Mandanten- und Kundenprojekten finden Sie unter Netzwerk.

Anwendungsfallarchitektur

Dieses Diagramm zeigt die Projektarchitektur, wenn Sie Cluster in einem anderen Projekt:

Architektur von Mandanten-, Kunden- und Dataproc-Projekten in Cloud Data Fusion

Konfigurationen

In den folgenden Abschnitten werden die Basiskonfigurationen mit dem Anwendungsfall verglichen Konfigurationen für die Verwendung von Dataproc-Clustern in ein anderes Projekt über die Standard-VPC des Mandantenprojekts.

In den folgenden Anwendungsfallbeschreibungen wird die Cloud Data Fusion-Instanz im Kundenprojekt ausgeführt und der Dataproc-Cluster wird im Dataproc-Projekt gestartet.

VPC und Instanz des Mandantenprojekts

Referenz Anwendungsfall
Im obigen Referenzarchitekturdiagramm enthält das Mandantenprojekt enthält die folgenden Komponenten:
  • Die Standard-VPC, die automatisch erstellt wird.
  • Die physische Bereitstellung der Cloud Data Fusion-Instanz.
Für diesen Anwendungsfall ist keine zusätzliche Konfiguration erforderlich.

Kundenprojekt

Referenz Anwendungsfall
In Ihrem Google Cloud-Projekt stellen Sie Pipelines bereit und führen sie aus. Standardmäßig werden die Dataproc-Cluster in diesem wenn Sie Ihre Pipelines ausführen. In diesem Anwendungsfall verwalten Sie zwei Projekte. Auf dieser Seite bezieht sich das Kundenprojekt auf den Ort, an dem die Cloud Data Fusion-Instanz ausgeführt wird.
Das Dataproc-Projekt bezieht sich auf in dem die Dataproc-Cluster gestartet werden.

Kunden-VPC

Referenz Anwendungsfall

Aus Ihrer Sicht (der des Kunden) befindet sich Cloud Data Fusion logisch im VPC des Kunden.


Zusammenfassung
: Die Details zum VPC des Kunden finden Sie auf der Seite „VPC-Netzwerke“ Ihres Projekts.

Zur Seite „VPC-Netzwerke“

Für diesen Anwendungsfall ist keine zusätzliche Konfiguration erforderlich.

Subnetz von Cloud Data Fusion

Referenz Anwendungsfall

Aus Ihrer Sicht (der des Kunden) befindet sich Cloud Data Fusion logisch in diesem Subnetz.


Zusammenfassung
: Die Region dieses Subnetzes stimmt mit dem Speicherort der Cloud Data Fusion-Instanz im Mandantenprojekt überein.
Für diesen Anwendungsfall ist keine zusätzliche Konfiguration erforderlich.

Dataproc-Subnetz

Referenz Anwendungsfall

Das Subnetz, in dem Dataproc-Cluster gestartet werden, wenn Sie eine Pipeline ausführen.


Zusammenfassung:
  • Für diese Basiskonfiguration wird Dataproc ausgeführt in im selben Subnetz wie die Cloud Data Fusion-Instanz.
  • Cloud Data Fusion sucht ein Subnetz in derselben Region wie die Instanz und das Subnetz von Cloud Data Fusion. Wenn es in dieser Region nur ein Subnetz gibt, sind die Subnetze identisch.
  • Das Dataproc-Subnetz muss Privater Google-Zugriff.

Dies ist ein neues Subnetz, in dem Dataproc-Cluster wenn Sie eine Pipeline ausführen.


Zusammenfassung:
  • Aktivieren Sie für dieses neue Subnetz den privaten Google-Zugriff.
  • Das Dataproc-Subnetz muss sich nicht am selben Standort wie die Cloud Data Fusion-Instanz befinden.

Quellen und Senken

Referenz Anwendungsfall

Die Quellen, in denen Daten extrahiert werden, und Senken, in die die Daten geladen werden, wie BigQuery-Quellen und -Senken.


Wichtigste Erkenntnisse:
  • Die Jobs, die Daten abrufen und laden, müssen im selben Standort als Dataset angeben, sonst tritt ein Fehler auf.
Die nutzungsspezifischen Zugriffssteuerungskonfigurationen auf dieser Seite gelten für BigQuery-Quellen und -Ziele.

Cloud Storage

Referenz Anwendungsfall

Der Speicher-Bucket im Kundenprojekt, der die Übertragung von Dateien zwischen Cloud Data Fusion und Dataproc unterstützt.


Zusammenfassung:
  • Sie können diesen Bucket über die Cloud Data Fusion-Weboberfläche in den Einstellungen für das Compute-Profil für sitzungsspezifische Cluster angeben.
  • Für Batch- und Echtzeitpipelines oder Replikationsjobs: Wenn Sie im Compute-Profil keinen Bucket angeben, Cloud Data Fusion erstellt einen Bucket im selben Projekt wie die für diesen Zweck verwenden.
  • Auch für statische Dataproc-Cluster in dieser Referenz Konfiguration ist, wird der Bucket von Cloud Data Fusion erstellt und unterscheidet sich von Dataproc-Staging und temporären Buckets.
  • Cloud Data Fusion API-Dienst-Agent hat integrierte Berechtigungen zum Erstellen dieses Buckets im Projekt mit der Cloud Data Fusion-Instanz.
Für diesen Anwendungsfall ist keine zusätzliche Konfiguration erforderlich.

Von Quelle und Senke verwendete temporäre Buckets

Referenz Anwendungsfall

Die temporären Buckets, die von Plug-ins für Ihre Quellen und Senken erstellt wurden, z. B. die vom BigQuery-Senken-Plug-in initiierten Jobs.


Zusammenfassung:
  • Sie können diese Buckets beim Konfigurieren der Quelle und der Senke definieren Plug-in-Attribute festlegen.
  • Wenn Sie keinen Bucket definieren, wird ein Bucket im selben Projekt erstellt in dem Dataproc ausgeführt wird.
  • Wenn das Dataset multiregional ist, wird der Bucket im selben Umfang.
  • Wenn Sie in der Plug-in-Konfiguration einen Bucket definieren, muss der Bucket mit der Region des Datasets übereinstimmen.
  • Wenn Sie in den Plug-in-Konfigurationen keinen Bucket definieren, wird der für Sie erstellte Bucket gelöscht, wenn die Pipeline abgeschlossen ist.
Für diesen Anwendungsfall kann der Bucket in einem beliebigen Projekt erstellt werden.

Buckets, die Datenquellen oder Datensenken für Plug-ins sind

Referenz Anwendungsfall
Kunden-Buckets, die Sie in den Konfigurationen für Plug-ins angeben, z. B. das Cloud Storage-Plug-in und das FTP-zu-Cloud Storage-Plug-in. Für diesen Anwendungsfall ist keine zusätzliche Konfiguration erforderlich.

IAM: Cloud Data Fusion API-Dienst-Agent

Referenz Anwendungsfall

Wenn die Cloud Data Fusion API aktiviert ist, wird die Rolle Cloud Data Fusion API-Dienst-Agent (roles/datafusion.serviceAgent) automatisch dem Cloud Data Fusion-Dienstkonto, dem primären Dienst-Agent, zugewiesen.


Zusammenfassung:
  • Die Rolle enthält Berechtigungen für Dienste im selben Projekt wie wie BigQuery und Dataproc nutzen. Informationen zu allen unterstützten Diensten finden Sie in den Rollendetails.
  • Das Cloud Data Fusion-Dienstkonto führt Folgendes aus:
    • Kommunikation der Datenebene (Pipelinedesign und -ausführung) mit andere Dienste nutzen (z. B. die Kommunikation mit Cloud Storage, BigQuery und Datastream zum Designzeitpunkt).
    • Stellt Dataproc-Cluster bereit.
  • Wenn Sie von einer Oracle-Quelle replizieren, ist dieses Dienstkonto müssen auch die Rollen „Datastream Admin“ und „Storage Admin“ in in dem der Job ausgeübt wird. Diese Seite befasst sich nicht und Replikation.

Weisen Sie für diesen Anwendungsfall dem Dienstkonto im Dataproc-Projekt die Rolle „Cloud Data Fusion API-Dienst-Agent“ zu. Weisen Sie dann die folgenden Rollen in diesem Projekt zu:

  • Rolle "Compute-Netzwerknutzer"
  • Rolle „Dataproc-Bearbeiter“

IAM: Dataproc-Dienstkonto

Referenz Anwendungsfall

Das Dienstkonto, mit dem die Pipeline als Job innerhalb des Dataproc-Clusters ausgeführt wird. Standardmäßig ist dies das Compute Engine-Dienstkonto.


Optional: In der Baseline-Konfiguration können Sie das Standarddienstkonto in ein anderes Dienstkonto aus demselben Projekt ändern. Erteilen die folgenden IAM-Rollen für das neue Dienstkonto:

  • Die Rolle „Cloud Data Fusion-Ausführer“. Mit dieser Rolle kann Dataproc mit der Cloud Data Fusion API kommunizieren.
  • Die Dataproc-Worker-Rolle. Mit dieser Rolle können die Jobs Dataproc-Cluster
Zusammenfassung:
  • Dem API-Agent-Dienstkonto für den neuen Dienst muss die Rolle „Dienstkontonutzer“ für das Dataproc-Dienstkonto zugewiesen werden, damit der Service API-Agent damit Dataproc-Cluster starten kann.

In diesem Anwendungsfall wird davon ausgegangen, dass Sie die Standardeinstellung Compute Engine-Dienstkonto (PROJECT_NUMBER-compute@developer.gserviceaccount.com) des Dataproc-Projekts.


Weisen Sie dem Standard-Compute Engine-Dienstkonto im Dataproc-Projekt die folgenden Rollen zu.

  • Die Dataproc-Worker-Rolle
  • Die Rolle „Storage Admin“ (oder mindestens die Rolle „Storage Admin“ „storage.buckets.create“), um Dataproc zuzulassen Temporäre Buckets für BigQuery erstellen
  • Rolle „BigQuery-Jobnutzer“ Mit dieser Rolle können Ladejobs in Dataproc erstellt werden. Die Jobs werden standardmäßig im Dataproc-Projekt erstellt.
  • Rolle „BigQuery-Dataset-Bearbeiter“. Mit dieser Rolle können Dataproc erstellt beim Laden von Daten Datasets.

Cloud Data Fusion die Rolle „Dienstkontonutzer“ zuweisen Dienstkonto im Compute Engine-Standarddienstkonto von das Dataproc-Projekt. Diese Aktion muss im Dataproc-Projekt

Fügen Sie dem Cloud Data Fusion-Projekt das standardmäßige Compute Engine-Dienstkonto des Dataproc-Projekts hinzu. Gewähren Sie außerdem die folgenden Rollen:

  • Die Rolle „Storage Object Viewer“, um Pipeline-Job-bezogene Artefakte aus dem Cloud Data Fusion-Nutzer-Bucket abzurufen.
  • Cloud Data Fusion-Ausführerrolle, damit der Dataproc-Cluster während des Betriebs mit Cloud Data Fusion kommunizieren kann.

APIs

Referenz Anwendungsfall
Wenn Sie die Cloud Data Fusion API aktivieren, werden auch die folgenden APIs aktiviert. Weitere Informationen zu diesen APIs finden Sie in Ihrem Projekt auf der Seite „APIs & Dienste“.

Zu „APIs und Dienste“

  • Cloud Autoscaling API
  • Dataproc API
  • Cloud Dataproc-Steuerungs-API
  • Cloud DNS API
  • Cloud OS Login API
  • Pub/Sub API
  • Compute Engine API
  • Container Filesystem API
  • Container Registry API
  • Service Account Credentials API
  • Identity and Access Management API
  • Google Kubernetes Engine API

Wenn Sie die Cloud Data Fusion API aktivieren, wird der folgende Dienst Konten werden Ihrem Projekt automatisch hinzugefügt:

  • Google APIs-Dienst-Agent
  • Compute Engine-Dienst-Agent
  • Kubernetes Engine-Dienst-Agent
  • Google Container Registry-Dienst-Agent
  • Google Cloud Dataproc-Dienst-Agent
  • Cloud KMS-Dienst-Agent
  • Cloud Pub/Sub-Dienstkonto
Aktivieren Sie für diesen Anwendungsfall die folgenden APIs im Projekt, das das Dataproc-Projekt enthält:
  • Compute Engine API
  • Dataproc API (in diesem Projekt wahrscheinlich bereits aktiviert) Die Dataproc Control API wird automatisch aktiviert, wenn Sie Aktivieren Sie die Dataproc API.
  • Resource Manager API

Verschlüsselungsschlüssel

Referenz Anwendungsfall

In der Baseline-Konfiguration können Verschlüsselungsschlüssel von Google verwaltet oder CMEK sein.


Zusammenfassung:

Wenn Sie CMEK verwenden, sind für die Baseline-Konfiguration folgende Voraussetzungen erforderlich:

  • Der Schlüssel muss regional sein und in derselben Region erstellt werden wie der Schlüssel Cloud Data Fusion-Instanz.
  • Gewähren Sie dem Nutzer die Rolle „Cloud KMS CryptoKey Encrypter/Decrypter“ folgenden Dienstkonten auf Schlüsselebene (nicht auf der IAM-Seite der Google Cloud Console) im Projekt wo es erstellt wird:
    • Cloud Data Fusion API-Dienstkonto
    • Dataproc-Dienstkonto, also das Compute Engine-Konto, Engine-Dienst-Agent (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com) standardmäßig
    • Google Cloud Dataproc-Dienst-Agent (service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com)
    • Cloud Storage-Dienst-Agent (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

Je nach den in Ihrer Pipeline verwendeten Diensten, z. B. BigQuery oder Cloud Storage, müssen Dienstkonten auch die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ zugewiesen werden:

  • Das BigQuery-Dienstkonto (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • Pub/Sub-Dienstkonto (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • Das Spanner-Dienstkonto (service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com)

Wenn Sie CMEK nicht verwenden, sind für diesen Anwendungsfall keine weiteren Änderungen erforderlich.

Wenn Sie CMEK verwenden, muss die Rolle „Cloud KMS CryptoKey Encrypter/Decrypter“ für das folgende Dienstkonto auf Schlüsselebene im Projekt erstellen, in dem es erstellt wird:

  • Cloud Storage-Dienst-Agent (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

Je nach den in Ihrer Pipeline verwendeten Diensten, z. B. BigQuery oder Cloud Storage, muss auch anderen Dienstkonten die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ auf Schlüsselebene zugewiesen werden. Beispiel:

  • BigQuery-Dienstkonto (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • Pub/Sub-Dienstkonto (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • Das Spanner-Dienstkonto (service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com)

Nachdem Sie diese anwendungsfallspezifischen Konfigurationen vorgenommen haben, kann Ihre Datenpipeline auf Clustern in einem anderen Projekt ausgeführt werden.

Nächste Schritte