Auf dieser Seite werden die Optionen für die Zugriffssteuerung in Cloud Data Fusion beschrieben.
Sie können den Zugriff auf Ressourcen in Cloud Data Fusion auf folgende Weise steuern:
Um den Zugriff für Steuerungsebene-Vorgänge wie das Erstellen und Aktualisieren von Instanzen über die Google Cloud Console, die Google Cloud CLI und die REST API zu steuern, verwenden Sie Identity and Access Management (IAM), wie auf dieser Seite beschrieben.
Wenn Sie einem Dienstkonto, in dem Pipelines ausgeführt werden, Zugriff auf Google Cloud Datendienste wie BigQuery oder Cloud Storage gewähren möchten, verwenden Sie IAM.
Verwenden Sie die rollenbasierte Zugriffssteuerung (RBAC), um detaillierte Berechtigungen für Aktionen zu steuern, die in der Instanz ausgeführt werden. Diese Aktionen werden als Datenebene-Vorgänge bezeichnet, z. B. das Starten von Pipelines.
Informationen zur Architektur und zu den Ressourcen, die an der Cloud Data Fusion-Zugriffssteuerung beteiligt sind, finden Sie unter Netzwerk. Informationen zum Zuweisen 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-Funktionen, indem Sie IAM-Rollen und -Berechtigungen für Dienstkonten und andere Hauptkonten in Ihrem Google Cloud -Projekt gewähren.
Wenn Sie Nutzerkonten detaillierten Zugriff gewähren möchten, damit sie die Cloud Data Fusion-Weboberfläche verwenden können, verwenden Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC).
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 zur Pipeline-Designzeit auf Kundenressourcen zugreifen kann. Dieser Dienst-Agent wird einem Projekt automatisch hinzugefügt, wenn Sie die Cloud Data Fusion API aktivieren. Sie wird für alle Instanzen in Ihrem Projekt verwendet.
Das Dienstkonto hat die folgenden Aufgaben:
Kommunikation mit anderen Diensten wie Cloud Storage, BigQuery oder Datastream während des Pipeline-Designs.
Die Ausführung wird ermöglicht, indem Managed Service for Apache Spark-Cluster bereitgestellt und Pipeline-Jobs gesendet werden.
Rollen für das Cloud Data Fusion-Dienstkonto
Standardmäßig hat das Cloud Data Fusion-Dienstkonto nur die Rolle Cloud Data Fusion API Service Agent (roles/datafusion.serviceAgent).
Der Prinzipalname für diesen Dienst-Agent ist service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Die folgenden Standardressourcen sind der Rolle „Cloud Data Fusion API Service Agent“ zugeordnet.
| Rolle | Ressource | Berechtigungen |
|---|---|---|
| Cloud Data Fusion API-Dienst-Agent | Verknüpfte Dienste:
|
Berechtigungen für den Cloud Data Fusion API-Dienst-Agent |
Standardmäßiges Compute Engine-Dienstkonto oder benutzerdefiniertes Dienstkonto
Das Compute Engine-Dienstkonto ist das Standardkonto, das von Cloud Data Fusion zum Bereitstellen und Ausführen von Jobs verwendet wird, die auf andereGoogle Cloud -Ressourcen zugreifen. Dieses Konto wird standardmäßig einer VM des Managed Service for Apache Spark-Clusters hinzugefügt, damit Cloud Data Fusion während der Ausführung einer Pipeline auf Managed Service for Apache Spark-Ressourcen zugreifen kann.
Sie können ein benutzerdefiniertes Dienstkonto auswählen, das beim Erstellen einer Cloud Data Fusion-Instanz an den Managed Service for Apache Spark-Cluster angehängt werden soll. Alternativ können Sie neue Rechenprofile 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
Standardmäßig verwendet Cloud Data Fusion das Compute Engine-Standarddienstkonto, um beim Ausführen einer Pipeline 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
Weisen Sie im Projekt mit der Cloud Data Fusion-Instanz sowohl dem Standard- als auch dem nutzerverwalteten benutzerdefinierten Dienstkonto die Rolle „Cloud Data Fusion Runner“ (datafusion.runner) zu.
| Rolle | Beschreibung | Berechtigung |
|---|---|---|
Data Fusion-Runner (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 Standarddienstkonto oder das nutzerverwaltete Dienstkonto in dem Projekt zu, in dem Managed Service for Apache Spark-Cluster beim Ausführen von Pipelines gestartet werden.
Weitere Informationen finden Sie unter Berechtigungen für Dienstkonten erteilen.
Rolle „Dataproc Worker“
Damit die Jobs in Managed Service for Apache Spark-Clustern ausgeführt werden können, müssen Sie den von Ihren Cloud Data Fusion-Pipelines verwendeten Standard- oder nutzerverwalteten Dienstkonten die Rolle „Dataproc Worker“ (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 werden in Rollen gruppiert, die Sie dem Hauptkonto zuweisen.
Wenn RBAC nicht aktiviert ist oder Sie eine Cloud Data Fusion-Version verwenden, die RBAC nicht unterstützt, haben Nutzer mit einer beliebigen Cloud Data Fusion-IAM-Rolle vollen Zugriff auf die Cloud Data Fusion-Weboberfläche. Mit der Administratorrolle können Nutzer nur die Instanz verwalten, z. B. Create-, Update-, Upgrade- und Delete-Vorgänge.
Weisen Sie Hauptkonten die folgenden Rollen zu, je nachdem, welche Berechtigungen 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. |
|
Cloud Data Fusion-Betrachter (roles/datafusion.viewer) |
|
|
Zur Designzeit auf Ressourcen in einem anderen Projekt zugreifen
In diesem Abschnitt wird die Zugriffssteuerung für Ressourcen beschrieben, die sich zur Designzeit in einem anderen Google Cloud Projekt als Ihre Cloud Data Fusion-Instanz befinden.
Wenn Sie Pipelines in der Cloud Data Fusion-Weboberfläche entwerfen, verwenden Sie möglicherweise Funktionen wie Wrangler oder Vorschau, die auf Ressourcen in anderen Projekten zugreifen.
In den folgenden Abschnitten wird beschrieben, wie Sie das Dienstkonto in Ihrer Umgebung ermitteln und dann die entsprechenden Berechtigungen erteilen.
Dienstkonto Ihrer Umgebung ermitteln
Der Name des Dienstkontos ist „Cloud Data Fusion-Dienstkonto“ und der Prinzipal für diesen Dienst-Agent ist service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Berechtigung zum Zugriff auf Ressourcen in einem anderen Projekt erteilen
So weisen Sie die Rollen zu, die die Berechtigung zum Zugriff auf verschiedene Ressourcen gewähren:
- Fügen Sie in 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. - 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 gewährt haben, können Sie zur Designzeit auf Ressourcen in einem anderen Projekt genauso zugreifen wie auf Ressourcen in dem Projekt, in dem sich Ihre Instanz befindet.
Zur Laufzeit auf Ressourcen in einem anderen Projekt zugreifen
In diesem Abschnitt wird die Zugriffssteuerung für Ressourcen beschrieben, die sich zur Laufzeit in einem anderen Google Cloud Projekt als Ihre Cloud Data Fusion-Instanz befinden.
Zur Ausführungszeit führen Sie die Pipeline in einem Managed Service for Apache Spark-Cluster aus, der möglicherweise auf Ressourcen in anderen Projekten zugreift. Standardmäßig wird der Managed Service for Apache Spark-Cluster im selben Projekt wie die Cloud Data Fusion-Instanz gestartet. Sie können jedoch auch Cluster in einem anderen Projekt verwenden.
So greifen Sie auf die Ressourcen in anderen Google Cloud Projekten zu:
- Ermitteln Sie das Dienstkonto für Ihr Projekt.
- Weisen Sie im Projekt, in dem sich die Ressource befindet, dem Compute Engine-Standarddienstkonto 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 IAM in Cloud Data Fusion.
IAM-Zugriff auf Ressourcen 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 je nach Ressource, auf die Sie zugreifen möchten, unterschiedlich sein.
So greifen Sie auf die Ressourcen zu:
- Weisen Sie Rollen und Berechtigungen zu und geben Sie Ihr Compute Engine-Dienstkonto als Prinzipal in dem Projekt an, in dem sich die Zielressource befindet.
- Fügen Sie die entsprechenden Rollen hinzu, um auf die Ressource zuzugreifen.
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:
| Aufgabe | Berechtigungen |
|---|---|
| Auf die Weboberfläche von Cloud Data Fusion zugreifen | datafusion.instances.get |
| Zugriff auf die Cloud Data Fusion-Seite Instanzen in der Google Cloud Console | 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 |