O gerenciamento de senhas e credenciais sempre foi um desafio para desenvolvedores, especialmente para a comunicação entre serviços. Embora seja possível utilizar o Azure Key Vault para armazenar tais informações com segurança, os serviços precisam uma forma para acessá-lo.
Com o Azure Managed Identity é possível eliminar a necessidade dos desenvolvedores gerenciarem as senhas e credenciais, mantendo a comunicação segura entre os serviços.
Mas o que é Azure Managed Identity?
O que é Azure Managed Identity?
Uma Managed Identity nada mais é do que um service principal especial que é criado e gerenciado de forma automática no Microsoft Entra ID, onde obtém tokens para que recursos que possuem suporte à autenticação do Microsoft Entra possam estabelecer uma comunicação entre si, sem ter que se preocupar com credenciais.
Atualmente, existem dois tipos de Managed Identity, e aqui estão algumas diferenças entre eles
- System Assigned
- Vinculado ao ciclo de vida do recurso, ou seja, se o recurso for excluído, a Managed Identity é excluída automaticamente
- Por design, somente o recurso do Azure pode usar essa identidade para solicitar tokens do Microsoft Entra ID
- User Assigned
- Gerenciada separadamente dos recursos que a utilizam, ou seja, mesmo que o recurso for excluído, a Managed Identity não será excluída
- Pode ser utilizada por vários recursos
Em qualquer um dos dois tipos você autoriza a identidade gerenciada a ter acesso a um ou mais serviços
Explicando a utilização
Independente do tipo de Managed Identity que você escolher, você sempre terá um recurso “origem” e um recurso “destino”, sendo que:
- Origem
- Recurso onde o Managed Identity será criado/atríbuido, seja ele System Assigned ou User Assigned
- Managed Identity solicitará ao Entra ID o token para conseguir estabelecer a comunicação com o “destino”
- Entra ID irá emitir o token e, então, o recurso “origem” irá autenticar com esse token no “destino”
- Destino
- Recurso onde a “origem” vai se conectar
- Managed Identity da “origem” precisa ter o acesso concedido via Role Based Access Control
- O acesso a SQL Database é concedido diretamente no banco através da criação um login
Na imagem abaixo, podemos ver
- A “origem” (Web App com Managed Identity) que solicitará ao Entra ID o token
- Entra ID emite o token para a Managed Identity
- Managed Identity vai utilizar o token para autenticar no Azure SQL Database
Quais serviços no Azure suportam o Managed Identity?
A lista é extensa e, segundo a Microsoft, “essa lista não inclui todos os artigos que falam sobre as identidades gerenciadas […] As informações de namespace do provedor de recursos estão disponíveis no artigo intitulado Provedores de recursos para serviços do Azure“
- API Management
- Application Gateway
- Azure App Configuration
- Azure App Services
- Azure Arc enabled Kubernetes
- Azure Arc enabled servers
- Azure Automanage
- Azure Automation
- Azure Batch
- Azure Blueprints
- Azure Cache for Redis
- Azure Communications Gateway
- Azure Communication Services
- Azure Container Apps
- Azure Container Instance
- Azure Container Registry
- Azure AI services
- Azure Data Box
- Azure Data Explorer
- Azure Data Factory
- Azure Data Lake Storage Gen1
- Azure Data Share
- Azure DevTest Labs
- Azure Digital Twins
- Azure Event Grid
- Azure Event Hubs
- Azure Image Builder
- Azure Import/Export
- Azure IoT Hub
- Azure Kubernetes Service (AKS)
- Azure Load Testing
- Azure Logic Apps
- Azure Log Analytics cluster
- Azure Machine Learning Services
- Azure Managed Disk
- Azure Media services
- Azure Monitor
- Azure Policy
- Microsoft Purview
- Azure Resource Mover
- Azure Site Recovery
- Azure Search
- Azure Service Bus
- Azure Service Fabric
- Azure SignalR Service
- Azure Spring Apps
- Azure SQL
- Azure SQL Managed Instance
- Azure Stack Edge
- Azure Static Web Apps
- Azure Stream Analytics
- Azure Synapse
- Azure VM image builder
- Azure Virtual Machine Scale Sets
- Azure Virtual Machines
- Azure Web PubSub Service
Quais operações podem ser executadas com Managed Identities?
Independente do tipo de Managed Identity, você pode:
- Utilizar Role Based Access Control para conceder permissões
- Verificar as operações Create, Read, Update e Delete (CRUD) nos logs de atividades do Azure
- Exibir a atividade de entrada nos logs de entrada do Microsoft Entra ID
Mas existem algumas diferenças caso você opte por System ou User Assigned
- System Assigned
- Habilite ou desabilite Managed Identities no nível do recurso
- User Assigned
- Você pode criar, ler, atualizar e excluir Managed Identities
Você pode utilizar Managed Identies executando Azure Resource Manager (ARM), Portal do Azure, Azure CLI, Powershell e APIs REST.
Deixe um comentário