Otorga el acceso necesario a Dataform

En este documento, se muestra cómo otorgar los roles de Identity and Access Management (IAM) que requieren las cuentas de servicio de Dataform para ejecutar flujos de trabajo en BigQuery.

Acerca de las cuentas de servicio en Dataform

Cuando creas tu primer repositorio de Dataform, genera automáticamente una cuenta de servicio predeterminada. Dataform usa la cuenta de servicio predeterminada para interactuar con BigQuery por ti. La cuenta de servicio predeterminada de Dataform no tiene roles ni permisos de BigQuery de forma predeterminada. Debes otorgar el acceso necesario a la cuenta de servicio predeterminada de Dataform.

El ID predeterminado de la cuenta de servicio de Dataform tiene el siguiente formato:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Reemplaza YOUR_PROJECT_NUMBER por el ID numérico del proyecto de Google Cloud. Puedes encontrar el ID del proyecto de Google Cloud en el panel de la consola de Google Cloud. Para obtener más información, consulta Identifica proyectos.

Además de la cuenta de servicio predeterminada de Dataform, puedes usar otras cuentas de servicio para ejecutar flujos de trabajo en tu nombre. Puedes configurar cuentas de servicio personalizadas:

Cuando creas un repositorio de Dataform o una configuración de flujo de trabajo, puedes seleccionar cualquier cuenta de servicio asociada con tu proyecto de Google Cloud a la que tengas acceso. Debes configurar los permisos necesarios para todas las cuentas de servicio asociadas con tus recursos de Dataform.

Una cuenta de servicio personalizada asociada a un repositorio de Dataform solo se usa para ejecutar flujos de trabajo desde ese repositorio. La cuenta de servicio predeterminada de Dataform realiza todas las demás operaciones del repositorio.

Roles obligatorios para las cuentas de servicio de Dataform

Las cuentas de servicio predeterminadas y personalizadas que se usan en Dataform requieren las siguientes funciones de IAM de BigQuery para poder ejecutar flujos de trabajo en BigQuery:

Además, debes otorgar a la cuenta de servicio predeterminada de Dataform Creador de tokens de cuentas de servicio(roles/iam.serviceAccountTokenCreator) acceso a cualquier cuenta de servicio personalizada que desees usar en Dataform.

Consideraciones de seguridad para las cuentas de servicio de Dataform

Otorgar las funciones que requiere Dataform a una cuenta de servicio implica las siguientes consideraciones de seguridad:

  • Cualquier cuenta de servicio a la que se le otorguen las funciones necesarias podría obtener acceso a BigQuery o Secret Manager en el proyecto al que pertenece la cuenta de servicio, sin importar los Controles del servicio de VPC.

    Si deseas obtener más información, consulta Configura los Controles del servicio de VPC para Dataform.

  • Cualquier usuario que tenga el permiso de IAM dataform.repositories.create puede ejecutar código con la cuenta de servicio predeterminada de Dataform y todos los permisos otorgados a esa cuenta de servicio.

    Si quieres obtener más información, consulta Consideraciones de seguridad para los permisos de Dataform.

Para restringir los datos que un usuario o una cuenta de servicio puede leer o escribir en BigQuery, puedes otorgar permisos detallados de IAM de BigQuery a las tablas o conjuntos de datos de BigQuery seleccionados. Para obtener más información, consulta Controla el acceso a los conjuntos de datos y Controla el acceso a las tablas y vistas.

Antes de comenzar

  1. En la consola de Google Cloud, ve a la página Dataform.

    Ir a la página de Dataform

  2. Selecciona o crea un repositorio.

Otorga los roles de BigQuery necesarios a una cuenta de servicio que se use en Dataform

Para otorgar los roles de IAM de BigQuery necesarios a tu cuenta de servicio predeterminada de Dataform o a una cuenta de servicio personalizada que desees usar en Dataform, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página IAM.

    Ve a la página IAM

  2. Haz clic en Otorgar acceso.

  3. En el campo Principales nuevas, ingresa el ID de la cuenta de servicio.

  4. En la lista desplegable Seleccionar una función, selecciona la función Usuario de trabajo de BigQuery.

  5. Haz clic en Agregar otra función y, luego, en la lista desplegable Seleccionar una función, selecciona la función Editor de datos de BigQuery.

  6. Haz clic en Agregar otro rol y, luego, en la lista desplegable Seleccionar un rol, selecciona el rol Visualizador de datos de BigQuery.

  7. Haz clic en Guardar.

Otorga acceso para crear tokens a una cuenta de servicio personalizada

Para usar una cuenta de servicio personalizada en Dataform, la cuenta de servicio predeterminada debe poder acceder a la cuenta de servicio personalizada. Para otorgar este acceso, debes agregar la cuenta de servicio predeterminada de Dataform como principal a la cuenta de servicio personalizada con el rol de Creador de tokens de cuenta de servicio.

Para otorgar acceso a una cuenta de servicio personalizada a la cuenta de servicio predeterminada de Dataform, sigue estos pasos:

  1. En la consola de Google Cloud, ve a IAM > Cuentas de servicio.

    Ir a la página Cuentas de servicio

  2. Selecciona un proyecto

  3. En la página Cuentas de servicio para el proyecto “YOUR_PROJECT_NAME, selecciona tu cuenta de servicio personalizada de Dataform.

  4. Ve a Permisos y, luego, haz clic en Otorgar acceso.

  5. En el campo Principales nuevas, ingresa el ID predeterminado de la cuenta de servicio de Dataform.

    El ID predeterminado de la cuenta de servicio de Dataform tiene el siguiente formato:

    service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  6. En la lista desplegable Seleccionar una función, selecciona la función Creador de tokens de cuenta de servicio.

  7. Haz clic en Guardar.

¿Qué sigue?