Sobre as contas de serviço no Dataform
Quando você cria seu primeiro repositório do Dataform, ele gera automaticamente uma conta de serviço padrão. O Dataform usa a conta de serviço padrão para interagir com o BigQuery em seu nome. A conta de serviço padrão do Dataform não recebe nenhum papel ou permissão do BigQuery por padrão. É necessário conceder o acesso necessário à conta de serviço padrão do Dataform.
O ID da conta de serviço padrão do Dataform tem o seguinte formato:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Substitua YOUR_PROJECT_NUMBER pelo ID numérico do projeto Google Cloud . Encontre o ID do projeto Google Cloud no painel do console do Google Cloud. Para mais informações, consulte Como identificar projetos.
Além da conta de serviço padrão do Dataform, é possível usar outras contas de serviço para executar fluxos de trabalho em seu nome. É possível configurar contas de serviço personalizadas:
No nível do repositório, para executar todos os fluxos de trabalho em um determinado repositório.
Individualmente para cada configuração de fluxo de trabalho.
Ao criar um repositório do Dataform ou uma configuração de fluxo de trabalho, você pode selecionar qualquer conta de serviço associada ao seu projeto do Google Cloud a que você tenha acesso. É necessário configurar as permissões necessárias para todas as contas de serviço associadas aos seus recursos do Dataform.
Uma conta de serviço personalizada associada a um repositório do Dataform é usada apenas para executar fluxos de trabalho desse repositório. Todas as outras operações do repositório ainda são realizadas pela conta de serviço padrão do Dataform.
Papéis necessários para contas de serviço do Dataform
As contas de serviço padrão e personalizadas usadas no Dataform exigem os seguintes papéis do IAM do BigQuery para executar fluxos de trabalho no BigQuery:
- Editor de dados do BigQuery em projetos em que o Dataform precisa de acesso de leitura e gravação. Eles geralmente incluem o projeto que hospeda o repositório do Dataform.
- Visualizador de dados do BigQuery em projetos em que o Dataform precisa de acesso somente leitura.
- Usuário de jobs do BigQuery no projeto que hospeda o repositório do Dataform.
- Proprietário de dados do BigQuery, se você quiser consultar conjuntos de dados do BigQuery.
- Funções do BigQuery para controle de acesso no nível da coluna se você quiser usar tags de políticas do BigQuery.
Além disso, é necessário conceder ao Criador de token da conta de serviço(roles/iam.serviceAccountTokenCreator
) da conta de serviço padrão do Dataform acesso a todas as contas de serviço personalizadas que você quer usar no Dataform.
Considerações de segurança para contas de serviço do Dataform
A concessão dos papéis exigidos pelo Dataform a uma conta de serviço vem com as seguintes considerações de segurança:
Qualquer conta de serviço que receber as funções necessárias pode ter acesso ao BigQuery ou ao Secret Manager no projeto a que pertence, independentemente dos controles de serviço da VPC.
Para mais informações, consulte Configurar o VPC Service Controls para o Dataform.
Qualquer usuário com a permissão IAM
dataform.repositories.create
pode executar o código usando a conta de serviço padrão do Dataform e todas as permissões concedidas a essa conta.Para mais informações, consulte Considerações de segurança para permissões do Dataform.
Para restringir os dados que uma conta de usuário ou de serviço pode ler ou gravar no BigQuery, é possível conceder permissões granulares do IAM do BigQuery a conjuntos de dados ou tabelas selecionados. Para mais informações, consulte Como controlar o acesso a conjuntos de dados e Como controlar o acesso a tabelas e visualizações.
Antes de começar
No Console do Google Cloud, acesse a página Dataform.
Selecione ou crie um repositório.
Conceder os papéis necessários do BigQuery a uma conta de serviço usada no Dataform
Para conceder os papéis do IAM do BigQuery necessários à sua conta de serviço padrão do Dataform ou a uma conta de serviço personalizada que você quer usar no Dataform, siga estas etapas:
No console do Google Cloud, abra a página IAM.
Clique em Permitir acesso.
No campo Novos principais, insira o ID da conta de serviço.
Na lista suspensa Selecionar um papel, escolha a opção Usuário de jobs do BigQuery.
Clique em Adicionar outro papel. Em seguida, na lista suspensa do campo Selecionar papel, escolha a opção Editor de dados do BigQuery.
Clique em Adicionar outro papel. Depois, na lista suspensa do campo Selecionar papel, escolha Leitor de dados do BigQuery.
Clique em Salvar.
Conceder acesso à criação de tokens a uma conta de serviço personalizada
Para usar uma conta de serviço personalizada no Dataform, a conta de serviço padrão do Dataform precisa poder acessar a conta de serviço personalizada. Para conceder esse acesso, adicione a conta de serviço padrão do Dataform como principal à conta de serviço personalizada com o papel Criador de token da conta de serviço.
Para conceder à conta de serviço padrão do Dataform acesso a uma conta de serviço personalizada, siga estas etapas:
No console do Google Cloud, acesse IAM > Contas de serviço.
Selecione um projeto.
Na página Contas de serviço do projeto "YOUR_PROJECT_NAME", selecione sua conta de serviço personalizada do Dataform.
Acesse Permissões e clique em Conceder acesso.
No campo Novos participantes, insira o ID da conta de serviço padrão do Dataform.
O ID da conta de serviço padrão do Dataform tem o seguinte formato:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Na lista suspensa Selecionar um papel, escolha o papel Criador de token de conta de serviço.
Clique em Salvar.
A seguir
- Para saber mais sobre os papéis e as permissões do IAM no BigQuery, consulte Controle de acesso com o IAM.
- Para saber mais sobre como conceder permissões granulares a conjuntos de dados do BigQuery, consulte Como controlar o acesso a conjuntos de dados.
- Para saber mais sobre como conceder permissões granulares a tabelas do BigQuery, consulte Como controlar o acesso a tabelas e visualizações.
- Para saber como controlar o acesso ao Dataform com o VPC Service Controls, consulte Configurar o VPC Service Controls para o Dataform.