Compartir a través de


Configuración de identidades administradas en máquinas virtuales (VM) 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.

Para obtener información sobre la definición y los detalles de Azure Policy, consulte Uso de Azure Policy para asignar identidades administradas (versión preliminar).

En este artículo, aprenderá a habilitar y deshabilitar las identidades administradas asignadas por el usuario y el sistema para una máquina virtual (VM) de Azure mediante Azure Portal.

Prerrequisitos

Identidad administrada asignada por el sistema

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

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

Para habilitar una identidad administrada asignada por el sistema en una máquina virtual durante su creación, 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.

  • En el pestaña Administración de la sección Identidad cambie Managed Service Identity a Activado.

Captura de pantalla en la que se muestra cómo habilitar una identidad asignada por el sistema durante la creación de una máquina virtual.

Consulte las siguientes guías de inicio rápido para crear una máquina virtual:

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

Sugerencia

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

Para habilitar una identidad administrada asignada por el sistema en una máquina virtual que en un principio se aprovisionó sin dicha identidad, 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. Inicie sesión en Azure Portal con una cuenta asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Vaya a la máquina virtual que desee y seleccione la página Identidad.

  3. En Asignado por el sistema, en Estado, seleccione Activado y haga clic en Guardar:

    Captura de pantalla que muestra la página

Quitar una identidad administrada asignada por el sistema de una VM

Para eliminar una identidad administrada asignada por el sistema de 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 administrada asignada por el sistema:

  1. Inicie sesión en Azure Portal con una cuenta asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Vaya a la máquina virtual que desee y seleccione la página Identidad.

  3. En Asignado por el sistema, en Estado, seleccione Desactivado y haga clic en Guardar:

    Captura de pantalla de la página de configuración.

Identidad administrada asignada por el usuario

En esta sección, aprenderá a agregar y quitar una identidad administrada asignada por el usuario desde una VM mediante Azure Portal.

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

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.

En la actualidad, Azure Portal no permite asignar una identidad administrada asignada por el usuario durante la creación de una VM. En su lugar, consulte uno de los artículos de inicio rápido sobre la creación de VM para crear primero una VM y continúe en la siguiente sección, donde encontrará información acerca de cómo asignar la identidad administrada asignada por el usuario a la VM:

Asignación de una identidad administrada asignada por el usuario a una VM 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. Inicie sesión en Azure Portal con una cuenta asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Vaya a la máquina virtual que desee y haga clic en Identidad, Asignado por el usuario y en +Agregar.

    Captura de pantalla en la que se muestra la página Identidad con la opción Asignada por el usuario seleccionada y el botón Agregar resaltado.

  3. Haga clic en la identidad asignada por el usuario que quiera agregar a la VM y, a continuación, en Agregar.

    Captura de pantalla en la que se muestra la incorporación de una identidad administrada asignada por el usuario a una máquina virtual.

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

Para eliminar una identidad asignada por el usuario de 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. Inicie sesión en Azure Portal con una cuenta asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Vaya a la máquina virtual que quiera y seleccione Identidad, asignada por el usuario, el nombre de la identidad administrada asignada por el usuario que desea eliminar y luego haga clic en Quitar (haga clic en en el panel de confirmación).

    Captura de pantalla en la que se muestra cómo quitar una identidad administrada asignada por el usuario de una máquina virtual

Pasos siguientes

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": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "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": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "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=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "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

En este artículo, con PowerShell, aprenderá a usar las siguientes identidades administradas para operaciones de recursos de Azure en una máquina virtual de Azure.

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Prerrequisitos

Identidad administrada asignada por el sistema

En esta sección, se describe cómo habilitar y deshabilitar la identidad administrada asignada por el sistema con Azure PowerShell.

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. Consulte una de las siguientes guías de inicio rápido sobre máquinas virtuales de Azure y finalice solo las secciones necesarias ("Iniciar sesión en Azure", "Creación de un grupo de recursos", "Creación de un grupo de red", "Creación de la máquina virtual").

    Cuando llegue a la sección "Creación de la máquina virtual", realice una pequeña modificación en la sintaxis del cmdlet New-AzVMConfig. Asegúrese de agregar un parámetro -IdentityType SystemAssigned para aprovisionar la máquina virtual con la identidad asignada por el sistema habilitada, por ejemplo:

    $vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
    

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 que en un principio se aprovisionó sin dicha identidad, 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. Recupere las propiedades de la máquina virtual mediante el cmdlet Get-AzVM. Después, para habilitar una identidad administrada asignada por el sistema, use el modificador -IdentityType en el cmdlet Update-AzVM:

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
    

Adición de una identidad asignada por el sistema de una VM a un grupo

Después de haber habilitado la identidad asignada por el sistema en una VM, puede agregarla a un grupo. Con el siguiente procedimiento se agrega la identidad asignada por el sistema de la VM a un grupo.

  1. Recupere y anote el ObjectID (según lo especificado en el campo Id de valores devueltos) de la entidad de servicio de la VM:

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. Recupere y anote el ObjectID (según lo especificado en el campo Id de valores devueltos) del grupo:

    Get-AzADGroup -searchstring "myGroup"
    
  3. Agregue la entidad de servicio de la VM al grupo:

    New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>" 
    

Deshabilitación de una identidad administrada asignada por el sistema de 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 administrada asignada por el sistema, pero aún necesita identidades administradas asignadas por el usuario, use el siguiente cmdlet:

  1. Recupere las propiedades de la máquina virtual mediante el cmdlet Get-AzVM y establezca el parámetro -IdentityType en UserAssigned:

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Si tiene una máquina virtual que ya no necesita la identidad administrada asignada por el sistema y no tiene identidades administradas asignadas por el usuario, use los siguientes comandos:

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType 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 máquina virtual con Azure PowerShell.

Asignación de una identidad administrada asignada por el usuario a una máquina virtual durante la creación

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. Consulte una de las siguientes guías de inicio rápido sobre máquinas virtuales de Azure y finalice solo las secciones necesarias ("Iniciar sesión en Azure", "Creación de un grupo de recursos", "Creación de un grupo de red", "Creación de la máquina virtual").

    Cuando llegue a la sección "Creación de la máquina virtual", realice una pequeña modificación en la sintaxis del cmdlet New-AzVMConfig. Agregue los parámetros -IdentityType UserAssigned y -IdentityID para aprovisionar la máquina virtual con una identidad asignada por el usuario. Reemplace <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> y <USER ASSIGNED IDENTITY NAME> con sus propios valores. Por ejemplo:

    $vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

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 administrada asignada por el usuario mediante el cmdlet New-AzUserAssignedIdentity. Anote Id en la salida, porque necesitará esta información en el paso siguiente.

    Importante

    La creación de identidades administradas asignadas por el usuario solo admite caracteres alfanuméricos, subrayados y guiones (0-9, a-z, A-Z, _ o -). Además, el nombre debe limitarse a una longitud de entre 3 y 128 caracteres para que la asignación a VM/VMSS funcione correctamente. Para más información, consulte Preguntas más frecuentes y problemas conocidos.

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Recupere las propiedades de la máquina virtual mediante el cmdlet Get-AzVM. A continuación, para asignar una identidad administrada asignada por el usuario a la máquina virtual de Azure, use los modificadores -IdentityType y -IdentityID en el cmdlet Update-AzVM. El valor del parámetro -IdentityId es el Id que ha anotado en el paso anterior. Reemplace <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> y <USER ASSIGNED IDENTITY NAME> con sus propios valores.

    Advertencia

    Para conservar las identidades administradas previamente asignadas al usuario, pero asignadas ahora a la máquina virtual, consulte la propiedad Identity del objeto de la máquina virtual (por ejemplo, $vm.Identity). Si se devuelven identidades administradas asignadas al usuario, inclúyalas en el siguiente comando junto con la nueva identidad administrada asignada por el usuario que desea asignar a la máquina virtual.

    $vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME>
    
    # Get the list of existing identity IDs and then append to it
    $identityIds = $vm.Identity.UserAssignedIdentities.Keys
    $uid = "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
    $identityIds = $identityIds + $uid 
    
    # Update the VM with added identity IDs
    Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID $uid 
    

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 la máquina virtual tiene varias identidades administradas asignadas por el usuario, puede quitar todas, menos la última, mediante los comandos siguientes. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP> y <VM NAME> con sus propios valores. <USER ASSIGNED IDENTITY NAME> es la propiedad de nombre de la identidad administrada asignada por el usuario, que debe permanecer en la máquina virtual. Esta información se puede detectar mediante una consulta para buscar la propiedad Identity del objeto de máquina virtual. Por ejemplo, $vm.Identity:

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>

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

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Si la máquina virtual tiene identidades administradas asignadas tanto por el sistema como por el usuario, puede quitar todas las identidades administradas asignadas por el usuario si cambia para usar solo las identidades administradas asignadas por el sistema.

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"

Pasos siguientes

En este artículo, con la plantilla de implementación de Azure Resource Manager, aprenderá a usar las siguientes entidades administradas para operaciones de recursos de Azure en una VM de Azure:

Prerrequisitos

Plantillas del Administrador de recursos de Azure

Al igual que con Azure Portal y los scripts, las plantillas de Azure Resource Manager le permiten implementar recursos nuevos o modificados definidos por un grupo de recursos de Azure. Existen varias opciones para la edición e implementación de plantillas, tanto localmente como basadas en el portal, incluidas:

Independientemente de la opción que elija, la sintaxis de la plantilla es la misma durante la implementación inicial y posteriores implementaciones. La habilitación de una identidad administrada asignada por el sistema o el usuario en una VM existente o nueva se realiza de la misma forma. Además, de forma predeterminada, Azure Resource Manager realiza una actualización incremental en las implementaciones.

Identidad administrada asignada por el sistema

En esta sección, se habilita y deshabilita una identidad administrada asignada por el sistema con una plantilla de Azure Resource Manager.

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

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. Independientemente de que inicie sesión localmente en Azure o mediante Azure Portal, use una cuenta que esté asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Para habilitar la identidad administrada asignada por el sistema, cargue la plantilla en un editor, busque el recurso de interés Microsoft.Compute/virtualMachines en la sección resources y agregue la propiedad "identity" en el mismo nivel que la propiedad "type": "Microsoft.Compute/virtualMachines". Use la sintaxis siguiente:

    "identity": {
        "type": "SystemAssigned"
    },
    
  3. Cuando haya terminado, deben agregarse las siguientes secciones a la sección resource de la plantilla para que se parezca a la siguiente:

     "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "SystemAssigned",
                 }                        
         }
     ]
    

Asignación de un rol a la identidad administrada asignada por el sistema de la VM

Después de haber habilitado la identidad administrada asignada por el sistema en la máquina virtual, quizá quiera concederle un rol con el acceso de lector al grupo de recursos en el que se creó. En el artículo Asignación de roles de Azure mediante plantillas de Azure Resource Manager encontrará información detallada que le ayudará con este paso.

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

Para eliminar una identidad administrada asignada por el sistema de 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. Independientemente de que inicie sesión localmente en Azure o mediante Azure Portal, use una cuenta que esté asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Cargue la plantilla en un editor y busque el Microsoft.Compute/virtualMachinesrecurso de interés dentro de la sección resources. Si dispone de una VM que solo tenga una identidad administrada asignada por el sistema, puede deshabilitarla cambiando el tipo de identidad a None.

    Microsoft.Compute/virtualMachines versión 2018-06-01 de la API

    Si la VM tiene identidades administradas asignadas tanto por el usuario como por el sistema, quite SystemAssigned del tipo de identidad y conserve UserAssigned junto con los valores de diccionario userAssignedIdentities.

    Microsoft.Compute/virtualMachines versión 2018-06-01 de la API

    Si apiVersion es 2017-12-01 y la VM tiene identidades administradas asignadas tanto por el usuario como por el sistema, quite SystemAssigned del tipo de identidad y conserve UserAssigned junto con la matriz identityIds de identidades administradas asignadas por el usuario.

En el ejemplo siguiente se muestra cómo quitar una identidad administrada asignada por el sistema de una VM sin identidades administradas asignadas por el usuario:

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "[parameters('vmName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "None"
    }
}

Identidad administrada asignada por el usuario

En esta sección, asignará una identidad administrada asignada por el usuario a una VM de Azure mediante la plantilla de Azure Resource Manager.

Nota:

Para crear una identidad administrada asignada por el usuario mediante una plantilla de Azure Resource Manager, consulte Create a user-assigned managed identity (Creación de una identidad administrada asignada por el usuario).

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

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

  1. En el elemento resources, agregue la siguiente entrada para asignar una identidad administrada asignada por el usuario a la VM. No olvide reemplazar <USERASSIGNEDIDENTITY> con el nombre de la identidad administrada asignada por el usuario que ha creado.

    Microsoft.Compute/virtualMachines versión 2018-06-01 de la API

    Si apiVersion es 2018-06-01, las identidades administradas asignadas por el usuario se almacenan en el formato de diccionario userAssignedIdentities y el valor <USERASSIGNEDIDENTITYNAME> debe almacenarse en una variable definida en la sección variables de la plantilla.

     {
         "apiVersion": "2018-06-01",
         "type": "Microsoft.Compute/virtualMachines",
         "name": "[variables('vmName')]",
         "location": "[resourceGroup().location]",
         "identity": {
             "type": "userAssigned",
             "userAssignedIdentities": {
                 "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
             }
         }
     }
    

    Microsoft.Compute/virtualMachines versión 2017-12-01 de la API

    Si apiVersion es 2017-12-01, las identidades administradas asignadas por el usuario se almacenan en la matriz identityIds y el valor <USERASSIGNEDIDENTITYNAME> debe almacenarse en una variable definida en la sección variables de la plantilla.

    {
        "apiVersion": "2017-12-01",
        "type": "Microsoft.Compute/virtualMachines",
        "name": "[variables('vmName')]",
        "location": "[resourceGroup().location]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
            ]
        }
    }
    
  2. Cuando haya terminado, deben agregarse las siguientes secciones a la sección resource de la plantilla para que se parezca a la siguiente:

    Microsoft.Compute/virtualMachines versión 2018-06-01 de la API

      "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "userAssignedIdentities": {
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
                 }
             }
         }
     ] 
    

    Microsoft.Compute/virtualMachines versión 2017-12-01 de la API

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2017-12-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "identityIds": [
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
                 ]
             }
         }
    ]
    

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

Para eliminar una identidad asignada por el usuario de 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. Independientemente de que inicie sesión localmente en Azure o mediante Azure Portal, use una cuenta que esté asociada a la suscripción de Azure que contiene la máquina virtual.

  2. Cargue la plantilla en un editor y busque el Microsoft.Compute/virtualMachinesrecurso de interés dentro de la sección resources. Si dispone de una máquina virtual que solo tenga una identidad administrada asignada por el usuario, puede deshabilitarla cambiando el tipo de identidad a None.

    En el ejemplo siguiente se muestra cómo quitar todas las identidades administradas asignadas por un usuario de una VM sin identidades administradas asignadas por el sistema:

     {
       "apiVersion": "2018-06-01",
       "type": "Microsoft.Compute/virtualMachines",
       "name": "[parameters('vmName')]",
       "location": "[resourceGroup().location]",
       "identity": {
           "type": "None"
           },
     }
    

    Microsoft.Compute/virtualMachines versión 2018-06-01 de la API

    Para quitar una identidad administrada asignada por un usuario único de una VM, elimínela del diccionario useraAssignedIdentities.

    Si tiene una identidad administrada asignada por el sistema, consérvela en el valor type de identity.

    Microsoft.Compute/virtualMachines versión 2017-12-01 de la API

    Para quitar una identidad administrada asignada por un usuario único de una máquina virtual, elimínela de la matriz identityIds.

    Si tiene una identidad administrada asignada por el sistema, consérvela en el valor type de identity.

Pasos siguientes

En este artículo, mediante CURL para llamar al punto de conexión REST de Azure Resource Manager, aprenderá a realizar las siguientes operaciones de identidades administradas 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 una identidad administrada asignada por el sistema en una máquina virtual de Azure mediante CURL para llamar al punto de conexión de REST de Azure Resource Manager.

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 interfaz de red para la máquina virtual:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  4. Utilice Azure Cloud Shell para crear una máquina virtual mediante CURL para llamar al punto de conexión REST de Azure Resource Manager. En el ejemplo siguiente, se crea una máquina virtual denominada myVM con una identidad administrada asignada por el sistema, como ha identificado en el cuerpo de la solicitud el valor "identity":{"type":"SystemAssigned"}. Reemplace <ACCESS TOKEN> por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor <SUBSCRIPTION ID> según sea apropiado para su entorno.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

      {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"SystemAssigned"
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }  
    

Habilitación de la identidad asignada por el sistema en una máquina virtual de Azure existente

Para habilitar una identidad administrada asignada por el sistema en una máquina virtual que en un principio se aprovisionó sin dicha identidad, 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. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  2. Use el comando CURL siguiente para llamar al punto de conexión REST de Azure Resource Manager para habilitar la identidad administrada asignada por el sistema en la máquina virtual, como se identifica en el cuerpo de la solicitud por el valor {"identity":{"type":"SystemAssigned"} para una máquina virtual denominada myVM. Reemplace <ACCESS TOKEN> por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor <SUBSCRIPTION ID> según sea apropiado para su entorno.

    Importante

    Para asegurarse de que no elimina ninguna de las identidades administradas asignadas por el usuario que están asignadas a la máquina virtual, necesita enumerar las identidades administradas asignadas por el usuario mediante este comando CURL: curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>". Si tiene asignadas identidades administradas asignadas por el usuario a la máquina virtual como se identifica en el valor identity de la respuesta, vaya al paso 3 que muestra cómo conservar las identidades administradas asignadas por el usuario mientras se habilita la identidad administrada asignada por el sistema en la máquina virtual.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {  
        "identity":{  
           "type":"SystemAssigned"
        }
     }
    
  3. Para habilitar la identidad administrada asignada por el sistema en una máquina virtual con identidades administradas existentes asignadas por el usuario, debe agregar SystemAssigned al valor type.

    Por ejemplo, si la máquina virtual tiene asignadas las identidades administradas asignadas por el usuario ID1 y ID2, y desea agregar una identidad administrada asignada por el sistema a dicha máquina virtual, utilice la siguiente llamada CURL. Reemplace <ACCESS TOKEN> y <SUBSCRIPTION ID> por los valores adecuados para su entorno.

    La versión de API 2018-06-01 almacena las identidades administradas asignadas por el usuario en el valor userAssignedIdentities en un formato de diccionario, en contraposición con el valor identityIds en formato de matriz que se usaba en la versión 2017-12-01 de la API.

    VERSIÓN DE API 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{  
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{  
    
              }
           }
        }
     }
    

    VERSIÓN DE API 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

Deshabilitación de una identidad administrada asignada por el sistema de 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.

  1. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  2. Actualice la máquina virtual mediante CURL para llamar al punto de conexión REST de Azure Resource Manager para deshabilitar la identidad administrada asignada por el sistema. En el ejemplo siguiente, se deshabilita una identidad administrada asignada por el sistema en el cuerpo de la solicitud por el valor {"identity":{"type":"None"}} desde una máquina virtual denominada myVM. Reemplace <ACCESS TOKEN> por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor <SUBSCRIPTION ID> según sea apropiado para su entorno.

    Importante

    Para asegurarse de que no elimina ninguna de las identidades administradas asignadas por el usuario que están asignadas a la máquina virtual, necesita enumerar las identidades administradas asignadas por el usuario mediante este comando CURL: curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>". Si tiene asignadas identidades administradas asignadas por el usuario a la máquina virtual como se identifica en el valor identity de la respuesta, vaya al paso 3 que muestra cómo conservar las identidades administradas asignadas por el usuario mientras se deshabilita la identidad administrada asignada por el sistema en la máquina virtual.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {  
        "identity":{  
           "type":"None"
        }
     }
    

    Para quitar la identidad administrada asignada por el sistema de una máquina virtual que tiene identidades administradas asignadas por el usuario, quite SystemAssigned del valor {"identity":{"type:" "}} mientras mantiene el valor UserAssigned y los valores de diccionario userAssignedIdentities, si está utilizando la versión de API 2018-06-01. Si está usando la versión de API 2017-12-01 o versiones anteriores, mantenga la matriz identityIds.

Identidad administrada asignada por el usuario

En esta sección, aprenderá a agregar y a quitar una identidad administrada asignada por el usuario en una máquina virtual de Azure mediante CURL para llamar al punto de conexión de REST de Azure Resource Manager.

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 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. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  2. Cree una interfaz de red para la máquina virtual:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  4. Cree una identidad asignada por el usuario mediante las instrucciones que se encuentran aquí: Creación de una identidad administrada asignada por el usuario.

  5. Cree una máquina virtual con CURL para llamar al punto de conexión REST de Azure Resource Manager. En el ejemplo siguiente se crea una máquina virtual denominada myVM en el grupo de recursos myResourceGroup con una identidad administrada asignada por el usuario ID1, como se identificó en el cuerpo de la solicitud por el valor "identity":{"type":"UserAssigned"}. Reemplace <ACCESS TOKEN> por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor <SUBSCRIPTION ID> según sea apropiado para su entorno.

    VERSIÓN DE API 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {  
        "location":"westus",
        "name":"myVM",
        "identity":{  
           "type":"UserAssigned",
           "identityIds":[  
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{  
           "hardwareProfile":{  
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{  
              "imageReference":{  
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{  
                 "caching":"ReadWrite",
                 "managedDisk":{  
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[  
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{  
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{  
              "networkInterfaces":[  
                 {  
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{  
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    
    

    VERSIÓN DE API 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    

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. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  2. Cree una identidad administrada asignada por el usuario mediante las instrucciones que se encuentran aquí: Creación de una identidad administrada asignada por el usuario.

  3. Para asegurarse de que no elimina las identidades administradas asignadas por el usuario o por el sistema que están asignadas a la máquina virtual, necesita enumerar los tipos de identidades asignados a la máquina virtual mediante el comando CURL siguiente. Si ha administrado identidades asignadas al conjunto de escalado de máquinas virtuales, se enumeran en el valor identity.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Si tiene identidades administradas asignadas por el usuario o por el sistema asignadas a la máquina virtual como se identifica en el valor identity de la respuesta, vaya al paso 5, en el que se muestra cómo conservar la identidad administrada asignada por el sistema mientras se agrega una identidad administrada asignada por el usuario en la máquina virtual.

  4. Si no tiene ninguna identidad administrada asignada por el usuario en la máquina virtual, use el siguiente comando CURL para llamar al punto de conexión REST de Azure Resource Manager para asignar la primera identidad administrada asignada por el usuario a la máquina virtual.

    En el ejemplo siguiente, se asigna una identidad administrada asignada por el usuario, ID1, a una máquina virtual llamada myVM en el grupo de recursos myResourceGroup. Reemplace <ACCESS TOKEN> por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor <SUBSCRIPTION ID> según sea apropiado para su entorno.

    VERSIÓN DE API 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "identity":{
           "type":"UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              }
           }
        }
     }
    

    VERSIÓN DE API 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "identity":{
           "type":"userAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    
  5. Si dispone ya de una identidad asignada por el usuario o por el sistema asignada a la máquina virtual:

    VERSIÓN DE API 2018-06-01

    Agregue la identidad administrada asignada por el usuario al valor de diccionario userAssignedIdentities.

    Por ejemplo, si tiene una identidad administrada asignada por el sistema y una identidad administrada asignada por el usuario ID1 actualmente asignadas a la máquina virtual y quiere agregarles la identidad administrada asignada por el usuario ID2:

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{
    
              }
           }
        }
     }
    

    VERSIÓN DE API 2017-12-01

    Conserve las identidades administradas asignadas por el usuario y que le gustaría mantener en el valor de matriz identityIds al tiempo que agrega la nueva identidad administrada asignada por el usuario.

    Por ejemplo, si tiene una identidad administrada asignada por el sistema y una identidad administrada asignada por el usuario ID1 actualmente asignadas a la máquina virtual y quiere agregarles la identidad administrada asignada por el usuario ID2:

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

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.

  1. Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear la máquina virtual con una identidad administrada asignada por el sistema.

    az account get-access-token
    
  2. Para asegurarse de que no elimina ninguna identidad administrada asignada por el usuario o por el sistema que está asignada a la máquina virtual y de que no quita la identidad administrada asignada por el sistema, necesita enumerar las identidades administradas mediante el comando CURL siguiente:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Si ha administrado identidades asignadas a la máquina virtual, se enumeran en la respuesta del valor identity.

    Por ejemplo, si tiene identidades administradas asignadas por el usuario ID1 y ID2 asignadas a la máquina virtual, y solo desea mantener ID1 asignada y conservar la identidad asignada por el sistema:

    VERSIÓN DE API 2018-06-01

    Agregue null a la identidad administrada asignada por el usuario que quiere quitar:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null
           }
        }
     }
    

    VERSIÓN DE API 2017-12-01

    Conserve solo las identidades administradas asignadas por el usuario que le gustaría mantener en la matriz identityIds:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Encabezados de solicitud

    Encabezado de solicitud Descripción
    Content-Type Necesario. Establézcalo en application/json.
    Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

    Cuerpo de la solicitud

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    

Si la máquina virtual tiene identidades administradas asignadas tanto por el sistema como por el usuario, puede quitar todas las identidades administradas asignadas por el usuario si cambia para usar solo las identidades administradas asignadas por el sistema mediante el siguiente comando:

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

Encabezados de solicitud

Encabezado de solicitud Descripción
Content-Type Necesario. Establézcalo en application/json.
Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

Cuerpo de la solicitud

{
   "identity":{
      "type":"SystemAssigned"
   }
}

Si la máquina virtual solo tiene identidades administradas asignadas por el usuario y desea quitarlas todas, utilice el comando siguiente:

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

Encabezados de solicitud

Encabezado de solicitud Descripción
Content-Type Necesario. Establézcalo en application/json.
Autorización Necesario. Establézcalo en un token de acceso Bearer válido.

Cuerpo de la solicitud

{
   "identity":{
      "type":"None"
   }
}

Pasos siguientes

Para obtener información sobre cómo crear, enumerar o eliminar identidades administradas asignadas por el usuario mediante REST, consulte:

En este artículo, aprenderá a habilitar y eliminar identidades administradas de recursos de Azure mediante un SDK de Azure.

Prerrequisitos

Compatibilidad de SDK de Azure con identidades administradas de recursos de Azure

Azure admite varias plataformas de programación a través de una serie de SDK de Azure. Varias de ellas se han actualizado para ser compatibles con identidades administradas de recursos de Azure y proporcionan los ejemplos correspondientes para mostrar el uso. Esta lista se actualiza a medida que se agrega otra compatibilidad:

SDK Muestra
.NET Administración de recursos de una máquina virtual habilitada con identidades administradas de recursos de Azure habilitadas
Java Administración del almacenamiento de una máquina virtual habilitada con identidades administradas de recursos de Azure
Node.js Creación de una máquina virtual con la identidad administrada asignada por el sistema habilitada
Python Creación de una máquina virtual con la identidad administrada asignada por el sistema habilitada
Ruby Creación de una máquina virtual de Azure con la identidad asignada por el sistema habilitada

Pasos siguientes

  • Consulte los artículos relacionados en Configuración de identidad para una máquina virtual de Azure para obtener información sobre cómo puede usar también Azure Portal, PowerShell, la CLI y las plantillas de recursos.