Usar o Azure Policy para atribuir identidades gerenciadas (versão prévia)

O Azure Policy ajuda a reforçar os padrões organizacionais e a avaliar a conformidade em escala. Através do painel de conformidade, o Azure Policy fornece uma exibição agregada que ajuda os administradores a avaliar o estado geral do ambiente. Você pode analisar detalhadamente a granularidade por recurso e por política. Ele também ajuda a deixar seus recursos em conformidade por meio da correção em massa de recursos existentes e da correção automática para novos recursos. Os casos de uso comuns do Azure Policy incluem a implementação de governança para:

  • Consistência de recursos
  • Conformidade normativa
  • Segurança
  • Custo
  • Gerenciamento

As definições de política para esses casos de uso comuns já estão disponíveis em seu ambiente do Azure para ajudar você a começar a usar.

Os Agentes de Monitoramento do Azure exigem uma identidade gerenciada nas VMs (Máquinas Virtuais) monitoradas do Azure. Este documento descreve o comportamento de uma Azure Policy interna fornecida pela Microsoft que ajuda a garantir que uma identidade gerenciada, necessária para esses cenários, seja atribuída a VMs em escala.

Embora o uso da identidade gerenciada atribuída pelo sistema seja possível, seu uso em escala (por exemplo, para todas as VMs em uma assinatura) resulta em um número substancial de identidades criadas (e excluídas) no Microsoft Entra ID. Para evitar essa rotatividade de identidades, é recomendável usar identidades gerenciadas atribuídas pelo usuário, que podem ser criadas uma vez e compartilhadas em várias VMs.

Definição e detalhes da política

Quando executada, a política executa as seguintes ações:

  1. Caso não exista, crie uma nova identidade gerenciada interna atribuída pelo usuário na assinatura e em cada região do Azure com base nas VMs que estão no escopo da política.
  2. Após a criação, insira um bloqueio na identidade gerenciada atribuída pelo usuário para que ela não seja excluída acidentalmente.
  3. Atribua a identidade gerenciada atribuída pelo usuário interna a Máquinas Virtuais da assinatura e da região com base nas VMs que estão no escopo da política.

Observação

Se a Máquina Virtual tiver exatamente 1 identidade gerenciada atribuída pelo usuário já atribuída, a política ignorará essa VM para atribuir a identidade interna. Isso serve para garantir que a atribuição da política não interrompa os aplicativos que usam uma dependência do comportamento padrão do ponto de extremidade de token no IMDS.

Há dois cenários para usar a política:

  • Permitir que a política crie e use uma identidade gerenciada atribuída pelo usuário "interna".
  • Traga sua própria identidade gerenciada atribuída pelo usuário.

A política usa os seguintes parâmetros de entrada:

  • Traga sua própria identidade gerenciada atribuída pelo usuário? - A política deve criar, se não existir, uma nova identidade gerenciada atribuída pelo usuário?
    • Se definido como true, você deve especificar:
      • Nome da identidade gerenciada.
      • Grupo de recursos que contém a identidade gerenciada.
    • Se definido como false, nenhuma entrada adicional será necessária.
      • A política criará a identidade gerenciada atribuída pelo usuário necessária chamada "built-in-identity" em um grupo de recursos chamado "built-in-identity-rg".
  • Restringir-traga-sua-própria-UAMI-para-assinatura? - Quando o parâmetro Bring-Your-Own-UAMI é definido como true, a política deve utilizar uma identidade gerenciada centralizada atribuída pelo usuário ou utilizar uma identidade para cada assinatura?
    • Se definido como true, nenhuma entrada adicional será necessária.
      • A política usará uma identidade gerenciada atribuída pelo usuário por assinatura.
    • Se definida como false, a política utilizará uma única identidade gerenciada atribuída pelo usuário centralizado que será aplicada em todas as assinaturas cobertas pela atribuição de política. Você deve especificar:
      • ID do recurso de identidade gerenciada atribuída pelo usuário

Usando a política

Como criar a atribuição de política

A definição da política pode ser atribuída a escopos diferentes no Azure – na assinatura do grupo de gerenciamento ou em um grupo de recursos específico. Como as políticas precisam ser impostas de forma contínua, a operação de atribuição é executada usando uma identidade gerenciada associada ao objeto de atribuição de política. O objeto de atribuição de política dá suporte à identidade gerenciada atribuída pelo sistema e atribuída pelo usuário. Por exemplo, Joe pode criar uma identidade gerenciada atribuída pelo usuário chamada PolicyAssignmentMI. A política interna cria uma identidade gerenciada atribuída pelo usuário em cada assinatura e em cada região com recursos que estão no escopo da atribuição de política. As identidades gerenciadas atribuídas pelo usuário criadas pela política têm o seguinte formato de resourceId:

/subscriptions/your-subscription-id/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-{location}

Por exemplo:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-eastus

Autorização obrigatória

Para que a identidade gerenciada PolicyAssignmentMI possa atribuir a política interna no escopo especificado, ela precisa das seguintes permissões, expressas como uma Atribuição de Função do RBAC do Azure (controle de acesso baseado em função do Azure):

Principal Função/Ação Escopo Finalidade
PolicyAssigmentMI Operador de Identidade Gerenciada /subscription/subscription-id/resourceGroups/built-in-identity
OU
Traga sua própria identidade gerenciada atribuída pelo usuário
Necessário para atribuir a identidade interna às VMs.
PolicyAssigmentMI Colaborador /subscription/subscription-id> Necessário para criar o grupo de recursos que contém a identidade gerenciada interna na assinatura.
PolicyAssigmentMI Colaborador de Identidade Gerenciada /subscription/subscription-id/resourceGroups/built-in-identity Obrigatório para criar uma nova identidade gerenciada atribuída ao usuário.
PolicyAssigmentMI Administrador de Acesso do Usuário /subscription/subscription-id/resourceGroups/built-in-identity
OU
Traga sua própria identidade gerenciada atribuída pelo usuário
Necessário para definir um bloqueio na identidade gerenciada atribuída pelo usuário criada pela política.

Como o objeto de atribuição de política deve ter essa permissão antecipadamente, PolicyAssignmentMI não pode ser uma identidade gerenciada atribuída pelo sistema para esse cenário. O usuário que executa a tarefa de atribuição de política deve pré-autorizar o PolicyAssignmentMI antecipadamente com as atribuições de função acima.

Como você pode ver, a função com privilégios mínimos necessária é "colaborador" no escopo da assinatura.

Problemas conhecidos

A possível condição de corrida com outra implantação que altera as identidades atribuídas a uma VM pode resultar em resultados inesperados.

Se houver duas ou mais implantações paralelas atualizando a mesma máquina virtual e todas elas alterarem a configuração de identidade da máquina virtual, é possível, em condições de corrida específicas, que todas as identidades esperadas NÃO sejam atribuídas aos computadores. Por exemplo, se a política neste documento estiver atualizando as identidades gerenciadas de uma VM e, ao mesmo tempo, outro processo também estiver fazendo alterações na seção identidades gerenciadas, não é garantido que todas as identidades esperadas sejam atribuídas corretamente à VM.

Próximas etapas