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 |
---|---|
Dataflow Admin( Minimal role for creating and managing dataflow jobs. |
|
Dataflow Developer( Provides the permissions necessary to execute and manipulate Dataflow jobs. Lowest-level resources where you can grant this role:
|
|
Dataflow Viewer( Provides read-only access to all Dataflow-related resources. Lowest-level resources where you can grant this role:
|
|
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:
|
|
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:
- La función
roles/dataflow.developer
, para crear la instancia del trabajo - La función
roles/compute.viewer
, para acceder a la información de tipo de máquina y ver otra configuración - La función
roles/storage.objectAdmin
, que otorga permiso para habilitar archivos por etapas en Cloud Storage.
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/iam.serviceAccountUser
. - 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 almacenar los archivos requeridos en etapa intermedia. - 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 roles, 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.
- También necesita la función
- La cuenta de servicio de trabajador necesita los roles
roles/dataflow.worker
yroles/dataflow.admin
para procesar datos del servicio de Dataflow.- Para acceder a los datos del trabajo, la cuenta de servicio del trabajador necesita otros roles, como
roles/storage.objectAdmin
. - Para escribir en las tablas de BigQuery, la cuenta de servicio del trabajador necesita el rol
roles/bigquery.dataEditor
. - Para leer desde un tema o suscripción de Pub/Sub, la cuenta de servicio del trabajador necesita el rol
roles/pubsub.editor
.
- Para acceder a los datos del trabajo, la cuenta de servicio del trabajador necesita otros roles, como
- Si usas una VPC compartida, la subred de la VPC compartida debe compartirse con la cuenta de servicio de Dataflow y debe tener el rol de usuario de red de Compute asignado en la subred especificada.
- Para ver si la subred de VPC compartida está compartida con la cuenta de servicio de Dataflow, en la consola de Google Cloud, ve a la página VPC compartida y busca la subred. En la columna Compartido con, puedes ver si la subred de VPC se comparte con la cuenta de servicio de Dataflow. Si deseas obtener más información, consulta los Lineamientos para especificar un parámetro de subred para una VPC compartida.
- La cuenta de servicio de Compute Engine del proyecto host, la cuenta de servicio de trabajador de Dataflow y la cuenta de servicio que se usará para enviar el trabajo debe tener los siguientes roles:
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
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.