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 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:

  1. Entre na ID do Microsoft Entra sob a identidade gerenciada da VM para a entidade de serviço de recursos do Azure

  2. 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:

  1. Entre na ID do Microsoft Entra sob a identidade gerenciada da VM para a entidade de serviço de recursos do Azure

  2. 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