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
- Conocimientos sobre identidades administradas. Si no está familiarizado con la característica Managed Identities for Azure Resources, consulte esta introducción.
- Una cuenta de Azure, regístrese para obtener una cuenta gratuita.
- 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). 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.
- También necesita una máquina virtual Windows que tenga habilitadas las identidades administradas asignadas por el sistema.
- Si necesita crear una máquina virtual para este tutorial, puede seguir el artículo titulado Creación de una máquina virtual con identidad administrada por el sistema habilitada.
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.
Inicie sesión en Azure Portal.
En la parte superior de la barra de navegación izquierda, seleccione Crear recurso.
En el cuadro de texto Buscar en el Marketplace, escriba Key Vault y presione Entrar.
En la lista de resultados, seleccione Key Vault.
Seleccione Crear.
Proporcione un Nombre para el nuevo almacén de claves.
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.
Seleccione Revisar y crear.
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.
Vaya al almacén de claves recién creado.
Seleccione Secretos y después Agregar.
Seleccione Generar o importar.
En la pantalla Crear un secreto desde Opciones de carga, deje la opción Manual seleccionada.
Escriba un nombre y un valor para el secreto. El valor puede ser cualquiera de su elección.
Deje la fecha de activación y la fecha de expiración y deje la opción Habilitado en Sí.
Seleccione Crear para crear el 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.
Vaya al almacén de claves recién creado.
Seleccione Directiva de acceso en el menú de la izquierda.
Seleccione Agregar directiva de acceso.
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.
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.
Seleccione Agregar.
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:
- En el portal, vaya a Virtual Machines y diríjase a la máquina virtual Windows. A continuación, en Introducción, seleccione Conectar.
- Escriba su nombre de usuario y contraseña que agregó cuando creó la máquina virtual Windows.
- Ahora que ha creado una conexión a Escritorio remoto con la máquina virtual, abra PowerShell en la sesión remota.
- 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:
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: