Configuración de identidades administradas para recursos de Azure en una máquina virtual de Azure mediante plantillas
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 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:
Requisitos previos
- Si no está familiarizado con el uso de la plantilla de implementación de Azure Resource Manager, consulte la sección de información general. No olvide revisar la diferencia entre una identidad administrada asignada por el sistema y una identidad administrada asignada por el usuario .
- Si aún no tiene una cuenta de Azure, regístrese para una cuenta gratuita antes de continuar.
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:
- Usar una plantilla personalizada de Azure Marketplace, que permite crear una plantilla desde cero, o bien basada en una plantilla común existente o en una plantilla de inicio rápido.
- Derivar a partir de un grupo de recursos existente, exportando una plantilla de la implementación original o del estado actual de la implementación.
- Usar un editor de JSON (por ejemplo, VS Code) local y, a continuación, cargarla e implementarla con PowerShell o la CLI.
- Usar el proyecto del grupo de recursos de Azure de Visual Studio tanto para crear como para implementar una plantilla.
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.
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.
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ónresources
y agregue la propiedad"identity"
en el mismo nivel que la propiedad"type": "Microsoft.Compute/virtualMachines"
. Use la sintaxis siguiente:"identity": { "type": "SystemAssigned" },
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.
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.
Cargue la plantilla en un editor y busque el
Microsoft.Compute/virtualMachines
recurso de interés dentro de la secciónresources
. Si dispone de una VM que solo tenga una identidad administrada asignada por el sistema, puede deshabilitarla cambiando el tipo de identidad aNone
.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 conserveUserAssigned
junto con los valores de diccionariouserAssignedIdentities
.Microsoft.Compute/virtualMachines versión 2018-06-01 de la API
Si
apiVersion
es2017-12-01
y la VM tiene identidades administradas asignadas tanto por el usuario como por el sistema, quiteSystemAssigned
del tipo de identidad y conserveUserAssigned
junto con la matrizidentityIds
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.
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
es2018-06-01
, las identidades administradas asignadas por el usuario se almacenan en el formato de diccionariouserAssignedIdentities
y el valor<USERASSIGNEDIDENTITYNAME>
debe almacenarse en una variable definida en la secciónvariables
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
es2017-12-01
, las identidades administradas asignadas por el usuario se almacenan en la matrizidentityIds
y el valor<USERASSIGNEDIDENTITYNAME>
debe almacenarse en una variable definida en la secciónvariables
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>'))]" ] } }
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.
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.
Cargue la plantilla en un editor y busque el
Microsoft.Compute/virtualMachines
recurso de interés dentro de la secciónresources
. Si dispone de una máquina virtual que solo tenga una identidad administrada asignada por el usuario, puede deshabilitarla cambiando el tipo de identidad aNone
.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
deidentity
.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
deidentity
.