Conceder o acesso necessário ao Dataform

Neste documento, mostramos como conceder os papéis do Identity and Access Management (IAM) exigidos pelas contas de serviço do Dataform para executar fluxos de trabalho no BigQuery.

Sobre 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. Por padrão, a conta de serviço padrão do Dataform não recebe papéis ou permissões do BigQuery. Conceda 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 do Google Cloud. É possível encontrar o ID do projeto do 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:

Ao criar um repositório do Dataform ou uma configuração de fluxo de trabalho, é possível selecionar qualquer conta de serviço associada ao seu projeto do Google Cloud a que você tem acesso. Configure 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 nesse repositório. Todas as outras operações de 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:

Além disso, você precisa conceder à conta de serviço padrão do Dataform o acesso de Criador de token da conta de serviço(roles/iam.serviceAccountTokenCreator) a qualquer conta de serviço personalizada que queira 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 envolve as seguintes considerações de segurança:

  • Qualquer conta de serviço que tenha os papéis necessários pode ganhar acesso ao BigQuery ou ao Secret Manager no projeto a que essa conta de serviço pertence, independentemente do VPC Service Controls.

    Para mais informações, consulte Configurar o VPC Service Controls para o Dataform.

  • Qualquer usuário que tenha a permissão dataform.repositories.create do IAM pode executar o código usando a conta de serviço padrão do Dataform e todas as permissões concedidas a essa conta de serviço.

    Para mais informações, consulte Considerações de segurança para permissões do Dataform.

Para restringir os dados que um usuário ou uma conta de serviço pode ler ou gravar no BigQuery, conceda permissões granulares do IAM do BigQuery a tabelas ou conjuntos de dados 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

  1. No Console do Google Cloud, acesse a página Dataform.

    Acessar a página do Dataform

  2. 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 de 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:

  1. No console do Google Cloud, abra a página IAM.

    Acessar a página do IAM

  2. Clique em Permitir acesso.

  3. No campo Novos principais, insira o ID da conta de serviço.

  4. Na lista suspensa Selecionar um papel, escolha o papel Usuário de jobs do BigQuery.

  5. Clique em Adicionar outro papel e, na lista suspensa Selecionar um papel, selecione o papel Editor de dados do BigQuery.

  6. Clique em Adicionar outro papel e, na lista suspensa Selecionar um papel, selecione o papel Leitor de dados do BigQuery.

  7. Clique em Salvar.

Conceder acesso de 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 ter acesso a ela. Para conceder esse acesso, você precisa adicionar 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:

  1. No console do Google Cloud, acesse IAM > Contas de serviço.

    Acessar a página Contas de serviço

  2. Selecione um projeto.

  3. Na página Contas de serviço do projeto "YOUR_PROJECT_NAME", selecione sua conta de serviço personalizada do Dataform.

  4. Acesse Permissões e clique em Conceder acesso.

  5. No campo Novos principais, 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
    
  6. Na lista suspensa Selecionar papel, escolha o papel Criador de token de conta de serviço.

  7. Clique em Salvar.

A seguir