Configurar identidades administradas para recursos de Azure en una VM de Azure mediante la CLI de Azure
Las identidades administradas para recursos de Azure es una característica de Microsoft Entra ID. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.
Las identidades administradas de los recursos de Azure proporcionan a los servicios de Azure una identidad administrada automáticamente en Microsoft Entra ID. Puede usar esta identidad para autenticar a cualquier servicio que admita la autenticación de Microsoft Entra, sin necesidad de tener credenciales en el código.
En este artículo, con la CLI de Azure, aprenderá a usar las siguientes identidades administradas para operaciones de recursos de Azure en una VM de Azure:
- Habilitar y deshabilitar la identidad administrada asignada por el sistema en una VM de Azure
- Agregar y quitar una identidad administrada asignada por el usuario en una VM de Azure
Si aún no tiene una cuenta de Azure, regístrese para una cuenta gratuita antes de continuar.
Prerrequisitos
- Si no está familiarizado con las identidades administradas para los recursos de Azure, vea ¿Qué son las identidades administradas para recursos de Azure?. Para obtener información sobre los tipos de identidad administrada asignados por el sistema y asignados por el usuario, consulte Tipos de identidad administrada.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
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.
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
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.
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
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.
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>
Cree una identidad administrada asignada por el usuario mediante az identity create. El parámetro
-g
especifica el grupo de recursos en el que se crea la identidad administrada asignada por el usuario, mientras que el parámetro-n
especifica su nombre.Importante
Al crear identidades administradas asignadas por el usuario, el nombre debe comenzar con una letra o un número, y puede incluir una combinación de caracteres alfanuméricos, guiones (-) y guiones bajos (_). Para que la asignación a una máquina virtual o un conjunto de escalado de máquinas virtuales funcione correctamente, el nombre está limitado a 24 caracteres. Para más información, consulte Preguntas más frecuentes y problemas conocidos.
az identity create -g myResourceGroup -n myUserAssignedIdentity
La respuesta contiene detalles de la identidad administrada asignada por el usuario que se ha creado, de forma similar a lo siguiente. El valor del identificador del recurso asignado a la identidad administrada asignada por el usuario se usa en el paso siguiente.
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
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.
Cree una identidad asignada por el usuario mediante el cmdlet az identity create. El parámetro
-g
especifica el grupo de recursos donde se crea la identidad asignada por el usuario, mientras que el parámetro-n
especifica su nombre. Asegúrese de reemplazar los valores de los parámetros<RESOURCE GROUP>
y<USER ASSIGNED IDENTITY NAME>
por sus propios valores:Importante
Actualmente, no se admite la creación de identidades administradas asignadas por el usuario con caracteres especiales (por ejemplo, guion bajo) en el nombre. Use caracteres alfanuméricos. Compruebe si hay actualizaciones. Para más información, consulte Preguntas más frecuentes y problemas conocidos.
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
La respuesta contiene detalles de la identidad administrada asignada por el usuario que se ha creado, de forma similar a lo siguiente.
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
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 propiedadname
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
- Información general sobre las identidades administradas de recursos de Azure
- Para ver guías de inicio rápido completas acerca de la creación de máquinas virtuales de Azure, consulte: