Autorizar contas para transferência de dados

Neste documento, fornecemos uma visão geral de como o serviço de transferência de dados do BigQuery interage com diferentes tipos de conta, os tipos de autorização de conta necessários para executar tarefas gerais de transferência e etapas de solução de problemas para erros comuns de permissão.

Para começar a usar o serviço de transferência de dados do BigQuery, verifique se as contas associadas ao projeto (contas de usuário e contas de serviço) estão autenticadas e autorizadas com as permissões corretas para atender às necessidades de transferência. Para informações sobre permissões específicas da fonte de dados, consulte o guia de transferência de cada fonte.

Principais conceitos

O serviço de transferência de dados do BigQuery automatiza transferências de dados de várias fontes para o BigQuery. O modelo de autenticação e autorização opera em dois estágios diferentes, o plano de controle e o plano de dados, e para dois tipos de usuários, um criador ou proprietário da transferência.

Plano de controle

O plano de controle representa o estágio no processo de autorização em que um usuário autenticado pode controlar e gerenciar configurações e execuções de transferência. Um usuário no plano de controle precisa ter as permissões de gerenciamento de identidade e acesso (IAM, na sigla em inglês) apropriadas para controlar e gerenciar as configurações e as execuções de transferência:

  • A permissão bigquery.transfers.update, que permite aos usuários fazer o seguinte:
    • Defina as configurações de transferência de dados.
    • Administrar as transferências existentes, como atualizar, desativar ou excluir uma transferência.
  • A permissão bigquery.transfers.get, que permite aos usuários monitorar execuções de transferência, como verificar o status ou visualizar o histórico e os registros.

Se você estiver usando o console do Google Cloud ou a ferramenta de linha de comando bq para criar uma transferência, também precisará ter a permissão bigquery.transfers.get.

A permissão bigquery.transfers.update não é necessária para configurar uma consulta programada. Para mais informações, consulte as permissões necessárias para consultas programadas.

Plano de dados

O plano de dados representa o estágio fora do controle direto do usuário. No plano de dados, o serviço de transferência de dados do BigQuery pode operar transferências de dados em modo off-line e pode acionar execuções de transferência automaticamente com base em uma programação especificada pelo usuário. No plano de dados, a credencial do proprietário da transferência é usada para acessar os dados de origem e, dependendo da fonte, as credenciais do proprietário da transferência ou o agente de serviço do serviço de transferência de dados do BigQuery é usado para iniciar jobs do BigQuery e gravar dados no conjunto de dados de destino.

Para mais detalhes sobre as permissões necessárias, consulte as seguintes seções neste guia:

Criador da transferência x proprietário da transferência

Um criador de transferência se refere à identidade do usuário que criou e definiu a configuração da transferência. Um usuário do serviço de transferência de dados do BigQuery e um criador de transferência podem ser uma conta de usuário ou uma conta de serviço.

Um proprietário de transferência se refere à identidade do usuário que o serviço de transferência de dados do BigQuery usa para autorizar a transferência de dados, especificamente, para extrair os dados de origem. Para as fontes de dados compatíveis com contas de serviço, o proprietário da transferência pode ser uma conta de usuário ou uma conta de serviço. Para outras fontes de dados, o proprietário da transferência precisa ser uma conta de usuário.

O proprietário e o criador da transferência podem ter a mesma identidade de usuário, mas não é um requisito. Há várias maneiras de configurar o proprietário da transferência como um usuário diferente do criador da transferência:

  • Ao criar uma transferência, você poderá definir o proprietário como uma conta de serviço se a fonte de dados for compatível com contas de serviço.
  • Depois que uma transferência é criada, é possível transferir a propriedade para uma nova conta de usuário (ou para uma conta de serviço, se a fonte de dados for compatível com contas de serviço) que tenha as permissões bigquery.transfers.update e bigquery.transfers.get. É necessário fazer login na nova conta para atualizar as credenciais.

Autorização de acesso de leitura para fontes de dados externas

As permissões necessárias para ler os dados de origem podem variar de uma fonte para outra. Por exemplo, acessar o Google Ads requer permissões de acesso de leitura para o ID de cliente do Google Ads. Da mesma forma, o Google Play requer acesso ao relatório no Google Play Console. Para mais informações sobre permissões específicas de uma fonte de dados, consulte os guias de transferência de cada fonte.

Dependendo do tipo de identidade do proprietário da transferência, um método de autorização diferente é necessário para recuperar o token de acesso e acessar os dados de origem.

Transferir o proprietário como uma conta de serviço

Quando uma conta de serviço é usada como o proprietário da transferência, as permissões necessárias são concedidas automaticamente quando a API do serviço de transferência de dados do BigQuery é ativada para seu projeto. O serviço de transferência de dados do BigQuery usa um agente de serviço para receber o token de acesso da conta de serviço fornecida pelo usuário (proprietário da transferência).

Quando você ativa a API do serviço de transferência de dados do BigQuery, um agente de serviço é criado para seu projeto. O sistema também concede ao agente de serviço o papel de agente de serviço de transferência de dados do BigQuery (roles/bigquerydatatransfer.serviceAgent), que inclui a permissão iam.serviceAccounts.getAccessToken. Essa permissão permite que o agente de serviço do serviço de transferência de dados do BigQuery represente a conta de serviço do proprietário da transferência para recuperar o token de acesso.

Para mais informações sobre o agente de serviço do serviço de transferência de dados do BigQuery, consulte Agente de serviço. Para mais informações sobre o uso de contas de serviço e a lista atualizada de fontes de dados compatíveis, consulte Usar contas de serviço.

Proprietário da transferência como uma conta de usuário

Se o proprietário da transferência que está criando a configuração da transferência for uma conta de usuário (e não uma conta de serviço), você precisará conceder permissão ao serviço de transferência de dados do BigQuery manualmente para receber o token de acesso dessa conta e acessar os dados de origem em nome do proprietário da transferência. É possível conceder aprovação manual com a interface da caixa de diálogo do OAuth.

Você só precisa conceder permissão ao serviço de transferência de dados do BigQuery pela primeira vez ao criar uma transferência para uma determinada fonte de dados. Você precisará conceder a permissão novamente ao criar a primeira transferência para uma região usada recentemente, mesmo que esteja usando a mesma fonte de dados. Transferências de dados de canais do YouTube são a exceção. Você deve conceder aprovação de permissões manualmente sempre que criar uma transferência de dados do canal do YouTube.

Alterar o proprietário da transferência atualizando as credenciais também requer aprovação manual se o novo proprietário nunca tiver criado uma transferência para a fonte de dados nessa região antes.

A captura de tela a seguir mostra a interface da caixa de diálogo do OAuth ao criar uma transferência do Google Ads. A caixa de diálogo exibe as permissões específicas da fonte de dados que serão concedidas:

Permitir que o serviço de transferência de dados do BigQuery acesse o Google Ads.

Para revogar as permissões concedidas, siga estas etapas:

  1. Acesse a página da Conta do Google.
  2. Clique em serviço de transferência de dados do BigQuery.
  3. Para revogar as permissões, clique em Remover acesso. Remova o acesso que você concedeu ao serviço de transferência de dados do BigQuery.

Autorização para iniciar jobs do BigQuery

Ao migrar da maioria das fontes de dados, exceto ao usar consultas programadas ou cópias de conjunto de dados, o serviço de transferência de dados do BigQuery depende do serviço de transferência de dados do BigQuery para iniciar jobs do BigQuery para seu projeto. A permissão necessária bigquery.job.create é concedida automaticamente ao agente de serviço quando você ativa a API do serviço de transferência de dados do BigQuery para seu projeto. Para mais informações, consulte Ativar o serviço de transferência de dados do BigQuery.

Ao migrar usando consultas programadas ou cópias de conjunto de dados, o serviço de transferência de dados do BigQuery usa as credenciais do proprietário da transferência para iniciar os jobs do BigQuery.

Autorização para executar jobs do BigQuery e gravar dados no conjunto de dados de destino

Ao migrar da maioria das origens de dados, exceto ao usar consultas programadas ou cópias de conjunto de dados, o serviço de transferência de dados do BigQuery depende do agente de serviço para gravar dados no conjunto de dados de destino do BigQuery. A permissão necessária, roles/bigquery.dataEditor, é concedida ao agente de serviço pelo serviço de transferência de dados do BigQuery quando você cria a transferência. Você precisa ter a permissão bigquery.datasets.update no conjunto de dados de destino para conceder a permissão com êxito.

Ao migrar usando consultas programadas ou cópias de conjunto de dados, o serviço de transferência de dados do BigQuery usa as credenciais do proprietário da transferência para executar os jobs do BigQuery e gravar os dados no conjunto de dados de destino do BigQuery.

Resolver erros de permissão

Se você tiver problemas relacionados à autorização ou às permissões para a transferência, consulte Problemas de autorização e permissão.