Tutorial: Uso de las identidades administradas asignadas por el sistema de una máquina virtual Windows para acceder a Azure Key VaultTutorial: Use a Windows VM system-assigned managed identity to access Azure Key Vault
Managed Identities for Azure Resources es una característica de Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.
En este tutorial se muestra cómo puede usar una máquina virtual Windows una identidad administrada asignada por el sistema para acceder a Azure Key Vault.This tutorial shows you how a Windows virtual machine (VM) can use a system-assigned managed identity to access Azure Key Vault. Actuando como un arranque, Key Vault hace posible que la aplicación cliente use un secreto para acceder a recursos que no están protegidos por Azure Active 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). Las identidades de servicio administradas son administradas automáticamente por Azure y le permiten autenticarse con servicios que admiten la autenticación de Azure AD sin necesidad de incluir información de autenticación en el 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.
Aprenderá a:You learn how to:
- Concesión de acceso a la máquina virtual a un secreto almacenado en un almacén de clavesGrant your VM access to a secret stored in a Key Vault
- Obtener un token de acceso mediante la identidad de máquina virtual y usarlo para recuperar el secreto de Key VaultGet an access token using the VM identity and use it to retrieve the secret from Key Vault
PrerrequisitosPrerequisites
- Conocimientos sobre identidades administradas.An understanding of Managed identities. Si no está familiarizado con la característica Managed Identities for Azure Resources, consulte esta introducción.If you're not familiar with the managed identities for Azure resources feature, see this overview.
- Una cuenta de Azure, regístrese para obtener una cuenta gratuita.An Azure account, sign up for a free account.
- Para realizar la creación de los recursos necesarios y los pasos de administración de roles, debe tener permisos de "Propietario" en el ámbito adecuado (la suscripción o el grupo de recursos)."Owner" permissions at the appropriate scope (your subscription or resource group) to perform required resource creation and role management steps. Si necesita ayuda con la asignación de roles, consulte Asignación de roles de Azure para administrar el acceso a los recursos de una suscripción de Azure.If you need assistance with role assignment, see Assign Azure roles to manage access to your Azure subscription resources.
- También necesita una máquina virtual Windows que tenga habilitadas las identidades administradas asignadas por el sistema.You also need a Windows Virtual machine that has system assigned managed identities enabled.
- Si necesita crear una máquina virtual para este tutorial, puede seguir el artículo titulado Configurar identidades administradas para recursos de Azure en una VM mediante Azure Portal.If you need to create a virtual machine for this tutorial, you can follow the article titled Create a virtual machine with system-assigned identity enabled
Creación de un almacén de clavesCreate a Key Vault
En esta sección se muestra cómo conceder acceso a la máquina virtual a un secreto almacenado en un almacén de claves.This section shows how to grant your VM access to a secret stored in a Key Vault. Mediante Managed Identities for Azure Resources, el código puede obtener tokens de acceso para autenticarse en aquellos recursos que admitan la autenticación de Azure AD.Using managed identities for Azure resources, your code can get access tokens to authenticate to resources that support Azure AD authentication.Sin embargo, no todos los servicios de Azure admiten la autenticación de Azure AD. However, not all Azure services support Azure AD authentication. Para usar Managed Identities for Azure Resources con esos servicios, almacene las credenciales del servicio en Azure Key Vault y use una identidad administrada de la máquina virtual a fin de acceder a Key Vault y recuperar las credenciales.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.
En primer lugar, es necesario crear un almacén de claves y conceder a la identidad administrada asignada por el sistema de la máquina virtual acceso al mismo.First, we need to create a Key Vault and grant our VM’s system-assigned managed identity access to the Key Vault.
Abra Azure Portal.Open the Azure portal
En la parte superior de la barra de navegación izquierda, seleccione Crear un recurso.At the top of the left navigation bar, select Create a resource
En el cuadro de texto Buscar en el Marketplace, escriba Key Vault y presione Entrar.In the Search the Marketplace box type in Key Vault and hit Enter.
En la lista de resultados, seleccione Key Vault.Select Key Vault from the results.
Seleccione CrearSelect Create
Proporcione un nombre para el nuevo almacén de claves.Provide a Name for the new Key Vault.
Rellene toda la información necesaria y asegúrese de elegir la suscripción y el grupo de recursos donde creó la máquina virtual que usa 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.
Seleccione Revisar y crear.Select Review+ create
Seleccione CrearSelect Create
Crear un secretoCreate a secret
A continuación, agregue un secreto al almacén de claves, de forma que más adelante pueda recuperarlo mediante código que se ejecuta en la máquina virtual.Next, add a secret to the Key Vault, so you can retrieve it later using code running in your VM. Para este tutorial utilizamos PowerShell, pero los mismos conceptos se aplican a cualquier código que se ejecute en esta 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.
Vaya al almacén de claves recién creado.Navigate to your newly created Key Vault.
Seleccione Secretos y haga clic en Agregar.Select Secrets, and click Add.
Seleccione Generar o importar.Select Generate/Import
En la pantalla Crear un secreto desde Opciones de carga, deje la opción Manual seleccionada.In the Create a secret screen from Upload options leave Manual selected.
Escriba un nombre y un valor para el secreto.Enter a name and value for the secret. El valor puede ser cualquiera de su elección.The value can be anything you want.
Deje la fecha de activación y la fecha de expiración y deje la opción Habilitado en Sí.Leave the activation date and expiration date clear, and leave Enabled as Yes.
Haga clic en Crear para crear el secreto.Click Create to create the secret.
Conceder accesoGrant access
Es necesario conceder acceso a la identidad administrada que usa la máquina virtual para leer el secreto que se almacenará en el almacén de claves.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.
Vaya al almacén de claves recién creado.Navigate to your newly created Key Vault
Seleccione Directiva de acceso en el menú de la izquierda.Select Access Policy from the menu on the left side.
Seleccione Agregar directiva de acceso.Select Add Access Policy
En la sección Agregar directiva de acceso situada en Configurar a partir de una plantilla (opcional) , elija Administración de secretos en el menú desplegable.In the Add access policy section under Configure from template (optional) choose Secret Management from the pull-down menu.
Elija Seleccionar la entidad de seguridad y, en el campo de búsqueda, escriba el nombre de la máquina virtual que creó anteriormente.Choose Select Principal, and in the search field enter the name of the VM you created earlier. Seleccione la máquina virtual de la lista de resultados y elija Seleccionar.Select the VM in the result list and choose Select.
Seleccione Agregar.Select Add
Seleccione Guardar.Select Save.
Acceso a los datosAccess data
En esta sección se muestra cómo obtener un token de acceso mediante la identidad de la máquina virtual y usarlo para recuperar el secreto del almacén de claves.This section shows how to get an access token using the VM identity and use it to retrieve the secret from Key Vault. Si no tiene PowerShell 4.3.1 o superior instalado, necesitará descargar e instalar la versión más reciente.If you don’t have PowerShell 4.3.1 or greater installed, you'll need to download and install the latest version.
En primer lugar, vamos a usar la identidad administrada asignada por el sistema de la máquina virtual a fin de obtener un token de acceso para autenticarse en Key Vault:First, we use the VM’s system-assigned managed identity to get an access token to authenticate to Key Vault:
- En el portal, vaya a Virtual Machines y diríjase a la máquina virtual Windows. A continuación, en Introducción, haga clic en Conectar.In the portal, navigate to Virtual Machines and go to your Windows virtual machine and in the Overview, click Connect.
- Escriba su nombre de usuario y contraseña que agregó cuando creó la máquina virtual Windows.Enter in your Username and Password for which you added when you created the Windows VM.
- Ahora que ha creado una conexión a Escritorio remoto con la máquina virtual, abra PowerShell en la sesión remota.Now that you have created a Remote Desktop Connection with the virtual machine, open PowerShell in the remote session.
- En PowerShell, invoque la solicitud web en el inquilino para obtener el token del host local en el puerto específico de la máquina virtual.In PowerShell, invoke the web request on the tenant to get the token for the local host in the specific port for the VM.
La solicitud de 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"}
Puede ver cómo es la respuesta a continuación:You can see what the response looks like below:
Luego, extraiga el token de acceso de la respuesta.Next, extract the access token from the response.
$KeyVaultToken = $Response.access_token
Finalmente, use el comando Invoke-WebRequest de PowerShell para recuperar el secreto que creó anteriormente en el almacén de claves y pasar el token de acceso en el encabezado de autenticación.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. Necesitará la dirección URL de su almacén de claves, que se encuentra en la sección de Información esencial de la página Introducción del almacén de claves.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"}
La respuesta tendrá un aspecto similar al siguiente: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…
Cuando haya recuperado el secreto del almacén de claves, podrá usarlo para autenticarse en un servicio que requiere un nombre y una contraseña.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.
Limpieza de recursosClean up resources
Para limpiar los recursos, visite Azure Portal, seleccione Grupos de recursos, busque y seleccione el grupo de recursos que se creó en el proceso de este tutorial (por ejemplo, mi-test
) y, a continuación, use el comando Eliminar grupo de recursos.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.
Como alternativa, también puede realizar esto mediante PowerShell o la CLI.Alternatively you may also do this via PowerShell or the CLI
Pasos siguientesNext steps
En este tutorial, ha aprendido a utilizar una identidad administrada asignada por el sistema de una máquina virtual Windows para acceder a Azure Key Vault.In this tutorial, you learned how to use a Windows VM system-assigned managed identity to access Azure Key Vault. Para obtener más información sobre Azure Key Vault, vea:To learn more about Azure Key Vault see: