Tutorial: Uso de identidades administradas asignadas por el sistema de una máquina virtual Linux para acceder a Azure Key Vault
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 Linux una identidad administrada asignada por el sistema para acceder a Azure Key Vault. Key Vault permite que la aplicación cliente utilice un secreto para acceder a recursos no protegidos por Microsoft Entra ID. Las identidades de servicio administradas son administradas automáticamente por Azure y le permiten autenticarse con servicios que admiten la autenticación de Microsoft Entra sin necesidad de 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
- Obtención de un token de acceso mediante la identidad de máquina virtual y usarlo para recuperar el secreto de Key Vault
Requisitos previos
- Conocimientos básicos 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 Linux 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 Linux en Azure Portal.
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. Mediante 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 acceso a él a la identidad administrada asignada por el sistema de la máquina virtual.
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 y asegúrese de elegir la suscripción y el grupo de recursos donde creó la máquina virtual que usa 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
La identidad administrada utilizada por la máquina virtual necesita acceso para leer el secreto almacenado en Key Vault.
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 situada 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
Para completar estos pasos, necesitará un cliente SSH. Si usa Windows, puede usar el cliente SSH en el Subsistema de Windows para Linux. Si necesita ayuda para configurar las claves del cliente de SSH, consulte Uso de SSH con Windows en Azure o Creación y uso de un par de claves SSH pública y privada para máquinas virtuales Linux en Azure.
Importante
Todos los SDK de Azure admiten la biblioteca Azure.Identity, lo que facilita la adquisición de tokens de Microsoft Entra para acceder a los servicios de destino. Obtenga más información sobre los SDK de Azure y saque provecho de la biblioteca Azure.Identity.
En el portal, vaya a la máquina virtual Linux y, en Información general, seleccione Conectar.
Conéctese a la máquina virtual con el cliente SSH que elija.
En la ventana del terminal, use CURL para realizar una solicitud al punto de conexión local de identidades administradas para recursos de Azure y obtener un token de acceso para Azure Key Vault.
La solicitud CURL para el token de acceso está debajo.
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
La respuesta incluye el token de acceso que necesita para acceder a Resource Manager.
Respuesta:
{"access_token":"eyJ0eXAi...", "refresh_token":"", "expires_in":"3599", "expires_on":"1504130527", "not_before":"1504126627", "resource":"https://vault.azure.net", "token_type":"Bearer"}
Puede usar este token de acceso para autenticarse en Azure Key Vault. La siguiente solicitud CURL muestra cómo leer un secreto desde el almacén de claves usando CURL y la API de REST de Key Vault. Necesita la dirección URL de Key Vault, que se encuentra en la sección Essentials de la Página de información general de Key Vault. También necesita el token de acceso que obtuvo en la llamada anterior.
curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>"
La respuesta tiene este aspecto:
{"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}}
Una vez recuperado el secreto de Key Vault, puede usarlo para autenticarse en un servicio que requiera 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.
También puede hacerlo mediante 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 Linux para acceder a Azure Key Vault. Para obtener más información sobre Azure Key Vault, vea: