Tutorial: Utilizar uma identidade gerida atribuída pelo sistema de VM do Windows para aceder ao Azure Key VaultTutorial: Use a Windows VM system-assigned managed identity to access Azure Key Vault

As identidades geridas para os recursos do Azure são uma funcionalidade do Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. 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.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Certifique-se de que revê o estado de disponibilidade das identidades geridas para o seu recurso e problemas conhecidos antes de começar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Este tutorial mostra-lhe como uma máquina virtual do Windows (VM) pode usar uma identidade gerida pelo sistema para aceder ao Cofre da Chave Azure.This tutorial shows you how a Windows virtual machine (VM) can use a system-assigned managed identity to access Azure Key Vault. Servindo como uma bota, o Key Vault permite que a aplicação do seu cliente utilize um segredo para aceder a recursos não garantidos pela Azure Ative Directory (AD).Serving as a bootstrap, Key Vault makes it possible for your client application to then use a secret to access resources not secured by Azure Active Directory (AD). As Identidades de Serviço Gerido são geridas automaticamente pela Azure e permitem-lhe autenticar serviços que suportem a autenticação AZure AD, sem incluir informações de autenticação no seu código.Managed Service Identities are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication, without including authentication information in your code.

Saiba como:You learn how to:

  • Conceder o acesso da VM a um segredo armazenado num Key VaultGrant your VM access to a secret stored in a Key Vault
  • Obter um token de acesso com a identidade da VM e utilizá-lo para obter o segredo a partir do Key VaultGet an access token using the VM identity and use it to retrieve the secret from Key Vault

Pré-requisitosPrerequisites

Criar um Key VaultCreate a Key Vault

Esta secção mostra como conceder o acesso ao seu VM a um segredo armazenado num Cofre de Chaves.This section shows how to grant your VM access to a secret stored in a Key Vault. Com as identidades geridas para recursos do Azure, o seu código pode obter tokens de acesso para autenticação perante recursos que suportem a Autenticação do Azure AD.Using managed identities for Azure resources, your code can get access tokens to authenticate to resources that support Azure AD authentication.No entanto, nem todos os serviços do Azure suportam a autenticação do Azure AD.  However, not all Azure services support Azure AD authentication. Para utilizar identidades geridas para recursos do Azure com esses serviços, armazene as credenciais do serviço no Azure Key Vault e utilize a identidade gerida da VM para aceder ao Key Vault para obter as credenciais.To use managed identities for Azure resources with those services, store the service credentials in Azure Key Vault, and use the VM's managed identity to access Key Vault to retrieve the credentials.

Primeiro, é preciso criar um Key Vault e conceder o acesso de identidade gerida atribuída pelo sistema da nossa VM ao Key Vault.First, we need to create a Key Vault and grant our VM’s system-assigned managed identity access to the Key Vault.

  1. Abra o portal AzureOpen the Azure portal

  2. No topo da barra de navegação esquerda, selecione Criar um recursoAt the top of the left navigation bar, select Create a resource

  3. Na pesquisa do tipo de caixa Marketplace no Cofre de Chaves e embram Enter.In the Search the Marketplace box type in Key Vault and hit Enter.

  4. Selecione Key Vault a partir dos resultados.Select Key Vault from the results.

  5. Selecione CriarSelect Create

  6. Indique um Nome para o novo Key Vault.Provide a Name for the new Key Vault.

    Criar um ecrã de cofre chave

  7. Preencha todas as informações necessárias certificando-se de que escolhe o grupo de subscrição e recursos onde criou a máquina virtual que está a usar para este tutorial.Fill out all required information making sure that you choose the subscription and resource group where you created the virtual machine that you are using for this tutorial.

  8. Selecione Review+ criarSelect Review+ create

  9. Selecione CriarSelect Create

Criar um segredoCreate a secret

Em seguida, adicione um segredo ao Cofre de Chaves, para que possa recuperá-lo mais tarde usando o código em execução no seu VM.Next, add a secret to the Key Vault, so you can retrieve it later using code running in your VM. Para efeitos deste tutorial, estamos a usar o PowerShell mas os mesmos conceitos aplicam-se a qualquer código de execução nesta máquina virtual.For the purpose of this tutorial, we are using PowerShell but the same concepts apply to any code executing in this virtual machine.

  1. Navegue para o seu recém-criado Cofre-Chave.Navigate to your newly created Key Vault.

  2. Selecione Segredos e clique em Adicionar.Select Secrets, and click Add.

  3. Selecione Gerar/ImportarSelect Generate/Import

  4. No Criar um ecrã secreto a partir das opções de Upload deixar o Manual selecionado.In the Create a secret screen from Upload options leave Manual selected.

  5. Introduza o nome e o valor do segredo.Enter a name and value for the secret. O valor pode ser o que quiser.The value can be anything you want.

  6. Deixe as datas de ativação e expiração claras e mantenha Ativado como Sim.Leave the activation date and expiration date clear, and leave Enabled as Yes.

  7. Clique em Criar para criar o segredo.Click Create to create the secret.

    Criar um segredo

Conceder acessoGrant access

A identidade gerida usada pela máquina virtual precisa de ter acesso para ler o segredo que armazenaremos no Cofre de Chaves.The managed identity used by the virtual machine needs to be granted access to read the secret that we will store in the Key Vault.

  1. Navegue até ao seu recém-criado Cofre-ChaveNavigate to your newly created Key Vault

  2. Selecione a Política de Acesso do menu do lado esquerdo.Select Access Policy from the menu on the left side.

  3. Selecione Adicionar Política de AcessoSelect Add Access Policy

    cofre chave criar tela de política de acesso

  4. Na secção de política de acesso adicionar ao abrigo do Configure do modelo (opcional) escolha Gestão Secreta no menu pull-down.In the Add access policy section under Configure from template (optional) choose Secret Management from the pull-down menu.

  5. Selecione Selecionar Principal e, no campo de pesquisa, introduza o nome da VM que criou anteriormente.Choose Select Principal, and in the search field enter the name of the VM you created earlier. Selecione o VM na lista de resultados e escolha Selecione.Select the VM in the result list and choose Select.

  6. Selecione AdicionarSelect Add

  7. Selecione Guardar.Select Save.

Aceder a dadosAccess data

Esta secção mostra como obter um token de acesso usando a identidade VM e usá-lo para recuperar o segredo do Key Vault.This section shows how to get an access token using the VM identity and use it to retrieve the secret from Key Vault. Se não tiver o PowerShell 4.3.1 ou posterior instalado, terá de transferir e instalar a versão mais recente.If you don’t have PowerShell 4.3.1 or greater installed, you'll need to download and install the latest version.

Primeiro, utilizamos a identidade gerida atribuída pelo sistema da VM para obter um token de acesso para autenticação no Key Vault:First, we use the VM’s system-assigned managed identity to get an access token to authenticate to Key Vault:

  1. No portal, navegue para Máquinas Virtuais, aceda à sua máquina virtual do Windows e, em Descrição Geral, clique em Ligar.In the portal, navigate to Virtual Machines and go to your Windows virtual machine and in the Overview, click Connect.
  2. Introduza o seu nome de utilizador e palavra-passe para o qual adicionou quando criou o Windows VM.Enter in your Username and Password for which you added when you created the Windows VM.
  3. Agora que criou uma Ligação de Ambiente de Trabalho Remoto com a máquina virtual, abra o PowerShell na sessão remota.Now that you have created a Remote Desktop Connection with the virtual machine, open PowerShell in the remote session.
  4. No PowerShell, invoca o pedido Web no inquilino para obter o token para o anfitrião local na porta específica para a VM.In PowerShell, invoke the web request on the tenant to get the token for the local host in the specific port for the VM.

O pedido do PowerShell:The PowerShell request:

$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"} 

Pode ver como é a resposta abaixo:You can see what the response looks like below:

pedido com resposta simbólica

Em seguida, extraia o token de acesso da resposta.Next, extract the access token from the response.

   $KeyVaultToken = $Response.access_token

Por fim, utilize o comando Invoke-WebRequest do PowerShell para obter o segredo que criou anteriormente no Key Vault ao transmitir o token de acesso no cabeçalho de Autorização.Finally, use PowerShell’s Invoke-WebRequest command to retrieve the secret you created earlier in the Key Vault, passing the access token in the Authorization header. Precisará do URL do Key Vault, que está na secção Informações Básicas da página Descrição Geral do Key Vault.You’ll need the URL of your Key Vault, which is in the Essentials section of the Overview page of the 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á o seguinte aspeto:The response will look like this:

  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, pode utilizá-lo para autenticação num serviço que requeira um nome e uma palavra-passe.Once you’ve retrieved the secret from the Key Vault, you can use it to authenticate to a service that requires a name and password.

Limpar os recursosClean up resources

Quando pretender limpar os recursos, visite o portal Azure, selecione Grupos de Recursos, localize e selecione o grupo de recursos que foi criado no processo deste tutorial (como) e, em mi-test seguida, utilize o comando do grupo de recursos Delete.When you want to clean up the resources, visit the Azure portal, select Resource groups, locate, and select the resource group that was created in the process of this tutorial (such as mi-test), and then use the Delete resource group command.

Em alternativa, também pode fazê-lo através do PowerShell ou do CLIAlternatively you may also do this via PowerShell or the CLI

Passos seguintesNext steps

Neste tutorial, aprendeu a usar uma identidade gerida pelo sistema Windows VM para aceder ao Cofre da Chave Azure.In this tutorial, you learned how to use a Windows VM system-assigned managed identity to access Azure Key Vault. Para saber mais sobre o Azure Key Vault, veja:To learn more about Azure Key Vault see: