Contrôle des accès avec IAM

Pour limiter l'accès des utilisateurs au sein d'un projet ou d'une organisation, vous pouvez utiliser les rôles IAM (Identity and Access Management) spécifiques à Dataflow. Plutôt que d'attribuer aux utilisateurs le rôle Lecteur, Éditeur ou Propriétaire pour l'ensemble du projet Google Cloud, vous pouvez contrôler l'accès aux ressources associées à Dataflow.

Cette page explique comment utiliser les rôles IAM de Dataflow. Pour une description détaillée d'IAM et de ses fonctionnalités, consultez la documentation IAM.

Quelle que soit la méthode Dataflow employée, l'utilisateur doit disposer des autorisations requises. Pour obtenir la liste des autorisations et des rôles compatibles avec Dataflow, consultez la section suivante.

Autorisations et rôles

Les autorisations et les rôles compatibles avec les services IAM de Dataflow sont récapitulés ci-dessous.

Autorisations requises

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode :

Méthode Autorisations requises
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

Rôles

Le tableau suivant répertorie les rôles IAM Dataflow avec la liste de autorisations associées à chaque rôle. Chaque autorisation est applicable à un type de ressource particulier. Pour obtenir la liste des autorisations, consultez la page Rôles dans 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

Le rôle Nœud de calcul Dataflow (roles/dataflow.worker) fournit les autorisations nécessaires pour qu'un compte de service Compute Engine puisse exécuter des unités de travail pour un pipeline Apache Beam. Le rôle Nœud de calcul Dataflow doit être attribué à un compte de service capable de demander et de mettre à jour des tâches du service Dataflow.

Le rôle Agent de service Dataflow (roles/dataflow.serviceAgent) est utilisé exclusivement par le compte de service Dataflow. Il permet au compte de service d'accéder aux ressources gérées de votre projet Google Cloud pour exécuter des tâches Dataflow. Il est automatiquement attribué au compte de service lorsque vous activez l'API Dataflow pour votre projet depuis la page API de Google Cloud Console.

Créer des tâches

Pour créer une tâche, le rôle roles/dataflow.admin inclut l'ensemble minimal d'autorisations requises pour exécuter et examiner des tâches.

Sinon, les autorisations suivantes sont nécessaires :

Exemple d'attribution de rôle

L'argumentation ci-après démontre l'utilité des différents rôles Dataflow :

Attribuer des rôles Dataflow

Actuellement, les rôles Dataflow ne peuvent être définis que pour des organisations et des projets.

Pour gérer les rôles au niveau organisationnel, consultez la section Contrôle des accès pour les organisations qui utilisent les services IAM.

Pour définir des rôles au niveau d'un projet, consultez la page Accorder, modifier et révoquer les accès à des ressources.