Guía de control de acceso a Cloud Dataflow

Resumen

Para limitar el acceso de los usuarios en un proyecto o una organización, puedes usar las funciones de la IAM de Dataflow. Puedes restringir el acceso a los recursos relacionados con Dataflow, en lugar de otorgarles a los usuarios acceso de visualizador, editor o propietario a todo el proyecto de Google Cloud.

En esta página, se describe cómo usar las funciones de IAM de Dataflow. Consulta la guía para desarrolladores de Google Cloud Identity and Access Management a fin de obtener una descripción detallada de la IAM y sus funciones.

Cada método de Dataflow requiere que el emisor 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 enumeran los permisos que debe tener el emisor 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

Funciones

En la siguiente tabla, se enumeran las funciones de la IAM con la lista correspondiente de todos los permisos que incluye cada función. Cada permiso es aplicable a un tipo de recurso específico.

Role Título Descripción Permisos Recurso más bajo
roles/dataflow.admin Administrador de Dataflow Función mínima para crear y administrar trabajos de Dataflow.
  • 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 Desarrollador de Dataflow Proporciona los permisos necesarios para ejecutar y manipular trabajos de Dataflow.
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/dataflow.viewer Lector de Dataflow Proporciona acceso de solo lectura a todos los recursos relacionados con Dataflow.
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.messages.*
  • dataflow.metrics.*
  • dataflow.snapshots.get
  • dataflow.snapshots.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/dataflow.worker Trabajador de Dataflow Proporciona los permisos necesarios a fin de que una cuenta de servicio de Compute Engine ejecute las unidades de trabajo para una canalización de Dataflow.
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • logging.logEntries.create
  • storage.objects.create
  • storage.objects.get
Proyecto

La función Trabajador de Dataflow (roles/dataflow.worker) proporciona los permisos (dataflow.workItems.lease, dataflow.workItems.update y dataflow.workItems.sendMessage) necesarios para que una cuenta de servicio de Compute Engine ejecute las unidades de trabajo de una canalización de Apache Beam. Por lo general, solo debe asignarse a la cuenta y solo incluye la capacidad de solicitar y actualizar el trabajo desde el servicio de Dataflow.

La función Agente de servicios de Cloud Dataflow (roles/dataflow.serviceAgent) proporciona a la cuenta de servicio de Dataflow acceso a los recursos administrados. Esta función se asigna automáticamente a una cuenta de servicio de Dataflow cuando creas un proyecto de Dataflow. No puedes asignarla de forma manual.

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:

  • El desarrollador que crea y examina trabajos necesita la función roles/dataflow.admin.
  • Para una administración de permisos más sofisticada, el desarrollador que interactúa con el trabajo de Dataflow necesita la función roles/dataflow.developer.
    • También necesita la función roles/storage.objectAdmin o una relacionada para dividir en etapas los archivos requeridos.
    • El desarrollador necesita la función roles/compute.viewer del proyecto para revisar las cuotas y realizar la depuración.
    • A falta de otras asignaciones de funciones, esta función le permite al desarrollador crear y cancelar trabajos de Dataflow, pero no interactuar con las VM individuales ni acceder a otros servicios de Cloud.
  • La cuenta de servicio del controlador necesita la función roles/dataflow.worker a fin de procesar datos para el servicio de Dataflow. Para acceder a los datos del trabajo, las cuentas de servicio necesitan otras funciones, como roles/storage.objectAdmin.

Asigna funciones 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 las funciones a nivel del proyecto, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.