Tutorial: Usar uma identidade gerenciada atribuída pelo sistema da VM do Linux para acessar o Azure Key VaultTutorial: Use a Linux VM system-assigned managed identity to access Azure Key Vault

Identidades gerenciadas para recursos do Azure é um recurso do Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. 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.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Não deixe de examinar o status de disponibilidade das identidades gerenciadas do seu recurso e os 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 como usar uma identidade gerenciada atribuída pelo sistema para uma VM (máquina virtual) do Linux para acessar o Azure Key Vault.This tutorial shows you how to use a system-assigned managed identity for a Linux virtual machine (VM) to access Azure Key Vault. Atuando como bootstrap, o Key Vault possibilita que o aplicativo cliente use o segredo para acessar recursos não protegidos pelo Azure AD (Active Directory).Serving as a bootstrap, Key Vault makes it possible for your client application to then use the secret to access resources not secured by Azure Active Directory (AD). 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 Azure AD sem necessidade de inserir as credenciais em seu código.Managed identities for Azure resources are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication, without needing to insert credentials into your code.

Você aprenderá como:You learn how to:

  • Conceda o acesso da máquina virtual a um segredo armazenado em um Key VaultGrant your VM access to a secret stored in a Key Vault
  • Obtenha um token de acesso usando a identidade da VM e use-o para recuperar o segredo do Key VaultGet an access token using the VM's identity and use it to retrieve the secret from the Key Vault  

Pré-requisitosPrerequisites

Conceder o acesso a um segredo armazenado em um Key Vault para sua VMGrant your VM access to a Secret stored in a Key Vault  

Usando as identidades serviço gerenciadas para recursos do Azure, seu código pode obter tokens de acesso para autenticar para recursos que oferecem suporte à autenticação do Azure Active Directory.Using managed service identities for Azure resources your code can get access tokens to authenticate to resources that support Azure Active Directory authentication. No entanto, nem todos os serviços do Azure dão suporte à autenticação do Azure AD. However, not all Azure services support Azure AD authentication. Para usar identidades gerenciadas para recursos do Azure com esses serviços, armazene as credenciais de serviço no Azure Key Vault e use as identidades gerenciada para recursos do Azure para acessar o Key Vault para recuperar as credenciais. To use managed identities for Azure resources with those services, store the service credentials in Azure Key Vault, and use managed identities for Azure resources to access Key Vault to retrieve the credentials. 

Primeiro, precisamos criar um cofre de chaves e conceder à nossa identidade gerenciada atribuída pelo sistema da VM acesso 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. Na parte superior da barra de navegação esquerda, selecioneCriar um recurso > Segurança + Identidade > Key Vault.At the top of the left navigation bar, select Create a resource > Security + Identity > Key Vault.  

  2. Forneça um Nome para o novo Key Vault.Provide a Name for the new Key Vault. 

  3. Localize o Key Vault no mesmo grupo de recursos e assinatura da VM que você criou anteriormente.Locate the Key Vault in the same subscription and resource group as the VM you created earlier. 

  4. Selecione Políticas de acesso e clique em Adicionar nova.Select Access policies and click Add new. 

  5. Em Configurar usando modelo, selecione Gerenciamento de Segredo.In Configure from template, select Secret Management. 

  6. Escolha Selecionar Entidade de Segurança e no campo de pesquisa insira o nome da VM que você criou anteriormente.Choose Select Principal, and in the search field enter the name of the VM you created earlier.  Selecione a VM na lista de resultados e clique em Selecionar.  Select the VM in the result list and click Select. 

  7. Clique em OK para terminar de adicionar a nova política de acesso e OK para concluir a seleção de política de acesso.Click OK to finishing adding the new access policy, and OK to finish access policy selection. 

  8. Clique em Criar para terminar de criar o Key Vault.Click Create to finish creating the Key Vault. 

    Texto Alt da imagem

Em seguida, adicione um segredo ao Key Vault, para que posteriormente você possa recuperar o segredo usando código em execução em sua VM:Next, add a secret to the Key Vault, so that later you can retrieve the secret using code running in your VM: 

  1. Selecione Todos os Recursos e localize e selecione o Key Vault criado.Select All Resources, and find and select the Key Vault you created. 
  2. Selecione Segredos e clique em Adicionar.Select Secrets, and click Add. 
  3. Selecione Manual em Opções de upload.Select Manual, from Upload options. 
  4. Insira um nome e um valor para o segredo.Enter a name and value for the secret.  O valor pode ser qualquer coisa que você desejar.  The value can be anything you want. 
  5. Deixe a data de ativação e a data de validade em branco e deixe Habilitado como Sim.Leave the activation date and expiration date clear, and leave Enabled as Yes. 
  6. Clique em Criar para criar o segredo.Click Create to create the secret.   

Obtenha um token de acesso usando a identidade da VM e use-o para recuperar o segredo do Key VaultGet an access token using the VM's identity and use it to retrieve the secret from the Key Vault  

Para concluir essas etapas, você precisará do cliente SSH.To complete these steps, you need an SSH client.  Se você estiver usando o Windows, poderá usar o cliente SSH no Subsistema do Windows para Linux.  If you are using Windows, you can use the SSH client in the Windows Subsystem for 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.If you need assistance configuring your SSH client's keys, see How to Use SSH keys with Windows on Azure, or How to create and use an SSH public and private key pair for Linux VMs in Azure.  

  1. No portal, navegue até a VM do Linux e em Visão geral, clique em Conectar.In the portal, navigate to your Linux VM and in the Overview, click Connect. 

  2. Conecte-se à VM com um cliente SSH de sua escolha.Connect to the VM with the SSH client of your choice. 

  3. Na janela de terminal, usando CURL, faça uma solicitação para as identidades gerenciadas locais para o ponto de extremidade de recursos do Azure para obter um token de acesso para o Azure Key Vault.  In the terminal window, using CURL, make a request to the local managed identities for Azure resources endpoint to get an access token for Azure Key Vault.     A solicitação CURL para o token de acesso está abaixo.The CURL request for the access token is below.  

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true  
    

    A resposta inclui o token de acesso de que você precisa para acessar o Azure Resource Manager.The response includes the access token you need to access Resource Manager. 

    Resposta:Response:  

    {"access_token":"eyJ0eXAi...",
    "refresh_token":"",
    "expires_in":"3599",
    "expires_on":"1504130527",
    "not_before":"1504126627",
    "resource":"https://vault.azure.net",
    "token_type":"Bearer"} 
    

    Você pode usar esse token de acesso para autenticar o Azure Key Vault.You can use this access token to authenticate to Azure Key Vault.  A próxima solicitação CURL mostra como ler um segredo do Key Vault usando CURL e a API REST do Key Vault.  The next CURL request shows how to read a secret from Key Vault using CURL and the Key Vault REST API.  Você precisará da URL de seu Key Vault, que está na seção Essentials da página Visã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.  O token de acesso que você obteve na chamada anterior também será necessário.  You will also need the access token you obtained on the previous call. 

    curl https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01 -H "Authorization: Bearer <ACCESS TOKEN>" 
    

    A resposta terá a seguinte aparência:The response will look like this: 

    {"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}} 
    

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

Próximas etapasNext steps

Neste tutorial, você aprendeu a usar uma identidade gerenciada atribuída pelo sistema da VM do Linux para acessar o Azure Key Vault.In this tutorial, you learned how to use a Linux VM system-assigned managed identity to access Azure Key Vault. Para saber mais sobre o Azure Key Vault, confira:To learn more about Azure Key Vault see: