Control de acceso con IAM

Para limitar el acceso de los usuarios en un proyecto o una organización, puedes usar las funciones de administración de identidades y accesos (IAM) en Dataflow. Puedes controlar el acceso a los recursos relacionados con Dataflow, en lugar de otorgar a los usuarios la función de visualizador, editor o propietario en todo el proyecto de Google Cloud.

En esta página, se describe cómo usar las funciones de IAM de Dataflow. Para obtener una descripción detallada de IAM y sus características, consulta la documentación de IAM.

Cada método de Dataflow requiere que el llamador tenga los permisos necesarios. Para obtener una lista de los permisos y las funciones que admite Dataflow, consulta la siguiente sección.

Permisos y funciones

En esta sección, se resumen los permisos y las funciones que admite la IAM de Dataflow.

Permisos necesarios

En la siguiente tabla, se muestran los permisos que debe tener el llamador para llamar a cada método:

Método Permisos necesarios
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

Funciones

En la siguiente tabla, se muestran las funciones de la IAM con la lista correspondiente de permisos relacionados con Dataflow que incluye cada función. Cada permiso se puede aplicar a un tipo de recurso específico. Para obtener una lista de los permisos, consulta la página Roles en la consola de Google Cloud.

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

La función de trabajador de Dataflow (roles/dataflow.worker) proporciona los permisos necesarios para que una cuenta de servicio de Compute Engine ejecute las unidades de trabajo de una canalización de Apache Beam. La función de trabajador de Dataflow debe asignarse a una cuenta de servicio que pueda solicitar y actualizar el trabajo desde el servicio de Dataflow.

La cuenta de servicio de Dataflow usa de forma exclusiva la función de agente de servicio de Dataflow (roles/dataflow.serviceAgent). Proporciona a la cuenta de servicio acceso a los recursos administrados en tu proyecto de Google Cloud para ejecutar trabajos de Dataflow. Se asigna de forma automática a la cuenta de servicio cuando habilitas la API de Dataflow para tu proyecto desde la página de API en la consola de Google Cloud.

Crea trabajos

Para crear un trabajo, la función roles/dataflow.admin incluye el conjunto mínimo de permisos necesarios para ejecutar y examinar trabajos.

De manera alternativa, se requieren los siguientes permisos:

Ejemplo de asignación de función

Para ilustrar la utilidad de las diferentes funciones de Dataflow, considera el siguiente desglose:

Asigna roles de Dataflow

Por el momento, las funciones de Dataflow se pueden establecer solo en organizaciones y proyectos.

Si quieres administrar funciones a nivel de la organización, consulta Control de acceso para las organizaciones que usan IAM.

Para establecer funciones a nivel del proyecto, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.