Usar contas de serviço
Algumas fontes de dados são compatíveis com a autenticação por transferência de dados com uma conta de serviço
usando o console do Google Cloud, a API ou a linha de comando bq
. Conta de serviço é uma Conta do Google associada ao projeto do Google Cloud. Ela pode executar jobs, como consultas programadas ou pipelines de processamento em lote, ao autenticar usando as credenciais da conta de serviço em vez das credenciais de um usuário.
É possível atualizar uma transferência de dados atual com as credenciais de uma conta de serviço. Para mais informações, consulte Atualizar as credenciais de transferência de dados.
As seguintes situações exigem a atualização das credenciais:
A transferência não autorizou o acesso do usuário à fonte de dados:
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATED
Você recebe o erro INVALID_USER ao tentar executar a transferência:
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERID
Para saber mais sobre a autenticação com contas de serviço, consulte Introdução à autenticação.
Origens de dados compatíveis com a conta de serviço
O serviço de transferência de dados do BigQuery pode usar credenciais de conta de serviço para transferências com o seguinte:
- Cloud Storage
- Amazon Redshift
- Amazon S3
- Campaign Manager
- Cópia do conjunto de dados
- Google Ad Manager
- Google Ads
- Google Merchant Center
- Google Play
- Consultas programadas
- Search Ads 360
- Teradata
- Proprietário do conteúdo no YouTube
Antes de começar
- Verifique se você concluiu todas as ações necessárias em Como ativar o serviço de transferência de dados do BigQuery.
- Atribua papéis do Identity and Access Management (IAM) que concedam aos usuários as permissões necessárias para realizar cada tarefa deste documento.
Permissões necessárias
Para atualizar uma transferência de dados para usar uma conta de serviço, é necessário ter as seguintes permissões:
A permissão
bigquery.transfers.update
para modificar a transferência.O papel predefinido do IAM
roles/bigquery.admin
inclui essa permissão.Acesso à conta de serviço. Para mais informações sobre como conceder o papel da conta de serviço aos usuários, consulte Papel do usuário da conta de serviço.
Verifique se a conta de serviço que você escolheu para executar a transferência tem as seguintes permissões:
Permissões
bigquery.datasets.get
ebigquery.datasets.update
no conjunto de dados de destino Se a tabela usar o controle de acesso no nível da coluna, a conta de serviço também precisará ter a permissãobigquery.tables.setCategory
.O papel predefinido do Cloud IAM
bigquery.admin
inclui todas essas permissões. Para mais informações sobre os papéis do IAM no serviço de transferência de dados do BigQuery, consulte Introdução ao IAM.Acesso à origem de dados da transferência configurada. Para mais informações sobre as permissões necessárias para diferentes fontes de dados, consulte Fontes de dados compatíveis com a conta de serviço.
Para transferências do Google Ads, a conta de serviço precisa receber autoridade em todo o domínio. Para mais informações, consulte o Guia da conta de serviço da API Google Ads.
Atualizar as credenciais de transferência de dados
Console
O procedimento a seguir atualiza uma configuração de transferência de dados para autenticar como uma conta de serviço em vez de sua conta de usuário individual.
No console do Google Cloud, acesse a página "Transferências de dados".
Clique na transferência na lista correspondente.
Clique em EDITAR para atualizar a configuração da transferência.
No campo Conta de serviço, digite o nome da conta de serviço.
Clique em Save.
bq
Para atualizar as credenciais de uma transferência de dados, use a ferramenta de linha de comando bq para atualizar a configuração de transferência.
Use o comando
bq update
--transfer_config
--update_credentials
com as sinalizações
--service_account_name
e .
Por exemplo, o comando a seguir atualiza uma configuração de transferência de dados para autenticar como uma conta de serviço em vez de sua conta de usuário 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 testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.