Autoriza cuentas para la transferencia de datos

En este documento, se proporciona una descripción general de cómo el Servicio de transferencia de datos de BigQuery interactúa con los diferentes tipos de cuentas, los tipos de autorización de cuenta que necesitas para realizar tareas generales de transferencia y los pasos para solucionar problemas de errores comunes de permisos.

Para comenzar a usar el Servicio de transferencia de datos de BigQuery, asegúrate de que las cuentas asociadas con tu proyecto (cuentas de usuario y cuentas de servicio) estén autenticadas y autorizadas con los permisos correctos para realizar tus necesidades de transferencia. Para obtener información sobre los permisos específicos de la fuente de datos, consulta la guía de transferencia de cada fuente de datos.

Conceptos clave

El Servicio de transferencia de datos de BigQuery automatiza las transferencias de datos de varias fuentes de datos a BigQuery. El modelo de autenticación y autorización opera en dos etapas diferentes: el plano de control y el plano de datos, y para dos tipos de usuarios, un creador de transferencias o un propietario de la transferencia.

Plano de control

El plano de control representa la etapa del proceso de autorización en la que un usuario autenticado puede controlar y administrar la configuración y las ejecuciones de transferencia. Un usuario en el plano de control debe tener los permisos adecuados de administración de identidades y accesos (IAM) para controlar y administrar sus configuraciones y ejecuciones de transferencia:

  • El permiso bigquery.transfers.update, que permite a los usuarios hacer lo siguiente:
    • Establece las opciones de configuración de transferencia de datos.
    • Administra las transferencias existentes, como actualizar, inhabilitar o borrar una transferencia
  • El permiso bigquery.transfers.get, que permite a los usuarios supervisar las ejecuciones de transferencia, como verificar el estado de ejecución de la transferencia o ver el historial y los registros de las ejecuciones de transferencia.

Si usas la consola de Google Cloud o la herramienta de línea de comandos de bq para crear una transferencia, también debes tener el permiso bigquery.transfers.get.

El permiso bigquery.transfers.update no es necesario para configurar una consulta programada. Para obtener más información, consulta los permisos necesarios para las consultas programadas.

Plano de datos

El plano de datos representa la etapa fuera del control directo del usuario. En el plano de datos, el Servicio de transferencia de datos de BigQuery puede operar las transferencias de datos en un modo sin conexión y puede activar ejecuciones de transferencia de forma automática según un programa especificado por el usuario. En el plano de datos, la credencial del propietario de la transferencia se usa para acceder a los datos de origen y, según la fuente de datos, las credenciales del propietario de la transferencia o el Servicio de transferencia de datos de BigQueryagente de servicio se usa para iniciar trabajos de BigQuery y escribir datos en el conjunto de datos de destino.

Para obtener más detalles sobre los permisos obligatorios, consulta las siguientes secciones en esta guía:

Creador de la transferencia frente a propietario de la transferencia

Un creador de transferencias hace referencia a la identidad del usuario que creó y estableció la configuración de transferencia. Un usuario del Servicio de transferencia de datos de BigQuery y un creador de transferencias puede ser una cuenta de usuario o una cuenta de servicio.

Un propietario de transferencia hace referencia a la identidad del usuario que el Servicio de transferencia de datos de BigQuery usa para autorizar la transferencia de datos, en particular, para extraer los datos de origen. Para las fuentes de datos que admiten cuentas de servicio, el propietario de la transferencia puede ser una cuenta de usuario o una cuenta de servicio. Para otras fuentes de datos, el propietario de la transferencia debe ser una cuenta de usuario.

El propietario y el creador de la transferencia pueden tener la misma identidad de usuario, pero no es un requisito. Existen varias formas de configurar el propietario de la transferencia para que sea un usuario diferente del creador de la transferencia:

  • Cuando creas una transferencia, puedes establecer el propietario en una cuenta de servicio si la fuente de datos admite cuentas de servicio.
  • Una vez que se crea una transferencia, puedes transferir la propiedad a una cuenta de usuario nueva (o a una cuenta de servicio si la fuente de datos admite cuentas de servicio) que tenga los permisos bigquery.transfers.update y bigquery.transfers.get. Debes acceder a la cuenta nueva cuando actualices las credenciales.

Autorización de acceso de lectura para fuentes de datos externas

Los permisos necesarios para leer los datos de origen pueden variar de una fuente de datos a otra. Por ejemplo, para acceder a Google Ads se requieren permisos de acceso de lectura al ID de cliente de Google Ads. Del mismo modo, Google Play requiere acceso a los informes en Google Play Console. Si deseas obtener más información sobre los permisos específicos de una fuente de datos, consulta las guías de transferencia para cada fuente de datos.

Según el tipo de identidad del propietario de la transferencia, se requiere un método de autorización diferente para recuperar el token de acceso para acceder a los datos de origen.

Propietario de la transferencia como una cuenta de servicio

Cuando se usa una cuenta de servicio como propietario de la transferencia, se otorgan automáticamente los permisos necesarios cuando se habilita la API del Servicio de transferencia de datos de BigQuery para tu proyecto. El Servicio de transferencia de datos de BigQuery usa una cuenta de servicio administrada por Google (también conocida como agente de servicio) para obtener el token de acceso para el usuario proporcionado por el usuario para la cuenta de servicio (propietario de la transferencia).

Cuando habilitas la API del Servicio de transferencia de datos de BigQuery, se crea un agente de servicio para tu proyecto. El sistema también otorga al agente de servicio el rol de agente de Servicio de transferencia de datos de BigQuery (roles/bigquerydatatransfer.serviceAgent), que incluye el permiso iam.serviceAccounts.getAccessToken. Ese permiso permite que el agente de servicio del Servicio de transferencia de datos de BigQuery actúe en nombre de la cuenta de servicio del propietario de la transferencia para recuperar el token de acceso.

Para obtener más información sobre el agente de servicio del Servicio de transferencia de datos de BigQuery, consulta Agente de servicio. Para obtener más información sobre el uso de cuentas de servicio y la lista actualizada de fuentes de datos que admiten cuentas de servicio, consulta Usa cuentas de servicio.

Transfiere el propietario como una cuenta de usuario

Si el propietario de la transferencia que crea la configuración de la transferencia es una cuenta de usuario (no una cuenta de servicio), debes otorgar permiso de forma manual al Servicio de transferencia de datos de BigQuery para obtener el token de acceso para la cuenta de usuario y el acceso. los datos de origen en nombre del propietario de la transferencia. Puedes otorgar aprobación manual con la interfaz de diálogo de OAuth.

Solo necesitas otorgar permiso al Servicio de transferencia de datos de BigQuery por primera vez cuando creas una transferencia para una fuente de datos determinada. Debes volver a otorgar el permiso cuando crees la primera transferencia para una región recién usada, incluso si usas la misma fuente de datos.

Para cambiar el propietario de la transferencia mediante la actualización de las credenciales, también se requiere aprobación manual si el propietario nuevo nunca creó una transferencia para la fuente de datos en esa región.

En la siguiente captura de pantalla, se muestra la interfaz de diálogo OAuth cuando creas una transferencia de Google Ads. En el cuadro de diálogo, se muestran los permisos específicos de la fuente de datos que se deben otorgar:

Permite que el Servicio de transferencia de datos de BigQuery acceda a Google Ads.

Para revocar los permisos que se otorgaron, sigue estos pasos:

  1. Ve a la página Cuenta de Google.
  2. Haz clic en Servicio de transferencia de datos de BigQuery.
  3. Para revocar los permisos, haz clic en Quitar acceso. Quita el acceso que otorgaste al Servicio de transferencia de datos de BigQuery.

Autorización para iniciar trabajos de BigQuery

Cuando migras desde la mayoría de las fuentes de datos, excepto cuando migras mediante consultas programadas o copias de conjuntos de datos, el Servicio de transferencia de datos de BigQuery se basa en las cuentas de servicio administradas de Google para iniciar trabajos de BigQuery para tu proyecto. El permiso necesario bigquery.job.create se otorga de forma automática al agente de servicio cuando habilitas la API del Servicio de transferencia de datos de BigQuery para tu proyecto. Para obtener más información, consulta Habilita el Servicio de transferencia de datos de BigQuery.

Cuando migras mediante consultas programadas o copias de conjuntos de datos, el Servicio de transferencia de datos de BigQuery usa las credenciales del propietario de la transferencia para iniciar los trabajos de BigQuery.

Autorización para ejecutar trabajos de BigQuery y escribir datos en el conjunto de datos de destino

Cuando migras desde la mayoría de las fuentes de datos, excepto cuando migras mediante consultas programadas o copias de conjuntos de datos, el Servicio de transferencia de datos de BigQuery depende del agente de servicio para escribir datos en el conjunto de datos de destino de BigQuery. El Servicio de transferencia de datos de BigQuery otorga el permiso requerido, roles/bigquery.dataEditor, al agente de servicio cuando creas la transferencia. Debes tener el permiso bigquery.datasets.update en el conjunto de datos de destino para otorgar el permiso de forma correcta.

Cuando migras mediante consultas programadas o copias de conjuntos de datos, el Servicio de transferencia de datos de BigQuery usa las credenciales del propietario de la transferencia para ejecutar los trabajos de BigQuery y escribir los datos en el conjunto de datos de destino de BigQuery.

Soluciona problemas de errores de permisos

Si tienes problemas relacionados con la autorización o los permisos para tu transferencia, consulta Problemas de autorización y permisos.