Zugriffssteuerung mit IAM

Auf dieser Seite werden Optionen für die Zugriffssteuerung in Cloud Data Fusion beschrieben.

Sie können den Zugriff auf Ressourcen in Cloud Data Fusion auf folgende Arten steuern:

  • Wenn Sie den Zugriff für Vorgänge auf der Steuerungsebene steuern möchten, z. B. das Erstellen und Aktualisieren von Instanzen über die Google Cloud Console, die Google Cloud CLI und die REST API, verwenden Sie die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), wie auf dieser Seite beschrieben.

  • Verwenden Sie IAM, um einem Dienstkonto, in dem Pipelines ausgeführt werden, Zugriff auf Google Cloud-Datendienste wie BigQuery oder Cloud Storage zu gewähren.

  • Verwenden Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC), um detaillierte Berechtigungen für Aktionen zu steuern, die in der Instanz ausgeführt werden (sogenannte Vorgänge auf der Datenebene), z. B. das Starten von Pipelines. Weitere Informationen finden Sie in der Übersicht zu RBAC.

Informationen zur Architektur und zu den Ressourcen der Zugriffssteuerung von Cloud Data Fusion finden Sie unter Netzwerk. Informationen zum Gewähren von Rollen und Berechtigungen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

IAM in Cloud Data Fusion

Sie steuern den Zugriff auf Cloud Data Fusion-Features, indem Sie Dienstkonten und anderen Hauptkonten in Ihrem Google Cloud-Projekt IAM-Rollen und -Berechtigungen gewähren.

Sie können RBAC verwenden, um Nutzerkonten detailgenauen Zugriff zu gewähren, damit diese die Cloud Data Fusion-Weboberfläche verwenden können.

Standardmäßig verwendet Cloud Data Fusion die folgenden Dienstkonten:

Cloud Data Fusion-Dienstkonto

Das Cloud Data Fusion-Dienstkonto ist ein von Google verwalteter Dienst-Agent, der bei der Entwicklung der Pipeline auf Kundenressourcen zugreifen kann. Dieser Dienst-Agent wird einem Projekt automatisch hinzugefügt, wenn Sie die Cloud Data Fusion API aktivieren. Er wird für alle Instanzen im Projekt verwendet.

Der Dienst-Agent hat folgende Verantwortlichkeiten:

  • Während des Pipelinedesigns mit anderen Diensten wie Cloud Storage, BigQuery oder Datastream kommunizieren

  • Ausführung durch Bereitstellen von Dataproc-Clustern und Senden von Pipelinejobs aktivieren

Rollen für das Cloud Data Fusion-Dienstkonto

Standardmäßig hat das Cloud Data Fusion-Dienstkonto nur die Rolle Cloud Data Fusion API-Dienst-Agent (roles/datafusion.serviceAgent).

Der Prinzipalname für diesen Dienst-Agent lautet service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.

Die folgenden Standardressourcen sind der Rolle „Dienst-Agent“ der Cloud Data Fusion API zugeordnet.

Rolle Ressource Berechtigungen
Cloud Data Fusion API-Dienst-Agent Verknüpfte Dienste:
  • BigQuery
  • Bigtable
  • Compute Engine
  • Dataproc
  • Cloud DNS
  • Firebase
  • Cloud Monitoring
  • Network Connectivity
  • Network Service Integration Manager
  • Network Services API
  • Unternehmensrichtlinien
  • Recommender API
  • Cloud Resource Manager API
  • Dienstnetzwerk
  • Service Usage
  • Spanner
  • Cloud Storage
  • Traffic Director
Weitere Informationen finden Sie unter Cloud Data Fusion API-Dienst-Agent-Berechtigungen.

Standarddienstkonto oder benutzerdefiniertes Compute Engine-Dienstkonto

Das Compute Engine-Dienstkonto ist das Standardkonto, das Cloud Data Fusion zum Bereitstellen und Ausführen von Jobs verwendet, die auf andere Google Cloud-Ressourcen zugreifen. Standardmäßig wird es an eine Dataproc-Cluster-VM angehängt, damit Cloud Data Fusion während einer Pipelineausführung auf Dataproc-Ressourcen zugreifen kann.

Sie können ein benutzerdefiniertes Dienstkonto auswählen, das an den Dataproc-Cluster angehängt wird, wenn Sie eine Cloud Data Fusion-Instanz oder neue Compute-Profile in der Cloud Data Fusion-Weboberfläche erstellen.

Weitere Informationen finden Sie unter Dienstkonten in Cloud Data Fusion.

Rollen für das Compute Engine-Dienstkonto

Wenn Sie eine Pipeline ausführen, verwendet Cloud Data Fusion standardmäßig das Compute Engine-Standarddienstkonto, um auf Ressourcen wie Quellen und Senken zuzugreifen.

Sie können ein nutzerverwaltetes benutzerdefiniertes Dienstkonto für Cloud Data Fusion-Instanzen einrichten und diesem Konto eine Rolle zuweisen. Anschließend können Sie dieses Dienstkonto beim Erstellen neuer Instanzen auswählen.

Cloud Data Fusion-Runner-Rolle

Gewähren Sie in dem Projekt, das die Cloud Data Fusion-Instanz enthält, sowohl für Standard- als auch für nutzerverwaltete benutzerdefinierte Dienstkonten die Rolle „Cloud Data Fusion-Runner“ (datafusion.runner).

Rolle Beschreibung Berechtigung
Data Fusion-Ausführer (datafusion.runner) Ermöglicht dem Compute Engine-Dienstkonto die Kommunikation mit Cloud Data Fusion-Diensten im Mandantenprojekt datafusion.instances.runtime

Rolle "Dienstkontonutzer"

Weisen Sie dem Cloud Data Fusion-Dienstkonto die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) für das Standard- oder nutzerverwaltete Dienstkonto in dem Projekt zu, in dem Dataproc-Cluster beim Ausführen von Pipelines gestartet werden.

Weitere Informationen finden Sie unter Dienstkontoberechtigung erteilen.

Dataproc-Worker-Rolle

Zum Ausführen der Jobs in Dataproc-Clustern müssen Sie den Standard- oder nutzerverwalteten Dienstkonten, die von Ihren Cloud Data Fusion-Pipelines verwendet werden, die Dataproc-Worker-Rolle (roles/dataproc.worker) zuweisen.

Rollen für Nutzer

Zum Auslösen eines Vorgangs in Cloud Data Fusion benötigen Sie (das Hauptkonto) ausreichende Berechtigungen. Einzelne Berechtigungen sind in Rollen gruppiert und Sie weisen diesem Hauptkonto Rollen zu.

Wenn RBAC nicht aktiviert ist oder Sie eine Cloud Data Fusion-Version verwenden, die RBAC nicht unterstützt, haben Nutzer mit einer Cloud Data Fusion-IAM-Rolle vollständigen Zugriff auf die Cloud Data Fusion-Weboberfläche. Mit der Rolle „Administrator“ können Nutzer nur die Instanz verwalten, z. B. Create-, Update-, Upgrade- und Delete-Vorgänge.

Weisen Sie Hauptkonten die folgenden Rollen zu, je nach den Berechtigungen, die sie in Cloud Data Fusion benötigen.

Rolle Beschreibung Berechtigungen
Cloud Data Fusion-Administrator (roles/datafusion.admin) Alle Berechtigungen des Betrachters sowie Berechtigungen zum Erstellen, Aktualisieren und Löschen von Cloud Data Fusion-Instanzen.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.instances.create
  • datafusion.instances.delete
  • datafusion.instances.update
  • datafusion.operations.get
  • datafusion.operations.list
  • datafusion.operations.cancel
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Cloud Data Fusion-Betrachter (roles/datafusion.viewer)
  • Kann die Cloud Data Fusion-Instanzen des Projekts in der Google Cloud Console aufrufen.
  • Cloud Data Fusion-Instanzen können nicht erstellt, aktualisiert oder gelöscht werden.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.operations.get
  • datafusion.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Bei der Designzeit auf Ressourcen in einem anderen Projekt zugreifen

In diesem Abschnitt wird die Zugriffssteuerung für Ressourcen beschrieben, die sich bei der Entwicklung in einem anderen Google Cloud-Projekt als Ihre Cloud Data Fusion-Instanz befinden.

Wenn Sie Pipelines in der Cloud Data Fusion-Weboberfläche entwerfen, können Sie Funktionen wie Wrapper oder Vorschau verwenden, die auf Ressourcen in anderen Projekten zugreifen.

In den folgenden Abschnitten wird beschrieben, wie Sie das Dienstkonto in Ihrer Umgebung ermitteln und die entsprechenden Berechtigungen erteilen.

Dienstkonto der Umgebung ermitteln

Der Name des Dienstkontos lautet „Cloud Data Fusion-Dienstkonto“ und das Hauptkonto für diesen Dienst-Agent ist service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.

Zugriff auf Ressourcen in einem anderen Projekt gewähren

So weisen Sie die Rollen zu, die die Berechtigung für den Zugriff auf verschiedene Ressourcen gewähren:

  1. Fügen Sie dem Projekt, in dem sich die Zielressource befindet, das Cloud Data Fusion-Dienstkonto (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) als Hauptkonto hinzu.
  2. Weisen Sie dem Cloud Data Fusion-Dienstkonto Rollen für die Zielressource in dem Projekt zu, in dem sich die Zielressource befindet.

Nachdem Sie die Rollen zugewiesen haben, können Sie zum Zeitpunkt der Entwicklung auf Ressourcen in einem anderen Projekt zugreifen. Dies funktioniert genauso wie der Zugriff auf Ressourcen in dem Projekt, in dem sich Ihre Instanz befindet.

Bei der Ausführung auf Ressourcen in einem anderen Projekt zugreifen

In diesem Abschnitt wird die Zugriffssteuerung für Ressourcen beschrieben, die sich bei der Ausführung in einem anderen Google Cloud-Projekt als Ihre Cloud Data Fusion-Instanz befinden.

Bei der Ausführung führen Sie die Pipeline in einem Dataproc-Cluster aus, der auf Ressourcen in anderen Projekten zugreifen kann. Standardmäßig wird der Dataproc-Cluster im selben Projekt wie die Cloud Data Fusion-Instanz gestartet. Sie können jedoch Cluster in einem anderen Projekt verwenden.

So greifen Sie auf die Ressourcen in anderen Google Cloud-Projekten zu:

  1. Ermitteln Sie das Dienstkonto für Ihr Projekt.
  2. Weisen Sie dem Compute Engine-Standarddienstkonto im Projekt, in dem sich die Ressource befindet, IAM-Rollen zu, um ihm Zugriff auf Ressourcen in einem anderen Projekt zu gewähren.

Compute Engine-Dienstkonto ermitteln

Weitere Informationen zum Compute Engine-Dienstkonto finden Sie unter Informationen zu IAM in Cloud Data Fusion.

IAM-Zugriffsressourcen in einem anderen Projekt gewähren

Das Compute Engine-Standarddienstkonto benötigt Berechtigungen für den Zugriff auf Ressourcen in einem anderen Projekt. Diese Rollen und Berechtigungen können sich je nach Ressource unterscheiden, auf die Sie zugreifen möchten.

So greifen Sie auf die Ressourcen zu:

  1. Erteilen Sie Rollen und Berechtigungen und geben Sie Ihr Compute Engine-Dienstkonto als Hauptkonto in dem Projekt an, in dem sich die Zielressource befindet.
  2. Fügen Sie die entsprechenden Rollen für den Zugriff auf die Ressource hinzu.

Berechtigungen für die Cloud Data Fusion API

Die folgenden Berechtigungen sind zum Ausführen der Cloud Data Fusion API erforderlich.

API-Aufruf Berechtigung
instances.create datafusion.instances.create
instances.delete datafusion.instances.delete
instances.list datafusion.instances.list
instances.get datafusion.instances.get
instances.update datafusion.instances.update
operations.cancel datafusion.operations.cancel
operations.list datafusion.operations.list
operations.get datafusion.operations.get

Berechtigungen für allgemeine Aufgaben

Für allgemeine Aufgaben in Cloud Data Fusion sind die folgenden Berechtigungen erforderlich:

Task Berechtigungen
Auf die Cloud Data Fusion-Weboberfläche zugreifen datafusion.instances.get
Auf die Cloud Data Fusion-Seite Instanzen in der Google Cloud Console zugreifen datafusion.instances.list
Zugriff auf die Seite Details für eine Instanz datafusion.instances.get
Neue Instanz erstellen datafusion.instances.create
Labels und erweiterte Optionen aktualisieren, um eine Instanz anzupassen datafusion.instances.update
Instanz löschen datafusion.instances.delete

Nächste Schritte