Usar uma identidade gerenciada atribuída pelo sistema da VM do Linux para acessar o Azure Resource Manager

Identidades gerenciadas para recursos do Azure é um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que dão suporte a identidades gerenciadas para recursos do Azure está sujeito à própria linha do tempo. Não deixe de examinar o status de disponibilidade das identidades gerenciadas do seu recurso e os problemas conhecidos antes de começar.

Este início rápido mostra como usar uma identidade atribuída pelo sistema como uma identidade da VM (máquina virtual) do Linux para acessar a API do Azure Resource Manager. As identidades gerenciadas para recursos do Azure são gerenciadas automaticamente pelo Azure e permitem a você autenticar os serviços que dão suporte à autenticação do Microsoft Entra sem necessidade de inserir as credenciais em seu código. Você aprenderá como:

  • Conceder o acesso da VM a um Grupo de Recursos no Azure Resource Manager
  • Obter um token de acesso usando a identidade da máquina virtual e usá-la para chamar o Azure Resource Manager

Pré-requisitos

Conceder acesso

Dica

As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.

Ao usar as identidades gerenciadas nos recursos do Azure, seu código pode obter tokens de acesso para se autenticar nos recursos que dão suporte à autenticação do Microsoft Entra. A API do Azure Resource Manager oferece suporte à autenticação do Microsoft Entra. Primeiro, é preciso conceder acesso de identidade desta VM a um recurso no Azure Resource Manager, neste caso, o Grupo de Recursos no qual a VM está contida.

  1. Entre no Portal do Azure com sua conta de administrador.

  2. Navegue até a guia para Grupos de Recursos.

  3. Selecione o Grupo de recursos que deseja conceder acesso à identidade gerenciada da VM.

  4. No painel esquerdo, selecione Controle de acesso (IAM).

  5. Selecione Adicionar e selecione Adicionar atribuição de função.

  6. Na guia Função, selecione Leitor. Essa função permite exibir todos os recursos, mas não permite que você faça alterações.

  7. Na guia Membros, para Atribuir acesso a, selecione Identidade gerenciada. Em seguida, escolha + Selecionar membros.

  8. Certifique-se de que a assinatura correta esteja listada na lista suspensa Assinatura. E para Grupo de Recursos, selecione Todos os grupos de recursos.

  9. Para a lista suspensa Gerenciar identidade, selecione Máquina virtual.

  10. Por fim, em Selecionar, escolha sua Máquina Virtual do Windows na lista suspensa e escolha Salvar.

    Captura de tela mostrando a adição da função de leitor à identidade gerenciada.

Obter um token de acesso usando a identidade gerenciada atribuída pelo sistema da VM e usá-lo para chamar o Resource Manager

Para concluir essas etapas, você precisará do cliente SSH. Se estiver usando o Windows, você poderá usar o cliente SSH no Subsistema do Windows para Linux. Se precisar de ajuda para configurar as chaves do cliente SSH, confira Como usar chaves SSH com o Windows no Azure, ou Como criar e usar um par de chaves SSH pública e privada para VMs Linux no Azure.

  1. No portal, navegue até a VM do Linux e em Visão geral, selecione Conectar.

  2. Conecte-se à VM com um cliente SSH de sua escolha.

  3. Na janela do terminal, usando o curl, faça uma solicitação às identidades gerenciadas locais do ponto de extremidade de recursos do Azure para obter um token de acesso para o Azure Resource Manager.   A solicitação do curl para o token de acesso é mostrada abaixo.

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Observação

O valor do parâmetro resource deve ser uma correspondência exata para o que é esperado pela ID do Microfone Entra. No caso da ID de recurso do Gerenciador de Recursos, você deve incluir a barra à direita no URI.

A resposta inclui o token de acesso que você precisa para acessar o Azure Resource Manager.

Resposta:

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Você pode usar esse token de acesso para acessar o Azure Resource Manager, por exemplo, para ler os detalhes do Grupo de Recursos ao qual você concedeu acesso anteriormente para essa VM. Substitua os valores de <SUBSCRIPTION-ID>, <RESOURCE-GROUP> e <ACCESS-TOKEN> por aqueles que você criou anteriormente.

Observação

A URL diferencia maiúsculas de minúsculas, portanto, verifique se você está usando letras maiúsculas e minúsculas exatamente da mesma forma que você usou anteriormente ao nomear o Grupo de Recursos e a letra maiúscula “G” em “resourceGroup”.  

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

A resposta de volta com as informações do Grupo de Recursos específicas:

{
"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest",
"name":"DevTest",
"location":"westus",
"properties":
{
  "provisioningState":"Succeeded"
  }
} 

Próximas etapas

Neste início rápido, você aprendeu a usar uma identidade gerenciada atribuída pelo sistema para acessar a API do Azure Resource Manager. Para obter mais informações sobre o Gerenciador de Recursos do Azure, consulte: