Utilizar uma identidade gerida atribuída pelo sistema de VM do Linux para aceder ao Azure Resource Manager

Identidades gerenciadas para recursos do Azure é 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 guia de início rápido mostra como usar uma identidade gerenciada atribuída ao sistema como a identidade de uma máquina virtual (VM) Linux para acessar a API do Azure Resource Manager. As identidades gerenciadas para recursos do Azure são gerenciadas automaticamente pelo Azure e permitem que você se autentique em serviços que oferecem suporte à autenticação do Microsoft Entra sem a necessidade de inserir credenciais em seu código. Sabe como:

  • Conceder o acesso da VM a um Grupo de Recursos no Azure Resource Manager
  • Obter um token de acesso com a identidade da VM e utilizá-lo para chamar o Azure Resource Manager

Pré-requisitos

  • Uma compreensão das identidades gerenciadas. Se você não estiver familiarizado com identidades gerenciadas, consulte esta visão geral.
  • Uma conta do Azure, inscreva-se para obter uma conta gratuita.
  • Você também precisa de uma máquina virtual Linux que tenha identidades gerenciadas atribuídas ao sistema habilitadas. Se você tiver uma VM, mas precisar habilitar identidades gerenciadas atribuídas ao sistema, poderá fazê-lo na seção de identidade das propriedades da máquina virtual.

Conceder acesso

Gorjeta

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

Quando você usa identidades gerenciadas para recursos do Azure, seu código pode obter tokens de acesso para autenticar recursos que dão suporte à autenticação do Microsoft Entra. A API do Azure Resource Manager dá suporte à autenticação do Microsoft Entra. Primeiro, precisamos conceder acesso à identidade dessa VM a um recurso no Gerenciador de Recursos do Azure, 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é ao separador para Grupos de Recursos.

  3. Selecione o Grupo de Recursos ao qual você deseja conceder acesso à identidade gerenciada da VM.

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

  5. Selecione Adicionar e, em seguida, 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, selecione + Selecionar membros.

  8. Verifique se a assinatura adequada está listada na lista suspensa Assinatura . Para Grupo de Recursos, selecione Todos os grupos de recursos.

  9. Na lista suspensa Gerenciar identidade, selecione Máquina Virtual.

  10. Finalmente, em Selecionar , escolha sua máquina virtual do Windows na lista suspensa e selecione Salvar.

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

Obter um token de acesso através da identidade gerida atribuída pelo sistema da VM e utilizá-lo para chamar o Resource Manager

Para concluir estes passos, precisa de um cliente SSH. Se você estiver usando o Windows, poderá usar o cliente SSH no Subsistema Windows para Linux. Se precisar de ajuda para configurar as chaves do seu cliente SSH, veja Como utilizar chaves SSH com o Windows no Azure ou Como criar e utilizar um par de chaves SSH públicas e privadas para VMs do Linux no Azure.

  1. No portal, navegue até sua VM Linux e, na Visão geral, selecione Conectar.

  2. Clique em Ligar para ligar à VM com o cliente SSH que escolheu.

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

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

Nota

O valor do parâmetro deve ser uma correspondência exata para o que é esperado pelo ID do resource Microsoft Entra. No caso do ID de recurso do Resource Manager, tem de incluir a barra à direita no URI.

A resposta inclui o token de acesso necessário para aceder ao 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"
}

Pode utilizar este token de acesso para aceder ao Azure Resource Manager, por exemplo, para ler os detalhes do Grupo de Recursos ao qual concedeu anteriormente este acesso de VM. Substitua os valores de <SUBSCRIPTION-ID>, <RESOURCE-GROUP>e <ACCESS-TOKEN> pelos que você criou anteriormente.

Nota

O URL é sensível às maiúsculas de minúsculas, por isso, certifique-se de que utiliza as mesmas maiúsculas e minúsculas que utilizou anteriormente, quando atribuiu o nome ao Grupo de Recursos e a 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 específicas do Grupo de Recursos:

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

Próximos passos

Este início rápido mostra como utilizar uma identidade gerida atribuída pelo sistema para aceder à API do Azure Resource Manager. Para obter mais informações sobre o Azure Resource Manager, consulte: