Usar cuentas de servicio
Algunas fuentes de datos admiten la autenticación de transferencia de datos mediante una cuenta de servicio
a través de la consola, la API o la línea de comandos bq
. Google Cloud Una cuenta de servicio es una cuenta de Google asociada a tu proyecto de Google Cloud . Una cuenta de servicio puede ejecutar trabajos, como consultas programadas o pipelines de procesamiento por lotes, autenticándose con las credenciales de la cuenta de servicio en lugar de con las de un usuario.
Puedes actualizar una transferencia de datos con las credenciales de una cuenta de servicio. Para obtener más información, consulta Actualizar las credenciales de transferencia de datos.
En las siguientes situaciones, es necesario actualizar las credenciales:
No se ha podido autorizar el acceso del usuario a la fuente de datos en la transferencia:
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATED
Recibes un error INVALID_USER cuando intentas ejecutar la transferencia:
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERID
Para obtener más información sobre la autenticación con cuentas de servicio, consulta el artículo Introducción a la autenticación.
Fuentes de datos compatibles con cuentas de servicio
BigQuery Data Transfer Service puede usar las credenciales de la cuenta de servicio para las transferencias con lo siguiente:
- Cloud Storage
- Amazon Redshift
- Amazon S3
- Campaign Manager
- Huella de carbono
- Dataset Copy
- Display & Video 360
- Google Ad Manager
- Google Ads
- Google Merchant Center
- Google Play
- Consultas programadas
- Search Ads 360
- Teradata
- Propietario de contenido de YouTube
Antes de empezar
- Comprueba que has completado todas las acciones necesarias en Habilitar BigQuery Data Transfer Service.
- Concede roles de gestión de identidades y accesos (IAM) que proporcionen a los usuarios los permisos necesarios para realizar cada tarea de este documento.
Permisos obligatorios
Para actualizar una transferencia de datos y usar una cuenta de servicio, debes tener los siguientes permisos:
El permiso
bigquery.transfers.update
para modificar la transferencia.El rol de gestión de identidades y accesos
roles/bigquery.admin
predefinido incluye este permiso.Acceso a la cuenta de servicio. Para obtener más información sobre cómo asignar el rol de cuenta de servicio a los usuarios, consulta el artículo Rol Usuario de cuenta de servicio.
Asegúrate de que la cuenta de servicio que elijas para ejecutar la transferencia tenga los siguientes permisos:
Los permisos
bigquery.datasets.get
ybigquery.datasets.update
en el conjunto de datos de destino. Si la tabla usa el control de acceso a nivel de columna, la cuenta de servicio también debe tener el permisobigquery.tables.setCategory
.El rol de gestión de identidades y accesos predefinido
bigquery.admin
incluye todos estos permisos. Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery Data Transfer Service, consulta la introducción a la gestión de identidades y accesos.Acceso a la fuente de datos de la transferencia configurada. Para obtener más información sobre los permisos necesarios para las distintas fuentes de datos, consulta el artículo Fuentes de datos compatibles con cuentas de servicio.
En el caso de las transferencias de Google Ads, la cuenta de servicio debe tener autoridad en todo el dominio. Para obtener más información, consulta la guía de cuentas de servicio de la API de Google Ads.
Actualizar las credenciales de transferencia de datos
Consola
En el siguiente procedimiento se explica cómo actualizar una configuración de transferencia de datos para autenticarla como cuenta de servicio en lugar de como cuenta de usuario individual.
En la Google Cloud consola, ve a la página Transferencias de datos.
En la lista de transferencias de datos, haga clic en la transferencia que quiera.
Haz clic en EDITAR para actualizar la configuración de la transferencia.
En el campo Cuenta de servicio, introduce el nombre de la cuenta de servicio.
Haz clic en Guardar.
bq
Para actualizar las credenciales de una transferencia de datos, puedes usar la herramienta de línea de comandos bq para actualizar la configuración de la transferencia.
Usa el comando bq update
con las marcas --transfer_config
, --update_credentials
y --service_account_name
.
Por ejemplo, el siguiente comando actualiza una configuración de transferencia de datos para autenticarla como una cuenta de servicio en lugar de como tu cuenta de usuario individual:
bq update \
--transfer_config \
--update_credentials \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/5dd12f26-0000-262f-bc38-089e0820fe38 \
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.