A gestão de credenciais em pipelines de CI/CD é um dos pontos críticos para a segurança de qualquer infraestrutura cloud. Historicamente, o uso de Service Principals no Azure DevOps exigia a manutenção de segredos (secrets/client secrets) que, além do risco de vazamento, demandavam um esforço operacional de rotação exaustiva. A utilização de User Assigned Managed Identity (UAMI) altera esse paradigma, permitindo uma autenticação sem senhas e alinhada às melhores práticas de SecOps.
UAMI Configuration
O primeiro passo para abolir o uso de Service Principals é a criação de um User Assigned Managed Identity. Esta identidade, uma vez provisionada, será o pivô de segurança entre os seus ambientes de deploy. Note o seu Object ID no portal, pois ele será o identificador utilizado nos logs de auditoria.
App Configuration
Para garantir rastreabilidade, é fundamental configurar o Azure Web App para reportar as atividades de deployment. Ative as Diagnostic Settings e segure o foco nos logs de auditoria (Access Audit Logs). Em um cenário enterprise, a visibilidade sobre quem ou o que realizou um deployment é essencial para compliance e redução de riscos.
Após habilitar os logs, acesse o Access Control (IAM) e conceda ao UAMI a role de Website Contributor. Isso garante o princípio do privilégio mínimo: a identidade terá poder suficiente para realizar a tarefa de deploy, mas sem acesso excessivo a outros recursos do tenant.
Azure DevOps Configuration
No Azure DevOps, a configuração muda de uma abordagem baseada em senha para uma baseada em identidade. Em Project Settings → Service Connections, crie uma nova ARM (Azure Resource Manager) connection. Ao selecionar o UAMI e definir as permissões no nível de Resource Group, você consolida um fluxo de trabalho que elimina a dependência de credenciais de longa duração dentro da plataforma de CI.
Vale notar que, durante o setup, uma autenticação interativa será necessária. Isso garante que a relação de confiança entre sua conta, o Azure DevOps e o Managed Identity seja estabelecida corretamente. Ao atualizar o seu deployment template, você observará uma mudança na execução do pipeline — passos adicionais de autenticação via OIDC garantem maior estabilidade e segurança comparado ao modelo legado.
Logs
O resultado final dessa implementação pode ser verificado na tabela AppServiceAuditLogs. Ao auditar um deploy, o deployment initiator será o Object ID do UAMI, e a fonte aparecerá como Azure (DevOps). Este é o cenário ideal para times focados em Observability e segurança, pois separa claramente a intenção (Azure DevOps) da execução (identidade autenticada).
Essa configuração, embora simples, reflete uma mudança de maturidade para equipes de engenharia brasileiras que buscam robustez em ambientes multi-cloud ou altamente regulados.
Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.