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, esta genera automáticamente una cuenta de servicio predeterminada. Dataform usa la cuenta de servicio predeterminada para interactuar con BigQuery por ti. A la cuenta de servicio predeterminada de Dataform no se le otorga ningún permiso ni función 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 o una configuración de flujo de trabajo de Dataform, puedes seleccionar cualquier cuenta de servicio asociada con tu proyecto de Google Cloud al 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 con un repositorio de Dataform solo se usa para ejecutar flujos de trabajo desde ese repositorio. La cuenta de servicio predeterminada de Dataform sigue realizando 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 los siguientes roles de IAM de BigQuery para poder ejecutar flujos de trabajo en BigQuery:

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

Consideraciones de seguridad para las cuentas de servicio de Dataform

Para otorgar las funciones que requiere Dataform a una cuenta de servicio, debes tener en cuenta las siguientes consideraciones de seguridad:

  • Cualquier cuenta de servicio que tenga los roles necesarios puede obtener acceso a BigQuery o Secret Manager, 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 el código con la cuenta de servicio predeterminada de Dataform y todos los permisos otorgados a esa cuenta de servicio.

    Si deseas 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 pueden leer o escribir en BigQuery, puedes otorgar permisos de IAM detallados de BigQuery a las tablas o los 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 usa 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 quieras 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 otro rol y, luego, en la lista desplegable Selecciona un rol, selecciona el rol Editor de datos de BigQuery.

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

  7. Haz clic en Guardar.

Otorga acceso de creación de 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 ella. Para otorgar este acceso, debes agregar la cuenta de servicio predeterminada de Dataform como un principal a la cuenta de servicio personalizada con el rol de Creador de tokens de cuenta de servicio.

Para otorgar a la cuenta de servicio predeterminada de Dataform acceso a una cuenta de servicio personalizada, 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 del proyecto “YOUR_PROJECT_NAME, selecciona una cuenta de servicio.

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

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

  6. En la lista desplegable Seleccionar una función, selecciona la función Creador de tokens para cuenta de servicio.

  7. Haz clic en Guardar.

¿Qué sigue?