Como as identidades gerenciadas para recursos do Azure funcionam com máquinas virtuais do Azure
As identidades geridas para os recursos do Azure proporcionam aos recursos do Azure uma identidade gerida automaticamente no Microsoft Entra ID. Pode utilizar esta identidade para se autenticar em qualquer serviço que suporte a autenticação do Microsoft Entra sem ter credenciais no código.
Neste artigo, você aprenderá como as identidades gerenciadas funcionam com máquinas virtuais (VMs) do Azure.
Como funciona
Internamente, as identidades gerenciadas são entidades de serviço de um tipo especial, que só podem ser usadas com recursos do Azure. Quando a identidade gerenciada é excluída, a entidade de serviço correspondente é removida automaticamente. Além disso, quando uma Identidade Atribuída pelo Usuário ou Atribuída pelo Sistema é criada, o MSRP (Managed Identity Resource Provider) emite um certificado internamente para essa identidade.
Seu código pode usar uma identidade gerenciada para solicitar tokens de acesso para serviços que oferecem suporte à autenticação do Microsoft Entra. O Azure encarrega-se da implementação das credenciais que a instância do serviço utiliza.
O diagrama seguinte mostra como é que as identidades de serviço geridas funcionam com as máquinas virtuais (VMs) do Azure:
A tabela a seguir mostra as diferenças entre as identidades gerenciadas atribuídas pelo sistema e pelo usuário:
Property | Identidade gerida atribuída pelo sistema | Identidade gerida atribuída pelo utilizador |
---|---|---|
Criação | Criado como parte de um recurso do Azure (por exemplo, uma máquina virtual do Azure ou o Serviço de Aplicativo do Azure). | Criado como um recurso autônomo do Azure. |
Ciclo de vida | Ciclo de vida compartilhado com o recurso do Azure com o qual a identidade gerenciada é criada. Quando o recurso pai é excluído, a identidade gerenciada também é excluída. |
Ciclo de vida independente. Deve ser explicitamente suprimido. |
Partilhar entre recursos do Azure | Não pode ser compartilhado. Ele só pode ser associado a um único recurso do Azure. |
Pode ser partilhado. A mesma identidade gerenciada atribuída pelo usuário pode ser associada a mais de um recurso do Azure. |
Casos comuns de utilização | Cargas de trabalho contidas em um único recurso do Azure. Cargas de trabalho para as quais você precisa de identidades independentes. Por exemplo, um aplicativo que é executado em uma única máquina virtual |
Cargas de trabalho que são executadas em vários recursos e que podem compartilhar uma única identidade. Cargas de trabalho que precisam de pré-autorização para um recurso seguro como parte de um fluxo de provisionamento. Cargas de trabalho em que os recursos são reciclados com frequência, mas as permissões devem permanecer consistentes. Por exemplo, uma carga de trabalho em que várias máquinas virtuais precisam acessar o mesmo recurso |
Identidade gerida atribuída pelo sistema
O Azure Resource Manager recebe um pedido para ativar a identidade gerida atribuída pelo sistema numa VM.
O Azure Resource Manager cria uma entidade de serviço no Microsoft Entra ID para a identidade da VM. A entidade de serviço é criada no locatário do Microsoft Entra confiável pela assinatura.
O Azure Resource Manager atualiza a identidade da VM usando o ponto de extremidade de identidade do Serviço de Metadados de Instância do Azure (para Windows e Linux), fornecendo ao ponto de extremidade a ID do cliente da entidade de serviço e o certificado.
Quando a VM tiver uma identidade, utilize as informações do principal de serviço para lhe conceder acesso aos recursos do Azure. Para chamar o Gerenciador de Recursos do Azure, use o Controle de Acesso Baseado em Função do Azure (Azure RBAC) para atribuir a função apropriada à entidade de serviço da VM. Para chamar o Key Vault, conceda ao seu código acesso ao segredo ou à chave específica no Key Vault.
Seu código em execução na VM pode solicitar um token do ponto de extremidade do serviço de Metadados de Instância do Azure, acessível somente de dentro da VM:
http://169.254.169.254/metadata/identity/oauth2/token
- O parâmetro do recurso especifica o serviço para o qual o token é enviado. Para autenticar no Azure Resource Manager, utilize
resource=https://management.azure.com/
. - O parâmetro de versão da API especifica a versão do IMDS; utilize api-version=2018-02-01 ou superior.
O exemplo a seguir demonstra como usar CURL para fazer uma solicitação ao ponto de extremidade Managed Identity local para obter um token de acesso para o serviço de Metadados de Instância do Azure.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true
- O parâmetro do recurso especifica o serviço para o qual o token é enviado. Para autenticar no Azure Resource Manager, utilize
Uma chamada é feita para o Microsoft Entra ID para solicitar um token de acesso (conforme especificado na etapa 5) usando a ID do cliente e o certificado configurados na etapa 3. O Microsoft Entra ID retorna um token de acesso JSON Web Token (JWT).
Seu código envia o token de acesso em uma chamada para um serviço que oferece suporte à autenticação do Microsoft Entra.
Identidade gerida atribuída pelo utilizador
O Azure Resource Manager recebe um pedido para criar uma identidade gerida atribuída pelo utilizador.
O Azure Resource Manager cria uma entidade de serviço no Microsoft Entra ID para a identidade gerenciada atribuída pelo usuário. A entidade de serviço é criada no locatário do Microsoft Entra confiável pela assinatura.
O Azure Resource Manager recebe uma solicitação para configurar a identidade gerenciada atribuída pelo usuário em uma VM e atualiza o ponto de extremidade de identidade do Serviço de Metadados de Instância do Azure com a ID do cliente principal e o certificado do serviço de identidade gerenciado atribuído pelo usuário.
Quando a identidade gerida atribuída pelo utilizador estiver criada, utilize as informações do principal de serviço para lhe conceder acesso aos recursos do Azure. Para chamar o Gerenciador de Recursos do Azure, use o RBAC do Azure para atribuir a função apropriada à entidade de serviço da identidade atribuída pelo usuário. Para chamar o Key Vault, conceda ao seu código acesso ao segredo ou à chave específica no Key Vault.
Nota
Também pode concluir este passo antes do passo 3.
Seu código que está sendo executado na VM pode solicitar um token do ponto de extremidade de identidade do Serviço de Metadados de Instância do Azure, acessível somente de dentro da VM:
http://169.254.169.254/metadata/identity/oauth2/token
O parâmetro do recurso especifica o serviço para o qual o token é enviado. Para autenticar no Azure Resource Manager, utilize
resource=https://management.azure.com/
.O
client_id
parâmetro especifica a identidade para a qual o token é solicitado. Este valor é necessário para eliminar ambiguidades se uma única VM tiver mais de uma identidade atribuída pelo utilizador. Você pode encontrar a ID do Cliente na Visão Geral da Identidade Gerenciada:O parâmetro da versão da API especifica a versão do Azure Instance Metadata Service. Utilize
api-version=2018-02-01
ou superior.O exemplo a seguir demonstra como usar CURL para fazer uma solicitação ao ponto de extremidade Managed Identity local para obter um token de acesso para o serviço de Metadados de Instância do Azure.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F&client_id=00001111-aaaa-2222-bbbb-3333cccc4444' -H Metadata:true
Uma chamada é feita para o Microsoft Entra ID para solicitar um token de acesso (conforme especificado na etapa 5) usando a ID do cliente e o certificado configurados na etapa 3. O Microsoft Entra ID retorna um token de acesso JSON Web Token (JWT).
Seu código envia o token de acesso em uma chamada para um serviço que oferece suporte à autenticação do Microsoft Entra.
Próximos passos
Comece a utilizar a funcionalidade de identidades geridas para recursos do Azure com os inícios rápidos seguintes: