O modo estrito "agir como" ativa uma verificação de segurança adicional para as seguintes ações do usuário no Dataform:
- Criar ou atualizar um repositório
- Criar ou atualizar uma configuração de fluxo de trabalho
- Como criar uma invocação de fluxo de trabalho
- Como atualizar uma configuração de versão
Essa verificação de segurança adicional exige que o usuário que realiza essas ações
tenha a permissão iam.serviceAccounts.actAs na conta de serviço efetiva,
que é a conta de serviço cujas credenciais são usadas para executar fluxos de trabalho.
Para mais informações, consulte
Anexar contas de serviço a recursos.
Você pode ativar essas permissões das seguintes maneiras:
- Ao criar um repositório
- Ao atualizar um repositório com a flag
strict_act_as_checks
Funções exigidas
Para receber as permissões necessárias
para concluir as tarefas neste documento,
peça ao administrador para conceder a você o
papel do IAM de Usuário da conta de serviço (roles/iam.serviceAccountUser)
na conta de serviço personalizada.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Determinar a conta de serviço efetiva
É possível determinar a conta de serviço efetiva que está executando os fluxos de trabalho de acordo com o tipo de recurso e as seguintes condições:
| Tipo de recurso | Conta de serviço efetiva |
|---|---|
| Repositórios | Se você selecionar uma conta de serviço personalizada ao criar o repositório, a conta de serviço Caso contrário, o padrão será o agente de serviço do Dataform. |
| Configuração do fluxo de trabalho | É possível selecionar uma conta de serviço personalizada ao criar a configuração do fluxo de trabalho. Caso contrário, o padrão será o agente de serviço do Dataform do repositório. |
| Invocação de fluxo de trabalho | Se o resultado da compilação for Se você criar uma invocação de fluxo de trabalho com base em um resultado de compilação, a conta de serviço Caso contrário, o padrão será o agente de serviço do Dataform do repositório. |
Conceder o papel do IAM de usuário da conta de serviço
O papel Usuário da conta de serviço (roles/iam.serviceAccountUser) contém a permissão iam.serviceAccounts.actAs, que é necessária para o modo estrito de agir como. Ao usar a API Dataform, você precisa ter o papel de usuário da conta de serviço concedido para a conta de serviço efetiva com base no método projects.locations.repositories que está chamando:
createoupatch- Se a propriedade
Repository.ServiceAccountestiver definida, você precisará ter o papel de usuário da conta de serviço concedido para essa propriedade. - Se você estiver chamando o método
patch, precisará ter o papel de usuário da conta de serviço concedido para todas as contas de serviço efetivas em todas as configurações de fluxo de trabalho no repositório.
- Se a propriedade
workflowConfigs.createouworkflowConfigs.patch- Você precisa ter o papel de usuário da conta de serviço concedido para a conta de serviço efetiva usada na configuração do fluxo de trabalho.
releaseConfigs.patch- Você precisa ter o papel de usuário da conta de serviço concedido para todas as contas de serviço efetivas usadas nas configurações de fluxo de trabalho com essa configuração de lançamento.
workflowInvocations.create- Você precisa ter o papel de usuário da conta de serviço concedido para a conta de serviço efetiva usada na invocação do fluxo de trabalho.
Para conceder o papel de Usuário da conta de serviço a uma conta de serviço personalizada, siga estas etapas:
No console Google Cloud , acesse IAM > Contas de serviço.
Selecione um projeto.
Na página Contas de serviço do projeto "PROJECT_NAME", selecione sua conta de serviço personalizada.
Acesse Principais com acesso e clique em Conceder acesso.
No campo Novos principais, insira o ID do agente de serviço padrão do Dataform.
O ID do agente de serviço padrão do Dataform está no seguinte formato:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comNa lista Selecionar um papel, escolha Usuário da conta de serviço.
Clique em Salvar.
Para mais informações, consulte os papéis necessários para criar uma configuração de fluxo de trabalho e os papéis necessários para criar uma configuração de lançamento.
Efeitos do modo de agir como estrito em execuções e lançamentos automáticos
Quando o modo estrito de agir como está ativado, ele afeta as versões automáticas de repositório e as execuções automáticas de fluxo de trabalho da seguinte maneira:
Para repositórios que não estão conectados a repositórios de terceiros:
- Não é possível definir uma
programação do Cron
para lançamentos automáticos em configurações de lançamento. Isso é aplicado para evitar a implantação automática de
mudanças no código feitas por um usuário que pode não ter as permissões
iam.serviceAccounts.actAsnecessárias em contas de serviço downstream. - As execuções programadas de fluxo de trabalho usando uma programação cron nas configurações de fluxo de trabalho permanecem ativadas. Para que essas execuções automatizadas sejam bem-sucedidas, conceda ao agente de serviço padrão do Dataform a permissão
iam.serviceAccounts.actAsna conta de serviço efetiva especificada na configuração do fluxo de trabalho.
Para repositórios conectados a repositórios de terceiros:
- São permitidos lançamentos e execuções de fluxo de trabalho programados.
- Para ativar uma versão automática de uma configuração de versão ou uma execução automática de uma configuração de fluxo de trabalho, conceda ao agente de serviço padrão do Dataform a permissão
iam.serviceAccounts.actAsna conta de serviço efetiva relevante:- Para uma configuração de lançamento automática, conceda a permissão nas contas de serviço efetivas de todas as configurações de fluxo de trabalho acionadas por essa configuração de lançamento.
- Para uma configuração automática de fluxo de trabalho, conceda a permissão na conta de serviço efetiva usada por essa configuração.
A seguir
- Para saber como criar um repositório, consulte Criar um repositório.
- Para saber mais sobre como o Dataform funciona com o BigQuery, consulte Visão geral dos fluxos de trabalho.
- Para saber como criar uma configuração de fluxo de trabalho, consulte Programar execuções.
- Para saber como criar uma configuração de versão, consulte Configurar compilações.