Zugriffssteuerung mit IAM

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 steuern, anstatt Nutzern die Rolle Betrachter, Bearbeiter oder Inhaber für das gesamte Google Cloud-Projekt zuzuweisen.

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. Eine Liste der Berechtigungen finden Sie auf der Seite Rollen in der Google Cloud Console.

Role Permissions

(roles/dataflow.admin)

Minimal role for creating and managing dataflow jobs.

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.operations.*

  • cloudbuild.operations.get
  • cloudbuild.operations.list

compute.machineTypes.get

compute.projects.get

compute.regions.list

compute.zones.list

dataflow.jobs.*

  • dataflow.jobs.cancel
  • dataflow.jobs.create
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.jobs.snapshot
  • dataflow.jobs.updateContents

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.*

  • dataflow.snapshots.delete
  • dataflow.snapshots.get
  • dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.*

  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • recommender.dataflowDiagnosticsInsights.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.create

storage.objects.get

storage.objects.list

(roles/dataflow.developer)

Provides the permissions necessary to execute and manipulate Dataflow jobs.

Lowest-level resources where you can grant this role:

  • Project

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.operations.*

  • cloudbuild.operations.get
  • cloudbuild.operations.list

compute.projects.get

compute.regions.list

compute.zones.list

dataflow.jobs.*

  • dataflow.jobs.cancel
  • dataflow.jobs.create
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.jobs.snapshot
  • dataflow.jobs.updateContents

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.*

  • dataflow.snapshots.delete
  • dataflow.snapshots.get
  • dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.*

  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • recommender.dataflowDiagnosticsInsights.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataflow.viewer)

Provides read-only access to all Dataflow-related resources.

Lowest-level resources where you can grant this role:

  • Project

dataflow.jobs.get

dataflow.jobs.list

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.get

dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.get

recommender.dataflowDiagnosticsInsights.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataflow.worker)

Provides the permissions necessary for a Compute Engine service account to execute work units for a Dataflow pipeline.

Lowest-level resources where you can grant this role:

  • Project

autoscaling.sites.readRecommendations

autoscaling.sites.writeMetrics

autoscaling.sites.writeState

compute.instanceGroupManagers.update

compute.instances.delete

compute.instances.setDiskAutoDelete

dataflow.jobs.get

dataflow.shuffle.*

  • dataflow.shuffle.read
  • dataflow.shuffle.write

dataflow.streamingWorkItems.*

  • dataflow.streamingWorkItems.ImportState
  • dataflow.streamingWorkItems.commitWork
  • dataflow.streamingWorkItems.getData
  • dataflow.streamingWorkItems.getWork
  • dataflow.streamingWorkItems.getWorkerMetadata

dataflow.workItems.*

  • dataflow.workItems.lease
  • dataflow.workItems.sendMessage
  • dataflow.workItems.update

logging.logEntries.create

logging.logEntries.route

monitoring.timeSeries.create

storage.buckets.get

storage.objects.create

storage.objects.get

Die Rolle "Dataflow-Worker" (roles/dataflow.worker) bietet die Berechtigungen, die ein Compute Engine-Dienstkonto benötigt, um Arbeitseinheiten für eine Apache Beam-Pipeline auszuführen. Die Rolle "Dataflow-Worker" muss einem Dienstkonto zugewiesen sein, das Arbeit vom Dataflow-Dienst anfordern und aktualisieren kann.

Die Rolle "Dataflow-Dienst-Agent" (roles/dataflow.serviceAgent) wird ausschließlich vom Dataflow-Dienstkonto verwendet. Sie bietet dem Dienstkonto Zugriff auf verwaltete Ressourcen in Ihrem Google Cloud-Projekt, um Dataflow-Jobs auszuführen. Sie wird dem Dienstkonto automatisch zugewiesen, wenn Sie die Dataflow API für Ihr Projekt auf der API-Seite der Google Cloud Console aktivieren.

Jobs erstellen

Zum Erstellen eines Jobs enthält die Rolle 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:

Dataflow-Rollen zuweisen

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

Informationen zum Verwalten von Rollen auf Organisationsebene finden Sie unter Zugriffssteuerung für Organisationen mithilfe von IAM.

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