Tutorial: Usar uma identidade gerenciada atribuída pelo sistema da VM do Windows para acessar o Azure Key Vault

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 tutorial mostra como uma VM (máquina virtual) do Windows pode usar uma identidade gerenciada atribuída pelo sistema para acessar o Azure Key Vault. O Key Vault possibilita que o aplicativo cliente use um segredo para acessar recursos não protegidos pelo Microsoft Entra ID. As identidades gerenciadas são gerenciadas automaticamente pelo Azure. Isso permite que você se autentique em serviços que oferecem suporte à autenticação do Microsoft Entra sem incluir informações de autenticação no seu código.

Você aprenderá como:

  • Conceda o acesso da máquina virtual a um segredo armazenado em um Key Vault
  • Obter um token de acesso usando a identidade da máquina virtual e usá-la para recuperar o segredo do Key Vault

Pré-requisitos

Criar um cofre de chaves

Dica

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

Esta seção mostra como conceder à sua VM acesso a um segredo armazenado em um Key Vault. Ao usar as identidades gerenciadas para 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.  No entanto, nem todos os serviços do Azure dão suporte à autenticação do Microsoft Entra. Para usar identidades gerenciadas para recursos do Azure com esses serviços, armazene as credenciais de serviço no Azure Key Vault e use a identidade gerenciada da VM para acessar o Key Vault para recuperar as credenciais.

Primeiro, precisamos criar um cofre de chaves e conceder à nossa identidade gerenciada atribuída pelo sistema da VM acesso ao Key Vault.

  1. Entrar no [Portal do Azure]portal](https://portal.azure.com/).

  2. Na parte superior da barra de navegação esquerda, selecione Criar um recurso.

  3. Na caixa Pesquisar no Marketplace, digite Key Vault e pressione Enter.

  4. Selecione Key Vault nos resultados.

  5. Selecione Criar.

  6. Forneça um Nome para o novo cofre de chaves.

    Criar uma tela do cofre de chaves.

  7. Preencha todas as informações necessárias. Certifique-se de escolher a assinatura e o grupo de recursos que você está usando para este tutorial.

  8. Selecione Examinar + criar

  9. Escolha Criar

Criar um segredo

Em seguida, adicione um segredo ao Key Vault, para que você possa recuperá-lo posteriormente usando o código em execução na sua VM. Neste tutorial usaremos o PowerShell, mas os mesmos conceitos se aplicam a qualquer código em execução nesta máquina virtual.

  1. Navegue até o Key Vault recém-criado.

  2. Selecione Segredos e Adicionar.

  3. Selecione Gerar/Importar

  4. Na tela Criar um segredo de Opções de upload deixe Manual selecionado.

  5. Insira um nome e um valor para o segredo.  O valor pode ser qualquer coisa que você desejar. 

  6. Deixe a data de ativação e a data de validade em branco e deixe Habilitado como Sim

  7. Selecione Criar para criar o segredo.

    Captura de tela mostrando como criar um segredo.

Conceder acesso

A identidade gerenciada usada pela máquina virtual precisa receber acesso para ler o segredo que armazenaremos no Key Vault.

  1. Navegue até o Key Vault recém-criado

  2. Selecione Política de Acesso no menu no lado esquerdo.

  3. Selecione Adicionar política de acesso

    Captura de tela mostrando a tela de política de acesso do cofre de chaves.

  4. Na seção Adicionar política de acesso em Configurar com base no modelo (opcional), escolha Gerenciamento de Segredo no menu suspenso.

  5. Escolha Selecionar Entidade de Segurança e no campo de pesquisa insira o nome da VM que você criou anteriormente.  Selecione a VM na lista de resultados e escolha Selecionar.

  6. Selecione Adicionar

  7. Selecione Salvar.

Acessar dados

Esta seção mostra como obter um token de acesso usando a identidade da VM e como usá-lo para recuperar o segredo do Key Vault. Se você não tiver o PowerShell 4.3.1 ou superior instalado, você precisará baixar e instalar a versão mais recente.

Primeiro, usamos a identidade gerenciada atribuída pelo sistema da VM para obter um token de acesso para autenticar o para o Key Vault:

  1. No portal, navegue até Máquinas Virtuais e vá para a máquina virtual do Windows; em Visão geral, clique em Conectar.
  2. Insira o seu Nome de usuário e Senha que você adicionou quando criou a VM do Windows.
  3. Agora que você criou uma Conexão de Área de Trabalho Remota com a máquina virtual, abra o PowerShell na sessão remota.
  4. No PowerShell, invoque a solicitação Web no locatário para obter o token para o host local na porta específica para a máquina virtual.

A solicitação do PowerShell:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"} 

A resposta deverá ficar semelhante à resposta abaixo:

Captura de tela mostrando uma solicitação com resposta de token.

Em seguida, extraia o token de acesso da resposta.

   $KeyVaultToken = $Response.access_token

Por fim, use o comando de Invoke-WebRequest do PowerShell para recuperar o segredo que você criou anteriormente no Key Vault, passando o token de acesso no cabeçalho de Autorização.  Você precisará da URL de seu Key Vault, que está na seção Essentials da página Visão geral do Key Vault.

Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}

A resposta terá a seguinte aparência:

  value       id                                                                                    attributes
  -----       --                                                                                    ----------
  'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…

Depois de recuperar o segredo do Key Vault, você pode usá-lo para autenticar um serviço que requer um nome e uma senha.

Limpar recursos

Quando desejar limpar os recursos, entre no portal do Azure, selecione Grupos de recursos, localize e selecione o grupo de recursos criado no processo deste tutorial (como mi-test) e use o comando Excluir grupo de recursos.

Como alternativa, você também pode limpar recursos por meio do PowerShell ou da CLI

Próximas etapas

Neste tutorial, você aprendeu como usar uma identidade gerenciada atribuída pelo sistema da VM do Windows para acessar o Azure Key Vault. Para saber mais sobre o Azure Key Vault, confira: