Uso de las identidades administradas asignadas por el sistema de una máquina virtual Linux para acceder a Azure Resource Manager

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 esta guía de inicio rápido, se muestra cómo usar una identidad administrada asignada por el sistema como una identidad de una máquina virtual (VM) Linux para acceder a la API de Azure Resource Manager. Azure administra automáticamente las identidades administradas para recursos de Azure, que le permiten autenticar los servicios que admiten la autenticación de Microsoft Entra 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

Conceder acceso

Sugerencia

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

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. La API de Azure Resource Manager es compatible con la autenticación de Microsoft Entra. 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.

  1. Inicie sesión en Azure Portal con su cuenta de administrador.

  2. Vaya a la pestaña de Grupos de recursos.

  3. Seleccione el grupo de recursos al que desea conceder acceso a la identidad administrada de la máquina virtual.

  4. En el panel izquierdo, seleccione Control de acceso (IAM).

  5. Seleccione Agregar y, después, Agregar asignación de roles.

  6. En la pestaña Rol, seleccione Lector. Este rol permite ver todo recursos, pero no realizar cambios.

  7. En la pestaña Miembros, para la sección Asignar acceso a, seleccione Identidad administrada. Elija + Seleccionar miembros.

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

  9. En la lista desplegable Administrar identidad, seleccione Máquina virtual.

  10. Por último, en Seleccionar, elija la máquina virtual Windows de la lista desplegable y seleccione Guardar.

    Captura de pantalla que muestra cómo agregar el rol de lector a la identidad administrada.

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.

  1. En el portal, vaya a la máquina virtual Linux y, en Información general, seleccione Conectar.

  2. Conéctese a la máquina virtual con el cliente SSH que elija.

  3. 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 de curl 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 debe coincidir exactamente con el que espera Microsoft Entra ID. 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 <SUBSCRIPTION-ID>, <RESOURCE-GROUP> y <ACCESS-TOKEN> con los que creó 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 más información sobre Azure Resource Manager, consulte: