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:
- 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.
- 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.
- 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".
- Se definido como true, você deve especificar:
- 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
- Se definido como true, nenhuma entrada adicional será necessária.
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.