Uso de las identidades administradas asignadas por el sistema de una máquina virtual Linux para acceder a Azure Resource Manager
Managed Identities for Azure Resources es una característica de Azure Active Directory. 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 esta guía de inicio rápido, se muestra cómo usar una identidad asignada por el sistema para que una máquina virtual Linux acceda a la API de Azure Resource Manager. Azure administra automáticamente Managed Identities for Azure Resources, que le permiten autenticar los servicios que admiten la autenticación de Azure AD sin necesidad de insertar credenciales en el código. Aprenderá a:
- Concesión a una máquina virtual de acceso a un grupo de recursos en Azure Resource Manager
- Obtención de un token de acceso mediante la identidad de máquina virtual y su uso para llamar a Azure Resource Manager
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.
- También necesita una máquina virtual Linux que tenga habilitadas las identidades administradas asignadas por el sistema. Si tiene una máquina virtual pero necesita habilitar identidades administradas asignadas por el sistema, puede hacerlo en la sección de identidad de las propiedades de la máquina virtual.
- 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.
Conceder acceso
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. La API de Azure Resource Manager es compatible con la autenticación de Azure AD. En primer lugar, es necesario conceder acceso a la identidad de esta máquina virtual a un recurso en Azure Resource Manager, en este caso, el grupo de recursos que contiene la máquina virtual.
Inicie sesión en Azure Portal con su cuenta de administrador.
Vaya a la pestaña de Grupos de recursos.
Seleccione el grupo de recursos al que desea conceder acceso a la identidad administrada de la máquina virtual.
En el panel izquierdo, seleccione Control de acceso (IAM).
Seleccione Agregar y, después, Agregar asignación de roles.
En la pestaña Rol, seleccione Lector. Este rol permite ver todo recursos, pero no realizar cambios.
En la pestaña Miembros, para la sección Asignar acceso a, seleccione Identidad administrada. Elija + Seleccionar miembros.
Asegúrese de que la suscripción adecuada aparece en la lista desplegable Suscripción. Y en Grupo de recursos, seleccione Todos los grupos de recursos.
En la lista desplegable Administrar identidad, seleccione Máquina virtual.
Por último, en Seleccionar, elija la máquina virtual Windows de la lista desplegable y seleccione Guardar.
Obtención de un token de acceso mediante una identidad administrada asignada por el sistema de la máquina virtual y su uso para llamar a Resource Manager
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.
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 Managed Identities for Azure Resources para obtener un token de acceso para Azure Resource Manager. La solicitud decurl
para el token de acceso está a continuación.curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true
Nota:
El valor del parámetro "resource" (parámetro) debe coincidir exactamente con el que Azure AD espera. En el caso del identificador de recurso de Resource Manager, debe incluir la barra diagonal final en el URI.
La respuesta incluye el token de acceso que necesita para acceder a Azure Resource Manager.
Respuesta:
{"access_token":"eyJ0eXAiOi...", "refresh_token":"", "expires_in":"3599", "expires_on":"1504130527", "not_before":"1504126627", "resource":"https://management.azure.com", "token_type":"Bearer"}
Puede usar este token de acceso para acceder a Azure Resource Manager, por ejemplo, para leer los detalles del grupo de recursos al que previamente concedió acceso a la máquina virtual. Reemplace los valores de <Identificador de suscripción>, <Grupo de recursos> y <Token de acceso> por los que ha creado anteriormente.
Nota:
La dirección URL distingue mayúsculas de minúsculas, por lo tanto, asegúrese de que usa las mismas mayúsculas y minúsculas que al asignar el nombre al grupo de recursos, así como la "G" mayúscula de "resourceGroups".
curl https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS TOKEN>"
La respuesta devuelta con la información específica del grupo de recursos:
{"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
Pasos siguientes
En esta guía de inicio rápido, ha aprendido a usar una identidad administrada asignada por el sistema para acceder a la API de Azure Resource Manager. Para obtener más información sobre Azure Resource Manager, vea: