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:
En el nivel del repositorio, para ejecutar todos los flujos de trabajo en un repositorio determinado.
De manera individual para cada configuración de flujo de trabajo
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:
- Editor de datos de BigQuery en proyectos para los que Dataform necesita acceso de lectura y escritura. Por lo general, incluyen el proyecto que aloja tu repositorio de Dataform.
- Visualizador de datos de BigQuery en proyectos para los que Dataform necesita acceso de solo lectura.
- Usuario de trabajo de BigQuery en el proyecto que aloja tu repositorio de Dataform.
- Propietario de datos de BigQuery si deseas consultar conjuntos de datos de BigQuery.
- Roles de BigQuery para el control de acceso a nivel de columna si deseas usar etiquetas de política de 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
En la consola de Google Cloud, ve a la página Dataform.
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:
En la consola de Google Cloud, ve a la página IAM.
Haz clic en Otorgar acceso.
En el campo Principales nuevas, ingresa el ID de la cuenta de servicio.
En la lista desplegable Seleccionar una función, selecciona la función Usuario de trabajo de BigQuery.
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.
Haz clic en Agregar otro rol y, luego, en la lista desplegable Seleccionar un rol, selecciona el rol Visualizador de datos de BigQuery.
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:
En la consola de Google Cloud, ve a IAM > Cuentas de servicio.
Selecciona un proyecto
En la página Cuentas de servicio para el proyecto “YOUR_PROJECT_NAME”, selecciona tu cuenta de servicio personalizada de Dataform.
Ve a Permisos y, luego, haz clic en Otorgar acceso.
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
En la lista desplegable Seleccionar una función, selecciona la función Creador de tokens de cuenta de servicio.
Haz clic en Guardar.
¿Qué sigue?
- Para obtener más información sobre las funciones y los permisos de IAM de BigQuery, consulta Control de acceso con IAM.
- Para obtener más información sobre cómo otorgar permisos detallados a los conjuntos de datos de BigQuery, consulta Controla el acceso a los conjuntos de datos.
- Para obtener más información sobre cómo otorgar permisos detallados a las tablas de BigQuery, consulta Controla el acceso a las tablas y vistas.
- Si quieres obtener información para controlar el acceso a Dataform con los Controles del servicio de VPC, consulta Configura los Controles del servicio de VPC para Dataform.