Dataflow-Zugriffssteuerung

Übersicht

Um den Zugriff für Nutzer innerhalb eines Projekts oder einer Organisation einzuschränken, können Sie IAM-Rollen (Identitäts- und Zugriffsverwaltung) für Dataflow verwenden. Sie können den Zugriff auf Dataflow-bezogene Ressourcen beschränken, anstatt Nutzern Betrachter-, Bearbeiter- oder Inhaberzugriff für das gesamte Google Cloud Platform-Projekt zu gewähren.

Diese Seite konzentriert sich auf die Verwendung der IAM-Rollen von Dataflow. Eine ausführliche Beschreibung von IAM und den entsprechenden Funktionen finden Sie in der IAM-Dokumentation.

Jede Dataflow-Methode fordert vom Aufrufer bestimmte Berechtigungen. Eine Liste der Berechtigungen und Rollen, die Dataflow unterstützt, finden Sie im nachfolgenden Abschnitt.

Berechtigungen und Rollen

In diesem Abschnitt sind die Berechtigungen und Rollen zusammengefasst, die von Dataflow IAM unterstützt werden.

Erforderliche Berechtigungen

In der folgenden Tabelle sind die Berechtigungen aufgelistet, die der Aufrufer haben muss, um die einzelnen Methoden aufzurufen:

Methode Erforderliche Berechtigungen
dataflow.jobs.create dataflow.jobs.create
dataflow.jobs.cancel dataflow.jobs.cancel
dataflow.jobs.updateContents dataflow.jobs.updateContents
dataflow.jobs.list dataflow.jobs.list
dataflow.jobs.get dataflow.jobs.get
dataflow.messages.list dataflow.messages.list
dataflow.metrics.get dataflow.metrics.get
dataflow.jobs.snapshot dataflow.jobs.snapshot

Rollen

In der folgenden Tabelle sind die Dataflow IAM-Rollen und die jeweiligen Berechtigungen aufgeführt, die eine Rolle enthält. Jede Berechtigung gilt für einen bestimmten Ressourcentyp.

Rolle Titel Beschreibung Berechtigungen Niedrigste Ressource
roles/dataflow.admin Dataflow-Administrator Minimale Rolle zur Erstellung und Verwaltung von Dataflow-Jobs
  • compute.machineTypes.get
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
  • storage.objects.list
roles/dataflow.developer Dataflow-Entwickler Bietet das Ausführen und Bearbeiten von Dataflow-Jobs.
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/dataflow.viewer Dataflow-Betrachter Bietet Lesezugriff auf alle Ressourcen in Verbindung mit Dataflow.
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.messages.*
  • dataflow.metrics.*
  • dataflow.snapshots.get
  • dataflow.snapshots.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/dataflow.worker Dataflow-Worker Bietet die erforderlichen Berechtigungen für ein Compute Engine-Dienstkonto, um Arbeitseinheiten für eine Dataflow-Pipeline auszuführen.
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • logging.logEntries.create
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
Projekt

Die Rolle "Dataflow-Worker" (roles/dataflow.worker) bietet die Berechtigungen (dataflow.workItems.lease, dataflow.workItems.update und dataflow.workItems.sendMessage), die ein Compute Engine-Dienstkonto benötigt, um Arbeitseinheiten für eine Apache Beam-Pipeline auszuführen. Sie sollte normalerweise nur einem solchen Konto zugewiesen werden und enthält nur die Fähigkeit, Arbeit vom Dataflow-Dienst abzurufen und zu aktualisieren.

Die Rolle "Dataflow-Dienst-Agent" (roles/dataflow.serviceAgent) bietet einem Dataflow-Dienstkonto Zugriff auf verwaltete Ressourcen. Diese Rolle des Dienst-Agents wird einem Dataflow-Dienstkonto zugewiesen, wenn Sie ein Dataflow-Projekt erstellen.

Jobs erstellen

Zum Erstellen eines Jobs enthält roles/dataflow.admin die minimalen Berechtigungen, die zum Ausführen und Prüfen von Jobs erforderlich sind.

Alternativ sind die folgenden Berechtigungen erforderlich:

Beispiel für eine Rollenzuweisung

Die folgende Gliederung veranschaulicht den Nutzen der verschiedenen Dataflow-Rollen:

  • Der Entwickler, der Jobs erstellt und prüft, benötigt die Rolle roles/dataflow.admin.
  • Für eine komplexere Verwaltung von Berechtigungen benötigt der Entwickler, der mit dem Dataflow-Job interagiert, die Rolle roles/dataflow.developer.
    • Sie benötigen die Rolle roles/storage.objectAdmin oder eine ähnliche Rolle, um die erforderlichen Dateien bereitzustellen.
    • Für die Fehlerbehebung und Kontingentprüfung benötigen sie die Rolle roles/compute.viewer des Projekts.
    • Sofern keine anderen Rollen zugewiesen wurden, ermöglicht diese Rolle den Entwicklern, Dataflow-Jobs zu erstellen und zu löschen, nicht aber mit den einzelnen VMs zu interagieren oder auf andere Cloud-Dienste zuzugreifen.
  • Das Controller-Dienstkonto benötigt die Rolle roles/dataflow.worker, um Daten für den Dataflow-Dienst zu verarbeiten. Für den Zugriff auf Auftragsdaten benötigen die Dienstkonten andere Rollen, wie z. B. roles/storage.objectAdmin.

Dataflow-Rollen zuweisen

Dataflow-Rollen können derzeit nur auf Organisations- und Projektebene festgelegt werden.

Zum Verwalten von Rollen auf Organisationsebene siehe Zugriffssteuerung für Organisationen mithilfe von IAM.

Informationen zum Festlegen von Rollen auf Projektebene erhalten Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.