En esta página, se describen las opciones de control de acceso en Cloud Data Fusion.
Puedes controlar el acceso a los recursos en Cloud Data Fusion de las siguientes maneras:
Para controlar el acceso a las operaciones del plano de control, como crear y actualizar instancias a través de la Google Cloud consola, Google Cloud CLI y la API de REST, usa Identity and Access Management (IAM), como se describe en esta página.
Para otorgar acceso a los servicios de datos Google Cloud , como BigQuery o Cloud Storage, a una cuenta de servicio en la que se ejecutan canalizaciones, usa IAM.
Para controlar los permisos detallados de las acciones que se realizan en la instancia, conocidas como operaciones del plano de datos, como iniciar canalizaciones, usa el control de acceso basado en funciones (RBAC).
Para obtener información sobre la arquitectura y los recursos involucrados en el control de acceso de Cloud Data Fusion, consulta Herramientas de redes. Para obtener información sobre cómo otorgar roles y permisos, consulta Administración del acceso a proyectos, carpetas y organizaciones.
Acerca de IAM en Cloud Data Fusion
Para controlar el acceso a las funciones de Cloud Data Fusion, otorga roles y permisos de IAM a las cuentas de servicio y a otras principales en tu Google Cloud proyecto.
Para otorgar acceso detallado a las cuentas de usuario de modo que puedan usar la interfaz web de Cloud Data Fusion, usa RBAC.
De forma predeterminada, Cloud Data Fusion usa las siguientes cuentas de servicio:
Cuenta de servicio de Cloud Data Fusion
La cuenta de servicio de Cloud Data Fusion es un agente de servicio administrado por Google que puede acceder a los recursos del cliente durante el diseño de la canalización. Este agente de servicio se agrega automáticamente a un proyecto cuando habilitas la API de Cloud Data Fusion. Se usa para todas las instancias de tu proyecto.
El agente de servicio tiene las siguientes responsabilidades:
Comunicarse con otros servicios, como Cloud Storage, BigQuery o Datastream durante el diseño de la canalización
Habilitar la ejecución mediante el aprovisionamiento de clústeres de Managed Service for Apache Spark y el envío de trabajos de canalización
Roles para la cuenta de servicio de Cloud Data Fusion
De forma predeterminada, la cuenta de servicio de Cloud Data Fusion solo tiene el
rol de Agente de servicio de la API de Cloud Data Fusion
(roles/datafusion.serviceAgent).
El nombre principal de este agente de servicio es
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Los siguientes recursos predeterminados están asociados con el rol de Agente de servicio de la API de Cloud Data Fusion.
| Rol | Recurso | Permisos |
|---|---|---|
| Agente de servicio de la API de Cloud Data Fusion | Servicios asociados:
|
Consulta los permisos del Agente de servicio de la API de Cloud Data Fusion. |
Cuenta de servicio predeterminada de Compute Engine o cuenta de servicio personalizada
La cuenta de servicio de Compute Engine es la cuenta predeterminada que Cloud Data Fusion usa para implementar y ejecutar trabajos que acceden a otros Google Cloud recursos. De forma predeterminada, se adjunta a una VM de clúster de Managed Service for Apache Spark para permitir que Cloud Data Fusion acceda a los recursos de Managed Service for Apache Spark durante la ejecución de una canalización.
Puedes elegir una cuenta de servicio personalizada para adjuntar al clúster de Managed Service for Apache Spark cuando creas una instancia de Cloud Data Fusion o creas perfiles de procesamiento nuevos en la interfaz web de Cloud Data Fusion.
Para obtener más información, consulta Cuentas de servicio en Cloud Data Fusion.
Roles para la cuenta de servicio de Compute Engine
De forma predeterminada, para acceder a los recursos (como fuentes y receptores) cuando ejecutas una canalización, Cloud Data Fusion usa la cuenta de servicio predeterminada de Compute Engine.
Puedes configurar una cuenta de servicio personalizada administrada por el usuario para las instancias de Cloud Data Fusion y otorgar un rol a esta cuenta. Luego, puedes elegir esta cuenta de servicio cuando crees instancias nuevas.
Rol de ejecutor de Cloud Data Fusion
En el proyecto que contiene la instancia de Cloud Data Fusion, tanto para las cuentas de servicio predeterminadas como para las personalizadas administradas por el usuario, otorga el rol de ejecutor de Cloud Data Fusion (datafusion.runner).
| Rol | Descripción | Permiso |
|---|---|---|
Ejecutor de Data Fusion (datafusion.runner) |
Permite que la cuenta de servicio de Compute Engine se comunique con los servicios de Cloud Data Fusion en el proyecto de usuario | datafusion.instances.runtime |
Función de usuario de cuenta de servicio
En la cuenta de servicio predeterminada o administrada por el usuario en el proyecto en el que se inician los clústeres de Managed Service for Apache Spark cuando ejecutas canalizaciones, otorga a la cuenta de servicio de Cloud Data Fusion la función de usuario de cuenta de servicio (roles/iam.serviceAccountUser).
Para obtener más información, consulta Otorga permiso de cuenta de servicio.
Rol de trabajador de Dataproc
Para ejecutar los trabajos en clústeres de Managed Service for Apache Spark, otorga el rol de trabajador de Dataproc (roles/dataproc.worker) a las cuentas de servicio predeterminadas o administradas por el usuario que usan tus canalizaciones de Cloud Data Fusion.
Roles para usuarios
Para activar cualquier operación en Cloud Data Fusion, tú (la principal) debes tener suficientes permisos. Los permisos individuales se agrupan en roles, y tú otorgas roles a esa principal.
Si RBAC no está habilitado o si usas una edición de Cloud Data Fusion que no admite RBAC, los usuarios con cualquier rol de IAM de Cloud Data Fusion tienen acceso completo a la interfaz web de Cloud Data Fusion. El rol de administrador solo permite que los usuarios administren la instancia, como las operaciones Create, Update, Upgrade y Delete.
Otorga los siguientes roles a las principales, según los permisos que necesiten en Cloud Data Fusion.
| Rol | Descripción | Permisos |
|---|---|---|
Administrador de Cloud Data Fusion (roles/datafusion.admin) |
Todos los permisos de visualizador, además de los permisos para crear, actualizar y borrar las instancias de Cloud Data Fusion. |
|
Visualizador de Cloud Data Fusion (roles/datafusion.viewer) |
|
|
Accede a los recursos de otro proyecto durante el diseño
En esta sección, se describe el control de acceso a los recursos que se encuentran en un proyecto Google Cloud diferente al de tu instancia de Cloud Data Fusion durante el diseño
Cuando diseñas canalizaciones en la interfaz web de Cloud Data Fusion, puedes usar funciones, como Wrangler o Vista previa, que acceden a recursos en otros proyectos.
En las siguientes secciones, se describe cómo determinar la cuenta de servicio en tu entorno y, luego, otorgar los permisos adecuados.
Determina la cuenta de servicio de tu entorno
El nombre de la cuenta de servicio es Cuenta de servicio de Cloud Data Fusion, y la principal
de este agente de servicio es
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Otorga permiso para acceder a los recursos en otro proyecto
Para otorgar los roles que dan permiso para acceder a varios recursos, sigue estos pasos:
- En el proyecto en el que existe el recurso de destino, agrega la
cuenta de servicio de Cloud Data Fusion (
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) como principal. - Otorga roles a la cuenta de servicio de Cloud Data Fusion en el recurso de destino en el proyecto en el que existe el recurso de destino.
Después de otorgar los roles, puedes acceder a los recursos en un proyecto diferente durante el diseño de la misma manera en que accedes a los recursos en el proyecto en el que se encuentra tu instancia.
Accede a los recursos de otro proyecto durante la ejecución
En esta sección, se describe el control de acceso a los recursos que se encuentran en un proyecto Google Cloud diferente al de tu instancia de Cloud Data Fusion durante la ejecución.
Durante la ejecución, ejecutas la canalización en un clúster de Managed Service for Apache Spark, que puede acceder a recursos en otros proyectos. De forma predeterminada, el clúster de Managed Service for Apache Spark se inicia en el mismo proyecto que la instancia de Cloud Data Fusion, pero puedes usar clústeres en otro proyecto.
Para acceder a los recursos en otros Google Cloud proyectos, sigue estos pasos:
- Determina la cuenta de servicio de tu proyecto.
- En el proyecto en el que se encuentra el recurso, otorga roles de IAM a la cuenta de servicio predeterminada de Compute Engine para darle acceso a los recursos en otro proyecto.
Determina la cuenta de servicio de Compute Engine
Para obtener más información sobre la cuenta de servicio de Compute Engine, consulta Acerca de IAM en Cloud Data Fusion.
Otorga acceso de IAM a los recursos en otro proyecto
La cuenta de servicio predeterminada de Compute Engine requiere permisos para acceder a los recursos en otro proyecto. Estos roles y permisos pueden ser diferentes según el recurso al que quieras acceder.
Para acceder a los recursos, sigue estos pasos:
- Otorga roles y permisos, y especifica tu cuenta de servicio de Compute Engine como principal en el proyecto en el que existe el recurso de destino.
- Agrega los roles adecuados para acceder al recurso.
Permisos de la API de Cloud Data Fusion
Los siguientes permisos son necesarios para ejecutar la API de Cloud Data Fusion.
| Llamada a la API | Permiso |
|---|---|
instances.create |
datafusion.instances.create |
instances.delete |
datafusion.instances.delete |
instances.list |
datafusion.instances.list |
instances.get |
datafusion.instances.get |
instances.update |
datafusion.instances.update |
operations.cancel |
datafusion.operations.cancel |
operations.list |
datafusion.operations.list |
operations.get |
datafusion.operations.get |
Permisos para tareas comunes
Las tareas comunes en Cloud Data Fusion requieren los siguientes permisos:
| Tarea | Permisos |
|---|---|
| Acceder a la interfaz web de Cloud Data Fusion | datafusion.instances.get |
| Acceder a la página Instancias de Cloud Data Fusion en la Google Cloud consola | datafusion.instances.list |
| Acceder a la página Detalles de una instancia | datafusion.instances.get |
| Crea una instancia nueva | datafusion.instances.create |
| Actualizar etiquetas y opciones avanzadas para personalizar una instancia | datafusion.instances.update |
| Borra una instancia | datafusion.instances.delete |
¿Qué sigue?
- Obtén más información sobre el control de acceso entre varios proyectos.