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 en tu nombre. De forma predeterminada, a la cuenta de servicio predeterminada de Dataform no se le otorga ningún rol ni permiso de BigQuery. Debes otorgar el acceso requerido a la cuenta de servicio predeterminada de Dataform.

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

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

Reemplaza YOUR_PROJECT_NUMBER por el ID numérico de tu Google Cloud proyecto. Puedes encontrar el Google Cloud ID de tu proyecto 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 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 todas las demás operaciones del repositorio.

Roles necesarios 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 otorgarle a la cuenta de servicio predeterminada de Dataform Creador de tokens de cuenta de servicio(roles/iam.serviceAccountTokenCreator) acceso a todas las cuentas de servicio personalizadas que quieras usar en Dataform.

Consideraciones de seguridad para las cuentas de servicio de Dataform

Si otorgas los roles que requiere Dataform a una cuenta de servicio, ten en cuenta las siguientes consideraciones de seguridad:

  • Cualquier cuenta de servicio a la que se le otorguen los roles necesarios podría obtener acceso a BigQuery o Secret Manager en el proyecto al que pertenece, independientemente de los Controles del servicio de VPC.

    Para 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 mediante la cuenta de servicio predeterminada de Dataform y todos los permisos otorgados a esa cuenta de servicio.

    Para 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 conjuntos de datos o tablas 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.

    Ve a la página 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 un rol, selecciona el rol Usuario de trabajo de BigQuery.

  5. Haz clic en Agregar otro rol y, luego, en la lista desplegable Selecciona un rol, elige Editor de datos de BigQuery.

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

  7. Haz clic en Guardar.

Otorga acceso a la creación de tokens a una cuenta de servicio personalizada

Para usar una cuenta de servicio personalizada en Dataform, la cuenta de servicio predeterminada de Dataform 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 cuentas de servicio.

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

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

    Ve 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 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 de tu cuenta de servicio predeterminada de Dataform.

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

    service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  6. En la lista desplegable Seleccionar un rol, selecciona el rol Creador de tokens de cuenta de servicio.

  7. Haz clic en Guardar.

¿Qué sigue?