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
- Conhecimento sobre Identidades Gerenciadas. Se você não estiver familiarizado com as 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 do Linux com as identidades gerenciadas atribuídas ao sistema habilitadas. Se você tiver uma VM, mas precisar habilitar identidades gerenciadas e atribuídas pelo sistema, faça isso na seção de identidade das propriedades da máquina virtual.
- Se você precisar criar uma máquina virtual para este tutorial, siga o artigo intitulado Criar uma máquina virtual do Linux com o portal do Azure
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.
Entre no Portal do Azure com sua conta de administrador.
Navegue até a guia para Grupos de Recursos.
Selecione o Grupo de recursos que deseja conceder acesso à identidade gerenciada da VM.
No painel esquerdo, selecione Controle de acesso (IAM).
Selecione Adicionar e selecione Adicionar atribuição de função.
Na guia Função, selecione Leitor. Essa função permite exibir todos os recursos, mas não permite que você faça alterações.
Na guia Membros, para Atribuir acesso a, selecione Identidade gerenciada. Em seguida, escolha + Selecionar membros.
Certifique-se de que a assinatura correta esteja listada na lista suspensa Assinatura. E para Grupo de Recursos, selecione Todos os grupos de recursos.
Para a lista suspensa Gerenciar identidade, selecione Máquina virtual.
Por fim, em Selecionar, escolha sua Máquina Virtual do Windows na lista suspensa e escolha Salvar.
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.
No portal, navegue até a VM do Linux e em Visão geral, selecione Conectar.
Conecte-se à VM com um cliente SSH de sua escolha.
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 docurl
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: