Use o modo de atuação rigoroso

O modo de atuação rigoroso ativa uma verificação de segurança adicional para as seguintes ações do utilizador no Dataform:

  • Criar ou atualizar um repositório
  • Criar ou atualizar uma configuração de fluxo de trabalho
  • Criar uma invocação de fluxo de trabalho
  • Atualizar uma configuração de lançamento

Esta verificação de segurança adicional requer que o utilizador que executa estas ações tenha a autorizaçã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 o artigo Anexe contas de serviço a recursos.

Pode ativar estas autorizações das seguintes formas:

  • Ao criar um repositório
  • Quando atualiza um repositório existente com a flag strict_act_as_checks repository

Funções necessárias

Para receber as autorizações de que precisa para concluir as tarefas neste documento, peça ao seu administrador para lhe conceder a função do IAM Utilizador da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço personalizada. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Determine a conta de serviço eficaz

Pode determinar a conta de serviço eficaz que está a executar os fluxos de trabalho de acordo com o tipo de recurso e as seguintes condições:

Tipo do recurso Conta de serviço efetiva
Repositórios

Se selecionar uma conta de serviço personalizada quando criar o repositório, é usada a conta de serviço Repository.ServiceAccount.

Caso contrário, a predefinição é o agente do serviço Dataform.

Configuração do fluxo de trabalho

Pode selecionar uma conta de serviço personalizada quando criar a configuração do fluxo de trabalho.

Caso contrário, a predefinição é o agente do serviço Dataform do repositório.

Invocações de fluxo de trabalho

Se o resultado da compilação for WORKFLOW_CONFIG, é usada a conta de serviço efetiva da configuração do fluxo de trabalho.

Se criar uma invocação de fluxo de trabalho a partir de um resultado de compilação, é usada a conta de serviço WorkflowInvocation.InvocationConfig, se estiver definida.

Caso contrário, a predefinição é o agente do serviço Dataform do repositório.

Conceda a função IAM de utilizador da conta de serviço

A função Utilizador da conta de serviço (roles/iam.serviceAccountUser) contém a autorização iam.serviceAccounts.actAs, que é necessária para o modo de atuação rigoroso. Quando usa a API Dataform, tem de ter a função Utilizador da conta de serviço concedida para a conta de serviço efetiva com base no método projects.locations.repositories que está a chamar:

  • create ou patch
    • Se a propriedade Repository.ServiceAccount estiver definida, deve ter a função de utilizador da conta de serviço concedida para essa propriedade.
    • Se estiver a chamar o método patch, deve ter a função Utilizador da conta de serviço concedida para todas as contas de serviço eficazes em todas as configurações do fluxo de trabalho no repositório.
  • workflowConfigs.create ou workflowConfigs.patch
    • Deve ter a função Utilizador da conta de serviço concedida para a conta de serviço eficaz usada na configuração do fluxo de trabalho.
  • releaseConfigs.patch
    • Deve ter a função Utilizador da conta de serviço concedida para todas as contas de serviço eficazes usadas nas configurações do fluxo de trabalho através desta configuração de lançamento.
  • workflowInvocations.create
    • Deve ter a função Utilizador da conta de serviço concedida para a conta de serviço eficaz usada na invocação do fluxo de trabalho.

Para conceder a função Utilizador da conta de serviço a uma conta de serviço personalizada, siga estes passos:

  1. Na Google Cloud consola, aceda a IAM > Contas de serviço.

    Aceda a Contas de serviço

  2. Selecione um projeto.

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

  4. Aceda a Entidades com acesso e, de seguida, clique em Conceder acesso.

  5. No campo Novos membros, introduza o ID do agente de serviço do Dataform predefinido.

    O ID do agente do serviço Dataform predefinido está no seguinte formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  6. Na lista Selecionar uma função, selecione a função Utilizador da conta de serviço.

  7. Clique em Guardar.

Para mais informações, consulte as funções necessárias para criar uma configuração de fluxo de trabalho e as funções necessárias para criar uma configuração de lançamento.

Efeitos do modo de atuação rigoroso em lançamentos e execuções automáticas

Quando o modo de agir como rigoroso está ativado, afeta as versões automáticas do repositório e as execuções automáticas do fluxo de trabalho da seguinte forma:

Para repositórios que não estão associados a repositórios de terceiros:

  • Não pode definir um agendamento do Cron para lançamentos automáticos nas configurações de lançamento. Isto é aplicado para evitar que as alterações ao código feitas por um utilizador que possa não ter as autorizações iam.serviceAccounts.actAs necessárias nas contas de serviço a jusante sejam implementadas automaticamente.
  • As execuções de fluxos de trabalho agendadas através de uma programação Cron nas configurações de fluxos de trabalho permanecem ativadas. Para que estas execuções automatizadas sejam bem-sucedidas, tem de conceder ao agente de serviço do Dataform predefinido a autorização iam.serviceAccounts.actAs na conta de serviço efetiva especificada na configuração do fluxo de trabalho.

Para repositórios associados a repositórios de terceiros:

  • São permitidos lançamentos agendados e execuções de fluxos de trabalho agendados.
  • Para ativar um lançamento automático a partir de uma configuração de lançamento ou uma execução automática a partir de uma configuração de fluxo de trabalho, tem de conceder ao agente de serviço do Dataform predefinido a autorização iam.serviceAccounts.actAs na conta de serviço efetiva relevante:
    • Para uma configuração de lançamento automático, conceda a autorização nas contas de serviço efetivas de todas as configurações de fluxo de trabalho acionadas por esta configuração de lançamento.
    • Para uma configuração de fluxo de trabalho automática, conceda a autorização na conta de serviço eficaz usada por essa configuração de fluxo de trabalho.

O que se segue?