Control de acceso con IAM

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 mediante la consola de Google Cloud, 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 de Google Cloud, como BigQuery o Cloud Storage a una cuenta de servicio en la que se ejecutan las canalizaciones, usa IAM.

  • Si deseas controlar los permisos detallados para las acciones realizadas en la instancia, conocidas como operaciones del plano de datos, como iniciar canalizaciones, usa el control de acceso basado en funciones (RBAC). Para obtener más información, consulta la descripción general de 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 Administra el 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 otras principales del proyecto de Google Cloud.

Para otorgar acceso detallado a las cuentas de usuario a fin de 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 en el momento del 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

  • Habilita la ejecución mediante el aprovisionamiento de clústeres de Dataproc y el envío de trabajos de canalización.

Funciones para la cuenta de servicio de Cloud Data Fusion

De forma predeterminada, la cuenta de servicio de Cloud Data Fusion solo tiene la función 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 la función de agente de servicio de la API de Cloud Data Fusion.

Rol Recurso Permisos
Agente de servicios de la API de Cloud Data Fusion Servicios asociados:
  • BigQuery
  • Bigtable
  • Compute Engine
  • Dataproc
  • Cloud DNS
  • Firebase
  • Cloud Monitoring
  • Conectividad de red
  • Administrador de integración de servicios de red
  • API de servicios de red
  • Política de la organización
  • API de recomendador
  • API de Cloud Resource Manager
  • Service Networking
  • Uso del servicio
  • Spanner
  • Cloud Storage
  • Traffic Director
Consulta los permisos del agente de servicio de la API de Cloud Data Fusion.

Cuenta de servicio predeterminada o cuenta de servicio personalizada de Compute Engine

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 recursos de Google Cloud. De forma predeterminada, se conecta a una VM de clúster de Dataproc para permitir que Cloud Data Fusion acceda a los recursos de Dataproc durante la ejecución de una canalización.

Puedes elegir una cuenta de servicio personalizada para conectarla al clúster de Dataproc cuando creas una instancia de Cloud Data Fusion o si creas perfiles de Compute nuevos en la interfaz web de Cloud Data Fusion.

Para obtener más información, consulta Cuentas de servicio en Cloud Data Fusion.

Funciones 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 otorgarle un rol. 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, para las cuentas de servicio personalizadas predeterminadas y administradas por el usuario, otorga la función 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 Dataproc cuando ejecutas canalizaciones, otorga a la cuenta de servicio de Cloud Data Fusion el rol de usuario de la cuenta de servicio (roles/iam.serviceAccountUser).

Para obtener más información, consulta Otorga permiso de la cuenta de servicio.

Función de trabajador de Dataproc

Para ejecutar los trabajos en los clústeres de Dataproc, otorga la función 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 los usuarios

Para activar cualquier operación en Cloud Data Fusion, tú (el principal) debes tener suficientes permisos. Los permisos individuales se agrupan en funciones, y se le otorgan 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 función de IAM de Cloud Data Fusion tendrán acceso completo a la interfaz web de Cloud Data Fusion. El rol 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 lectura, además de los permisos para crear, actualizar y borrar instancias de Cloud Data Fusion.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.instances.create
  • datafusion.instances.delete
  • datafusion.instances.update
  • datafusion.operations.get
  • datafusion.operations.list
  • datafusion.operations.cancel
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Visualizador de Cloud Data Fusion (roles/datafusion.viewer)
  • Puede ver las instancias de Cloud Data Fusion del proyecto en la consola de Google Cloud.
  • No se pueden crear, actualizar ni borrar instancias de Cloud Data Fusion.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.operations.get
  • datafusion.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Acceder a recursos de otro proyecto en el momento del diseño

En esta sección, se describe el control de acceso a los recursos ubicados en un proyecto de Google Cloud diferente al de tu instancia de Cloud Data Fusion en el momento del diseño.

Cuando diseñas canalizaciones en la interfaz web de Cloud Data Fusion, puedes usar funciones, como Wrangler o una vista previa, que acceden a los 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 la cuenta de servicio de Cloud Data Fusion y la principal para este agente de servicio es service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.

Otorga permiso para acceder a los recursos de otro proyecto

A fin de otorgar las funciones que otorgan permiso para acceder a varios recursos, sigue estos pasos:

  1. 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.
  2. Otorga funciones a la cuenta de servicio de Cloud Data Fusion en el recurso de destino del proyecto en el que existe el recurso de destino.

Después de otorgar las funciones, puedes acceder a los recursos en un proyecto diferente en el momento de diseño de la misma manera en que accedes a los recursos en el proyecto en el que se encuentra la instancia.

Acceso a los recursos de otro proyecto en el momento de la ejecución

En esta sección, se describe el control de acceso a los recursos ubicados en un proyecto de Google Cloud diferente al de tu instancia de Cloud Data Fusion en el tiempo de ejecución.

En el momento de la ejecución, la canalización se ejecuta en un clúster de Dataproc, que puede acceder a los recursos de otros proyectos. De forma predeterminada, el clúster de Dataproc 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 proyectos de Google Cloud, sigue estos pasos:

  1. Determina la cuenta de servicio para tu proyecto.
  2. En el proyecto en el que se encuentra el recurso, otorga funciones de IAM a la cuenta de servicio predeterminada de Compute Engine para darle acceso a los recursos de otro proyecto.

Determina la cuenta de servicio de Compute Engine

Si quieres obtener más información sobre la cuenta de servicio de Compute Engine, consulta Acerca de IAM en Cloud Data Fusion.

Otorgar recursos de acceso a IAM en otro proyecto

La cuenta de servicio predeterminada de Compute Engine requiere permisos para acceder a los recursos en otro proyecto. Estas funciones y permisos pueden ser diferentes según el recurso al que desees acceder.

Para acceder a los recursos, sigue estos pasos:

  1. Otorga roles y permisos, y especifica tu cuenta de servicio de Compute Engine como una principal en el proyecto en el que existe el recurso de destino.
  2. Agregar los roles adecuados para acceder al recurso

Permisos de la API de Cloud Data Fusion

Se requieren los siguientes permisos 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
Accede a la interfaz web de Cloud Data Fusion datafusion.instances.get
Cómo acceder a la página Instancias de Cloud Data Fusion en la consola de Google Cloud 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?