Como usar identidades gerenciadas para recursos do Azure em uma VM do Azure para entrar
As identidades gerenciadas para recursos do Azure são um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que suportam as identidades geridas para os recursos do Azure estão sujeitos à sua própria linha de tempo. Certifique-se de que revê o estado de disponibilidade das identidades geridas para o seu recurso e problemas conhecidos antes de começar.
Este artigo fornece exemplos de script do PowerShell e da CLI para entrar usando identidades gerenciadas para a entidade de serviço de recursos do Azure e orientação sobre tópicos importantes, como tratamento de erros.
Nota
Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
- Se não estiver familiarizado com a funcionalidade das identidades geridas para os recursos do Azure, veja esta descrição geral. Se não tiver uma conta do Azure, inscreva-se numa conta gratuita antes de continuar.
Se você planeja usar os exemplos do Azure PowerShell ou da CLI do Azure neste artigo, certifique-se de instalar a versão mais recente do Azure PowerShell ou da CLI do Azure.
Importante
- Todos os scripts de exemplo neste artigo pressupõem que o cliente de linha de comando está sendo executado em uma VM com identidades gerenciadas para recursos do Azure habilitadas. Use o recurso "Conectar" da VM no portal do Azure para se conectar remotamente à sua VM. Para obter detalhes sobre como habilitar identidades gerenciadas para recursos do Azure em uma VM, consulte Configurar identidades gerenciadas para recursos do Azure em uma VM usando o portal do Azure ou um dos artigos da variante (usando PowerShell, CLI, um modelo ou um SDK do Azure).
- Para evitar erros durante o acesso ao recurso, a identidade gerenciada da VM deve receber pelo menos acesso de "Leitor" no escopo apropriado (a VM ou superior) para permitir operações do Azure Resource Manager na VM. Consulte Atribuir identidades gerenciadas para acesso a recursos do Azure a um recurso usando o portal do Azure para obter detalhes.
Descrição geral
As identidades gerenciadas para recursos do Azure fornecem um objeto principal de serviço , que é criado ao habilitar identidades gerenciadas para recursos do Azure na VM. A entidade de serviço pode ter acesso aos recursos do Azure e ser usada como uma identidade por clientes de script/linha de comando para entrada e acesso a recursos. Tradicionalmente, para acessar recursos protegidos sob sua própria identidade, um cliente de script precisaria:
- ser registrado e consentido com o Microsoft Entra ID como um aplicativo cliente confidencial/web
- Entrar em sua entidade de serviço, usando as credenciais do aplicativo (que provavelmente estão incorporadas no script)
Com identidades gerenciadas para recursos do Azure, seu cliente de script não precisa mais fazer nenhum dos dois, pois ele pode entrar sob as identidades gerenciadas para a entidade de serviço de recursos do Azure.
CLI do Azure
O script a seguir demonstra como:
Entre na ID do Microsoft Entra sob a identidade gerenciada da VM para a entidade de serviço de recursos do Azure
Chame o Azure Resource Manager e obtenha a ID da entidade de serviço da VM. A CLI se encarrega de gerenciar a aquisição/uso de tokens para você automaticamente. Certifique-se de substituir o nome da máquina virtual por
<VM-NAME>
.az login --identity $spID=$(az resource list -n <VM-NAME> --query [*].identity.principalId --out tsv) echo The managed identity for Azure resources service principal ID is $spID
Azure PowerShell
O script a seguir demonstra como:
Entre na ID do Microsoft Entra sob a identidade gerenciada da VM para a entidade de serviço de recursos do Azure
Chame um cmdlet do Azure Resource Manager para obter informações sobre a VM. O PowerShell cuida do gerenciamento do uso de token para você automaticamente.
Add-AzAccount -identity # Call Azure Resource Manager to get the service principal ID for the VM's managed identity for Azure resources. $vmInfoPs = Get-AzVM -ResourceGroupName <RESOURCE-GROUP> -Name <VM-NAME> $spID = $vmInfoPs.Identity.PrincipalId echo "The managed identity for Azure resources service principal ID is $spID"
IDs de recursos para serviços do Azure
Consulte Serviços do Azure que suportam a autenticação do Microsoft Entra para obter uma lista de recursos que suportam o Microsoft Entra ID e que foram testados com identidades gerenciadas para recursos do Azure e suas respetivas IDs de recurso.
Orientações para o tratamento de erros
Respostas como as seguintes podem indicar que a identidade gerenciada da VM para recursos do Azure não foi configurada corretamente:
- PowerShell: Invoke-WebRequest : Não é possível conectar-se ao servidor remoto
- CLI: MSI: Falha ao recuperar um token com
http://localhost:50342/oauth2/token
um erro de 'HTTPConnectionPool(host='localhost', port=50342)
Se você receber um desses erros, retorne à VM do Azure no portal do Azure e vá para a página Identidade e verifique se o Sistema atribuído está definido como "Sim".
Próximos passos
- Para habilitar identidades gerenciadas para recursos do Azure em uma VM do Azure, consulte Configurar identidades gerenciadas para recursos do Azure em uma VM do Azure usando o PowerShell ou Configurar identidades gerenciadas para recursos do Azure em uma VM do Azure usando a CLI do Azure