Usar o modo estrito de simulação

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:

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 Repository.ServiceAccount será usada.

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 WORKFLOW_CONFIG, a conta de serviço efetiva da configuração do fluxo de trabalho será usada.

Se você criar uma invocação de fluxo de trabalho com base em um resultado de compilação, a conta de serviço WorkflowInvocation.InvocationConfig será usada se estiver definida.

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:

  • create ou patch
    • Se a propriedade Repository.ServiceAccount estiver 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.
  • workflowConfigs.create ou workflowConfigs.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:

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

    Acesse as Contas de serviço

  2. Selecione um projeto.

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

  4. Acesse Principais com acesso e clique em Conceder acesso.

  5. 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.com
    
  6. Na lista Selecionar um papel, escolha Usuário da conta de serviço.

  7. 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.actAs necessá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.actAs na 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.actAs na 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