Usa cuentas de servicio
Algunas fuentes de datos admiten la autenticación de transferencia de datos con una cuenta de servicio
a través de la consola de Google Cloud, la API o la línea de comandos de bq
. Una cuenta
de servicio es una Cuenta de Google asociada con tu proyecto de Google Cloud. Una cuenta
de servicio puede ejecutar trabajos, como consultas programadas o canalizaciones de procesamiento por lotes, a través de
la autenticación con las credenciales de la cuenta de servicio en lugar de las credenciales de
un usuario.
Puedes actualizar una transferencia de datos existente con las credenciales de una cuenta de servicio. Para obtener más información, consulta Actualiza las credenciales de transferencia de datos.
En las siguientes situaciones, se requiere la actualización de credenciales:
Tu transferencia no pudo autorizar el acceso del usuario a la fuente de datos:
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATED
Recibirás un error INVALID_USER cuando intentes 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 Introducción a la autenticación.
Fuentes de datos compatibles con la cuenta de servicio
El Servicio de transferencia de datos de BigQuery puede usar credenciales de cuenta de servicio para las transferencias con los siguientes elementos:
- Cloud Storage
- Amazon Redshift
- Amazon S3
- Campaign Manager
- Copia de conjunto de datos
- Display & Video 360
- Google Ad Manager
- Google Ads
- Google Merchant Center
- Google Play
- Scheduled Queries
- Search Ads 360
- Teradata
- Propietario del contenido de YouTube
Antes de comenzar
- Verifica si completaste todas las acciones obligatorias en la página sobre cómo habilitar el Servicio de transferencia de datos de BigQuery.
- Otorga funciones de administración de identidades y accesos (IAM) que les brindan a los usuarios los permisos necesarios para realizar cada tarea de este documento.
Permisos necesarios
Para actualizar una transferencia de datos a fin de usar una cuenta de servicio, debes tener los siguientes permisos:
El permiso
bigquery.transfers.update
para modificar la transferencia.El rol predefinido de IAM
roles/bigquery.admin
incluye este permiso.Acceso a la cuenta de servicio. Si quieres más información para otorgarles a los usuarios el rol de cuenta de servicio, consulta Rol del 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 IAM predefinido de
bigquery.admin
incluye todos estos permisos. Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Introducción a IAM.Acceso a la fuente de datos de transferencia configurada. Si deseas obtener más información sobre los permisos necesarios para las diferentes fuentes de datos, consulta Fuentes de datos compatibles con la cuenta de servicio.
Para 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.
Actualiza las credenciales de transferencia de datos
Console
En el siguiente procedimiento, se actualiza una configuración de transferencia de datos para autenticarla como una cuenta de servicio en lugar de la cuenta de usuario individual.
En la consola de Google Cloud, ve a la página Transferencia de datos.
Haz clic en la transferencia en la lista de transferencias de datos.
Haz clic en Editar para actualizar la configuración de transferencia.
En el campo Cuenta de servicio, ingresa 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 de bq a fin de 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 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 instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.