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
- Conhecimento sobre Identidades Gerenciadas. Se você não estiver familiarizado com as identidades gerenciadas para funcionalidades de recursos do Azure, veja esta visão geral.
- Uma conta do Azure, inscreva-se em uma conta gratuita.
- Permissões de "Proprietário" no escopo apropriado (sua assinatura ou grupo de recursos) para executar a criação de recursos e o gerenciamento de função necessários. Se precisar de ajuda com a atribuição de função, confira Atribuir funções do Azure para gerenciar o acesso aos recursos de assinatura do Azure.
- Você também precisa de uma máquina virtual do Windows com identidades gerenciadas atribuídas ao sistema habilitadas.
- Se for necessário criar uma máquina virtual para este tutorial, siga o artigo intitulado Criar uma máquina virtual com a identidade atribuída pelo sistema habilitada
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.
Entrar no [Portal do Azure]portal](https://portal.azure.com/).
Na parte superior da barra de navegação esquerda, selecione Criar um recurso.
Na caixa Pesquisar no Marketplace, digite Key Vault e pressione Enter.
Selecione Key Vault nos resultados.
Selecione Criar.
Forneça um Nome para o novo cofre de chaves.
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.
Selecione Examinar + criar
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.
Navegue até o Key Vault recém-criado.
Selecione Segredos e Adicionar.
Selecione Gerar/Importar
Na tela Criar um segredo de Opções de upload deixe Manual selecionado.
Insira um nome e um valor para o segredo. O valor pode ser qualquer coisa que você desejar.
Deixe a data de ativação e a data de validade em branco e deixe Habilitado como Sim.
Selecione Criar para criar o segredo.
Conceder acesso
A identidade gerenciada usada pela máquina virtual precisa receber acesso para ler o segredo que armazenaremos no Key Vault.
Navegue até o Key Vault recém-criado
Selecione Política de Acesso no menu no lado esquerdo.
Selecione Adicionar política de acesso
Na seção Adicionar política de acesso em Configurar com base no modelo (opcional), escolha Gerenciamento de Segredo no menu suspenso.
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.
Selecione Adicionar
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:
- No portal, navegue até Máquinas Virtuais e vá para a máquina virtual do Windows; em Visão geral, clique em Conectar.
- Insira o seu Nome de usuário e Senha que você adicionou quando criou a VM do Windows.
- Agora que você criou uma Conexão de Área de Trabalho Remota com a máquina virtual, abra o PowerShell na sessão remota.
- 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:
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: