Configuración de identidades administradas de recursos de Azure en una VM de Azure mediante PowerShellConfigure managed identities for Azure resources on an Azure VM using PowerShell

Managed Identities for Azure Resources es una característica de Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Las identidades administradas para los recursos de Azure proporcionan a los servicios de Azure una identidad administrada automáticamente en Azure Active Directory.Managed identities for Azure resources provides Azure services with an automatically managed identity in Azure Active Directory. Puede usar esta identidad para autenticar a cualquier servicio que admita la autenticación de Azure AD, sin necesidad de tener credenciales en el código.You can use this identity to authenticate to any service that supports Azure AD authentication, without having credentials in your code.

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.In this article, using PowerShell, you learn how to perform the following managed identities for Azure resources operations on an Azure VM.

Nota

Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Aún puede usar el módulo de AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para más información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obtener instrucciones sobre la instalación del módulo Az, consulte Instalación de Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

PrerequisitesPrerequisites

Identidad administrada asignada por el sistemaSystem-assigned managed identity

En esta sección, aprenderá a habilitar y deshabilitar la identidad administrada asignada por el sistema con Azure PowerShell.In this section, you will learn how to enable and disable the system-assigned managed identity using Azure PowerShell.

Habilitación de una identidad administrada asignada por el sistema durante la creación de una VM de AzureEnable system-assigned managed identity during creation of an Azure VM

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.To create an Azure VM with the system-assigned managed identity enabled,your account needs the Virtual Machine Contributor role assignment. No se requiere ninguna otra asignación de roles de directorio de Azure AD.No additional Azure AD directory role assignments are required.

  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").Refer to one of the following Azure VM Quickstarts, completing only the necessary sections ("Sign in to Azure", "Create resource group", "Create networking group", "Create the VM").

    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.When you get to the "Create the VM" section, make a slight modification to the New-AzVMConfig cmdlet syntax. Asegúrese de agregar un parámetro -AssignIdentity:$SystemAssigned para aprovisionar la máquina virtual con la identidad asignada por el sistema habilitada, por ejemplo:Be sure to add a -AssignIdentity:$SystemAssigned parameter to provision the VM with the system-assigned identity enabled, for example:

    $vmConfig = New-AzVMConfig -VMName myVM -AssignIdentity:$SystemAssigned ...
    

Habilitación de una identidad administrada asignada por el sistema en una VM de Azure existenteEnable system-assigned managed identity on an existing Azure VM

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.To enable system-assigned managed identity on a VM that was originally provisioned without it, your account needs the Virtual Machine Contributor role assignment. No se requiere ninguna otra asignación de roles de directorio de Azure AD.No additional Azure AD directory role assignments are required.

  1. Inicie sesión en Azure con Connect-AzAccount.Sign in to Azure using Connect-AzAccount. Use una cuenta asociada a la suscripción de Azure que contenga la máquina virtual.Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. En primer lugar, recupere las propiedades de la máquina virtual mediante el cmdlet Get-AzVM.First retrieve the VM properties using the Get-AzVM cmdlet. Después, para habilitar una identidad administrada asignada por el sistema, use el modificador -AssignIdentity en el cmdlet Update-AzVM:Then to enable a system-assigned managed identity, use the -AssignIdentity switch on the Update-AzVM cmdlet:

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

Adición de una identidad asignada por el sistema de una VM a un grupoAdd VM system assigned identity to a group

Después de haber habilitado la identidad asignada por el sistema en una VM, puede agregarla a un grupo.After you have enabled system assigned identity on a VM, you can add it to a group. Con el siguiente procedimiento se agrega la identidad asignada por el sistema de la VM a un grupo.The following procedure adds a VM's system assigned identity to a group.

  1. Inicie sesión en Azure con Connect-AzAccount.Sign in to Azure using Connect-AzAccount. Use una cuenta asociada a la suscripción de Azure que contenga la máquina virtual.Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. Recupere y anote el ObjectID (según lo especificado en el campo Id de valores devueltos) de la entidad de servicio de la VM:Retrieve and note the ObjectID (as specified in the Id field of the returned values) of the VM's service principal:

    Get-AzADServicePrincipal -displayname "myVM"
    
  3. Recupere y anote el ObjectID (según lo especificado en el campo Id de valores devueltos) del grupo:Retrieve and note the ObjectID (as specified in the Id field of the returned values) of the group:

    Get-AzADGroup -searchstring "myGroup"
    
  4. Agregue la entidad de servicio de la VM al grupo:Add the VM's service principal to the group:

    Add-AzureADGroupMember -ObjectId "<objectID of group>" -RefObjectId "<object id of VM service principal>"
    

Deshabilitación de una identidad administrada asignada por el sistema de una VM de AzureDisable system-assigned managed identity from an Azure VM

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.To disable system-assigned managed identity on a VM, your account needs the Virtual Machine Contributor role assignment. No se requiere ninguna otra asignación de roles de directorio de Azure AD.No additional Azure AD directory role assignments are required.

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:If you have a Virtual Machine that no longer needs the system-assigned managed identity but still needs user-assigned managed identities, use the following cmdlet:

  1. Inicie sesión en Azure con Connect-AzAccount.Sign in to Azure using Connect-AzAccount. Use una cuenta asociada a la suscripción de Azure que contenga la máquina virtual.Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. Recupere las propiedades de la máquina virtual mediante el cmdlet Get-AzVM y establezca el parámetro -IdentityType en UserAssigned:Retrieve the VM properties using the Get-AzVM cmdlet and set the -IdentityType parameter to UserAssigned:

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM 
    Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned"
    

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:If you have a virtual machine that no longer needs system-assigned managed identity and it has no user-assigned managed identities, use the following commands:

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

Identidad administrada asignada por el usuarioUser-assigned managed identity

En esta sección, aprenderá a agregar y quitar una identidad administrada asignada por el usuario de una máquina virtual con Azure PowerShell.In this section, you learn how to add and remove a user-assigned managed identity from a VM using Azure PowerShell.

Asignación de una identidad administrada asignada por el usuario a una máquina virtual durante la creaciónAssign a user-assigned managed identity to a VM during creation

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.To assign a user-assigned identity to a VM, your account needs the Virtual Machine Contributor and Managed Identity Operator role assignments. No se requiere ninguna otra asignación de roles de directorio de Azure AD.No additional Azure AD directory role assignments are required.

  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").Refer to one of the following Azure VM Quickstarts, completing only the necessary sections ("Sign in to Azure", "Create resource group", "Create networking group", "Create the VM").

    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.When you get to the "Create the VM" section, make a slight modification to the New-AzVMConfig cmdlet syntax. Agregue los parámetros -IdentityType UserAssigned y -IdentityID para aprovisionar la máquina virtual con una identidad asignada por el usuario.Add the -IdentityType UserAssigned and -IdentityID parameters to provision the VM with a user-assigned identity. Reemplace <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> y <USER ASSIGNED IDENTITY NAME> con sus propios valores.Replace <VM NAME>,<SUBSCRIPTION ID>, <RESROURCE GROUP>, and <USER ASSIGNED IDENTITY NAME> with your own values. Por ejemplo:For example:

    $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 existenteAssign a user-assigned managed identity to an existing Azure 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.To assign a user-assigned identity to a VM, your account needs the Virtual Machine Contributor and Managed Identity Operator role assignments. No se requiere ninguna otra asignación de roles de directorio de Azure AD.No additional Azure AD directory role assignments are required.

  1. Inicie sesión en Azure con Connect-AzAccount.Sign in to Azure using Connect-AzAccount. Use una cuenta asociada a la suscripción de Azure que contenga la máquina virtual.Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. Cree una identidad administrada asignada por el usuario mediante el cmdlet New-AzUserAssignedIdentity.Create a user-assigned managed identity using the New-AzUserAssignedIdentity cmdlet. Anote Id en la salida, porque lo necesitará en el paso siguiente.Note the Id in the output because you will need this in the next step.

    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 -).Creating user-assigned managed identities only supports alphanumeric, underscore and hyphen (0-9 or a-z or A-Z, _ or -) characters. 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.Additionally, name should be limited from 3 to 128 character length for the assignment to VM/VMSS to work properly. Para obtener más información, consulte Preguntas más frecuentes y problemas conocidos.For more information see FAQs and known issues

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  3. Recupere las propiedades de la máquina virtual mediante el cmdlet Get-AzVM.Retrieve the VM properties using the Get-AzVM cmdlet. 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.Then to assign a user-assigned managed identity to the Azure VM, use the -IdentityType and -IdentityID switch on the Update-AzVM cmdlet. El valor del parámetro -IdentityId es el Id que ha anotado en el paso anterior.The value for the-IdentityId parameter is the Id you noted in the previous step. Reemplace <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> y <USER ASSIGNED IDENTITY NAME> con sus propios valores.Replace <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP>, and <USER ASSIGNED IDENTITY NAME> with your own values.

    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).To retain any previously user-assigned managed identities assigned to the VM, query the Identity property of the VM object (for example, $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.If any user assigned managed identities are returned, include them in the following command along with the new user assigned managed identity you would like to assign to the VM.

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

Eliminación de una identidad administrada asignada por el usuario de una VM de AzureRemove a user-assigned managed identity from an Azure VM

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.To remove a user-assigned identity to a VM, your account needs the Virtual Machine Contributor role assignment.

Si la máquina virtual tiene varias identidades administradas asignadas por el usuario, puede quitar todas, menos la última, mediante los comandos siguientes.If your VM has multiple user-assigned managed identities, you can remove all but the last one using the following commands. Asegúrese de reemplazar los valores de los parámetros <RESOURCE GROUP> y <VM NAME> con sus propios valores.Be sure to replace the <RESOURCE GROUP> and <VM NAME> parameter values with your own values. <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.The <USER ASSIGNED IDENTITY NAME> is the user-assigned managed identity's name property, which should remain on the VM. Esta información puede encontrarse consultando la propiedad Identity del objeto de la máquina virtual.This information can be found by querying the Identity property of the VM object. Por ejemplo, $vm.Identity:For example, $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:If your VM does not have a system-assigned managed identity and you want to remove all user-assigned managed identities from it, use the following command:

$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.If your VM has both system-assigned and user-assigned managed identities, you can remove all the user-assigned managed identities by switching to use only system-assigned managed identities.

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

Pasos siguientesNext steps