Tutorial: Uso de las identidades administradas asignadas por el sistema de una máquina virtual Windows para acceder a Azure Key Vault

Las identidades administradas para recursos de Azure es una característica de Microsoft Entra ID. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.

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. 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 Microsoft Entra ID. Azure administra automáticamente las identidades administradas. Permiten autenticarse en servicios que admiten la autenticación de Microsoft Entra, sin incluir información de autenticación en el código.

Aprenderá a:

  • Concesión de acceso a la máquina virtual a un secreto almacenado en un almacén de claves
  • Obtener un token de acceso mediante la identidad de máquina virtual y usarlo para recuperar el secreto de Key Vault

Prerrequisitos

Creación de un almacén de claves

Sugerencia

Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.

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. Al usar identidades administradas para recursos de Azure, el código puede obtener tokens de acceso para autenticarse en aquellos recursos que admitan la autenticación de Microsoft Entra.  Sin embargo, no todos los servicios de Azure admiten la autenticación de Microsoft Entra. 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.

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.

  1. Inicie sesión en Azure Portal.

  2. En la parte superior de la barra de navegación izquierda, seleccione Crear recurso.

  3. En el cuadro de texto Buscar en el Marketplace, escriba Key Vault y presione Entrar.

  4. En la lista de resultados, seleccione Key Vault.

  5. Seleccione Crear.

  6. Proporcione un Nombre para el nuevo almacén de claves.

    Pantalla de creación de un almacén de claves.

  7. Rellene toda la información necesaria. Asegúrese de elegir la suscripción y el grupo de recursos que va a usar para este tutorial.

  8. Seleccione Revisar y crear.

  9. Seleccione Crear

Crear un secreto

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. En este tutorial utilizamos PowerShell, pero se aplican los mismos conceptos a cualquier código que se ejecute en esta máquina virtual.

  1. Vaya al almacén de claves recién creado.

  2. Seleccione Secretos y después Agregar.

  3. Seleccione Generar o importar.

  4. En la pantalla Crear un secreto desde Opciones de carga, deje la opción Manual seleccionada.

  5. Escriba un nombre y un valor para el secreto.  El valor puede ser cualquiera de su elección. 

  6. Deje la fecha de activación y la fecha de expiración y deje la opción Habilitado en

  7. Seleccione Crear para crear el secreto.

    Captura de pantalla en la que se muestra cómo crear un secreto.

Conceder acceso

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.

  1. Vaya al almacén de claves recién creado.

  2. Seleccione Directiva de acceso en el menú de la izquierda.

  3. Seleccione Agregar directiva de acceso.

    Captura de pantalla en la que se muestra la pantalla Directiva de acceso del almacén de claves.

  4. En la sección Agregar directiva de acceso que se encuentra en Configurar a partir de una plantilla (opcional), elija Administración de secretos en el menú desplegable.

  5. Elija Seleccionar la entidad de seguridad y, en el campo de búsqueda, escriba el nombre de la máquina virtual que creó anteriormente.  Seleccione la máquina virtual de la lista de resultados y elija Seleccionar.

  6. Seleccione Agregar.

  7. Seleccione Guardar.

Acceso a los datos

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. Si no tiene PowerShell 4.3.1 o superior instalado, necesitará descargar e instalar la versión más reciente.

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:

  1. En el portal, vaya a Virtual Machines y diríjase a la máquina virtual Windows. A continuación, en Introducción, seleccione Conectar.
  2. Escriba su nombre de usuario y contraseña que agregó cuando creó la máquina virtual Windows.  
  3. Ahora que ha creado una conexión a Escritorio remoto con la máquina virtual, abra PowerShell en la sesión remota.  
  4. 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.  

La solicitud de 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"} 

Puede ver cómo es la respuesta a continuación:

Captura de pantalla en la que se muestra una solicitud con una respuesta de token.

Luego, extraiga el token de acceso de la respuesta.  

   $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.  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.  

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:

  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.

Limpieza de recursos

Para limpiar los recursos, inicie sesión en Azure Portal, seleccione Grupos de recursos, busque y seleccione el grupo de recursos que se ha creado en el proceso de este tutorial (por ejemplo, mi-test) y, después, use el comando Eliminar grupo de recursos.

Como alternativa, también puede limpiar los recursos a través de PowerShell o la CLI.

Pasos siguientes

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. Para obtener más información sobre Azure Key Vault, vea: