Configurar identidades administradas para recursos de Azure en una VM de Azure mediante la CLI de Azure

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.

Las identidades administradas de los recursos de Azure proporcionan a los servicios de Azure una identidad administrada automáticamente en Microsoft Entra ID. Puede usar esta identidad para autenticar a cualquier servicio que admita la autenticación de Microsoft Entra, sin necesidad de tener credenciales en el código.

En este artículo, con la CLI de Azure, aprenderá a usar las siguientes identidades administradas para operaciones de recursos de Azure en una VM de Azure:

  • Habilitar y deshabilitar la identidad administrada asignada por el sistema en una VM de Azure
  • Agregar y quitar una identidad administrada asignada por el usuario en una VM de Azure

Si aún no tiene una cuenta de Azure, regístrese para una cuenta gratuita antes de continuar.

Prerrequisitos

Identidad administrada asignada por el sistema

En esta sección, aprenderá a habilitar y deshabilitar la identidad administrada asignada por el sistema en una VM de Azure mediante la CLI de Azure.

Habilitación de una identidad administrada asignada por el sistema durante la creación de una VM de Azure

Para crear una máquina virtual de Azure que tenga habilitada la identidad administrada asignada por el sistema, la cuenta debe tener la asignación de roles Colaborador de la máquina Virtual. No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.

  1. Cree un grupo de recursos para contener e implementar la máquina virtual y sus recursos relacionados, con az group create. Puede omitir este paso si ya tiene un grupo de recursos que le gustaría usar en su lugar:

    az group create --name myResourceGroup --location westus
    
  2. Cree una máquina virtual mediante az vm create. En el ejemplo siguiente, se crea una VM denominada myVM con una identidad administrada asignada por el sistema, como ha solicitado el parámetro --assign-identity con --role y --scope especificados. Los parámetros --admin-username y --admin-password especifican el nombre de usuario administrativo y la contraseña de la cuenta para el inicio de sesión en la máquina virtual. Actualice estos valores según convenga para su entorno:

    az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
    

Habilitación de una identidad administrada asignada por el sistema en una VM de Azure existente

Para habilitar una identidad administrada asignada por el sistema en una máquina virtual, la cuenta necesita la asignación de roles Colaborador de la máquina virtual. No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.

  1. Si usa la CLI de Azure en una consola local, lo primero que debe hacer es iniciar sesión en Azure mediante el inicio de sesión de az. Use una cuenta asociada a la suscripción de Azure que contenga la máquina virtual.

    az login
    
  2. Use az vm identity assign con el comando identity assign para habilitar la identidad asignada por el sistema en una VM existente:

    az vm identity assign -g myResourceGroup -n myVm
    

Deshabilitación de una identidad asignada por el sistema desde una VM de Azure

Para deshabilitar una identidad administrada asignada por el sistema en una máquina virtual, la cuenta necesita la asignación de roles Colaborador de la máquina virtual. No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.

Si tiene una máquina virtual que ya no necesita la identidad asignada por el sistema, pero aún necesita identidades asignadas por el usuario, use el siguiente comando:

az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

Si tiene una máquina virtual que ya no necesita la identidad asignada por el sistema y no tiene identidades asignadas por el usuario, use el siguiente comando:

Nota:

El valor none no distingue mayúsculas de minúsculas. Debe estar en minúscula.

az vm update -n myVM -g myResourceGroup --set identity.type="none"

Identidad administrada asignada por el usuario

En esta sección, aprenderá a agregar y quitar una identidad administrada asignada por el usuario de una VM de Azure con la CLI de Azure. Si crea la identidad administrada asignada por el usuario en un RG diferente al de la máquina virtual. Tendrá que usar la dirección URL de la identidad administrada para asignarla a la máquina virtual. Por ejemplo:

--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"

Asignación de una identidad administrada asignada por el usuario durante la creación de una VM de Azure

Para asignar una identidad asignada por el usuario a una máquina virtual durante su creación, la cuenta debe tener las asignaciones de roles Colaborador de la máquina virtual y Operador de identidades administradas. No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.

  1. Puede omitir este paso si ya tiene un grupo de recursos que le gustaría usar. Cree un grupo de recursos para contener e implementar la identidad administrada asignada por el usuario mediante az group create. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP> y <LOCATION> con sus propios valores. :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. Cree una identidad administrada asignada por el usuario mediante az identity create. El parámetro -g especifica el grupo de recursos en el que se crea la identidad administrada asignada por el usuario, mientras que el parámetro -n especifica su nombre.

    Importante

    Al crear identidades administradas asignadas por el usuario, el nombre debe comenzar con una letra o un número, y puede incluir una combinación de caracteres alfanuméricos, guiones (-) y guiones bajos (_). Para que la asignación a una máquina virtual o un conjunto de escalado de máquinas virtuales funcione correctamente, el nombre está limitado a 24 caracteres. Para más información, consulte Preguntas más frecuentes y problemas conocidos.

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

    La respuesta contiene detalles de la identidad administrada asignada por el usuario que se ha creado, de forma similar a lo siguiente. El valor del identificador del recurso asignado a la identidad administrada asignada por el usuario se usa en el paso siguiente.

    {
        "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. Cree una máquina virtual mediante az vm create. En el ejemplo siguiente, se crea una VM asociada a la nueva identidad asignada por el usuario, según lo especificado por el parámetro --assign-identity, con --role y --scope especificados. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP>, <VM NAME>, <USER NAME>, <PASSWORD>, <USER ASSIGNED IDENTITY NAME>, <ROLE> y <SUBSCRIPTION> por sus propios valores.

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image>  --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION> 
    

Asignación de una identidad administrada asignada por el usuario a una VM de Azure existente

Para asignar una identidad asignada por un usuario a una máquina virtual, la cuenta debe tener las asignaciones de roles Colaborador de la máquina virtual y Operador de identidades administradas. No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.

  1. Cree una identidad asignada por el usuario mediante el cmdlet az identity create. El parámetro -g especifica el grupo de recursos donde se crea la identidad asignada por el usuario, mientras que el parámetro -n especifica su nombre. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP> y <USER ASSIGNED IDENTITY NAME> por sus propios valores:

    Importante

    Actualmente, no se admite la creación de identidades administradas asignadas por el usuario con caracteres especiales (por ejemplo, guion bajo) en el nombre. Use caracteres alfanuméricos. Compruebe si hay actualizaciones. Para más información, consulte Preguntas más frecuentes y problemas conocidos.

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    La respuesta contiene detalles de la identidad administrada asignada por el usuario que se ha creado, de forma similar a lo siguiente.

    {
      "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
      "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. Asignar a su VM la identidad asignada por el usuario mediante az vm identity assign. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP> y <VM NAME> con sus propios valores. El parámetro <USER ASSIGNED IDENTITY NAME> es la propiedad name del recurso de la identidad administrada asignar por el usuario, tal como se creó en el paso anterior. Si ha creado la identidad administrada asignada por el usuario en un RG diferente al de la máquina virtual. Tendrá que usar la dirección URL de la identidad administrada.

    az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
    

Eliminación de una identidad administrada asignada por el usuario de una VM de Azure

Para quitar una identidad asignada por un usuario de una máquina virtual, la cuenta necesita la asignación de roles Colaborador de la máquina virtual.

Si se trata de la única identidad administrada asignada por el usuario que se ha asignado a una máquina virtual, UserAssigned se quitará del valor de tipo de identidad. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP> y <VM NAME> con sus propios valores. El parámetro <USER ASSIGNED IDENTITY> será la propiedad name de la identidad asignada por el usuario, que se puede encontrar en la sección de identidad de la máquina virtual mediante az vm identity show:

az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>

Si la VM no tiene una identidad administrada asignada por el sistema y desea quitar de ella todas las identidades asignadas por el usuario, utilice el siguiente comando:

Nota:

El valor none no distingue mayúsculas de minúsculas. Debe estar en minúscula.

az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

Si la VM tiene identidades asignadas tanto por el sistema como por el usuario, puede quitar todas las identidades asignadas por el usuario si cambia para usar solo las asignadas por el sistema. Use el comando siguiente:

az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

Pasos siguientes