Configuración de identidades administradas de recursos de Azure en un conjunto de escalado de máquinas virtuales de Azure mediante una plantilla
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, aprenderá a realizar las siguientes operaciones de identidades administradas de recursos de Azure en un conjunto de escalado de máquinas virtuales de Azure mediante la plantilla de implementación de Azure Resource Manager:
- Habilitación y deshabilitación de la identidad administrada asignada por el sistema en un conjunto de escalado de máquinas virtuales de Azure
- Adición y eliminación de una identidad asignada por el usuario un conjunto de escalado de máquinas virtuales de Azure
Requisitos previos
Si no está familiarizado con las identidades administradas de los recursos de Azure, consulte la sección de introducción. 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.
Para realizar las operaciones de administración de este artículo, su cuenta debe tener las siguientes asignaciones de control de acceso basado en rol:
Nota:
No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.
- Colaborador de máquina virtual para crear un conjunto de escalado de máquinas virtuales y habilitar y quitar la identidad administrada asignada por el usuario o por el sistema desde un conjunto de escalado de máquinas virtuales.
- Rol Colaborador de identidad administrada para crear una identidad administrada asignada por el usuario.
- Rol Operador de identidad administrada para asignar y quitar una identidad administrada asignada por el usuario en un conjunto de escalado de máquinas virtuales.
Plantillas del Administrador de recursos de Azure
Al igual que con Azure Portal y los scripts, las plantillas de Azure Resource Manager proporcionan la capacidad de 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 identidades administradas de recursos de Azure en una máquina virtual 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 la identidad administrada asignada por el sistema con una plantilla de Azure Resource Manager.
Habilitación de la identidad administrada asignada por el sistema durante el uso o la creación de un conjunto de escalado de máquinas virtuales
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 el conjunto de escalado de máquinas virtuales.
Para habilitar la identidad administrada asignada por el sistema, cargue la plantilla en un editor, busque el recurso de interés
Microsoft.Compute/virtualMachinesScaleSets
en la sección de recursos y agregue la propiedadidentity
en el mismo nivel que la propiedad"type": "Microsoft.Compute/virtualMachinesScaleSets"
. Use la sintaxis siguiente:"identity": { "type": "SystemAssigned" }
Cuando haya terminado, deben agregarse las siguientes secciones a la sección de recursos de la plantilla para que se parezca al ejemplo siguiente:
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "SystemAssigned", }, "properties": { //other resource provider properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Deshabilitación de una identidad administrada asignada por el sistema de un conjunto de escalado de máquinas virtuales de Azure
Si tiene un conjunto de escalado de máquinas virtuales que ya no necesita una identidad administrada asignada por el sistema, haga lo siguiente:
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 el conjunto de escalado de máquinas virtuales.
Cargue la plantilla en un editor y busque el
Microsoft.Compute/virtualMachineScaleSets
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/virtualMachineScaleSets versión de API 2018-06-01
Si apiVersion es
2018-06-01
y la VM tiene identidades administradas asignadas tanto por el usuario como por el sistema, quiteSystemAssigned
del tipo de identidad y mantengaUserAssigned
junto con los valores del diccionario userAssignedIdentities.Microsoft.Compute/virtualMachineScaleSets versión de API 2018-06-01
Si apiVersion es
2017-12-01
y el conjunto de escalado de máquinas virtuales tiene identidades administradas asignadas tanto por el usuario como por el sistema, quiteSystemAssigned
del tipo de identidad y mantengaUserAssigned
junto con la matrizidentityIds
de las identidades administradas asignadas por el usuario.En el ejemplo siguiente se muestra cómo quitar una identidad administrada asignada por el sistema de un conjunto de escalado de máquinas virtuales sin identidades administradas asignadas por el usuario:
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
Identidad administrada asignada por el usuario
En esta sección, asignará una identidad administrada asignada por el usuario a un conjunto de escalado de máquinas virtuales 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 un conjunto de escalado de máquinas virtuales
En el elemento
resources
, agregue la siguiente entrada para asignar una identidad administrada asignada por el usuario al conjunto de escalado de máquinas virtuales. No olvide reemplazar<USERASSIGNEDIDENTITY>
con el nombre de la identidad administrada asignada por el usuario que ha creado.Microsoft.Compute/virtualMachineScaleSets versión de API 2018-06-01
Si apiVersion es
2018-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.{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } }
Microsoft.Compute/virtualMachineScaleSets versión de API 2017-12-01
Si
apiVersion
es2017-12-01
o anterior, 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ón de variables de la plantilla.{ "name": "[variables('vmssName')]", "apiVersion": "2017-03-30", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]" ] } }
Cuando haya terminado, la plantilla debería tener un aspecto similar al siguiente:
Microsoft.Compute/virtualMachineScaleSets versión de API 2018-06-01
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } }, "properties": { //other virtual machine properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Microsoft.Compute/virtualMachines versión 2017-12-01 de la API
"resources": [ { //other resource provider properties... "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "UserAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] }, "properties": { //other virtual machine properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Eliminación de una identidad administrada asignada por el usuario de un conjunto de escalado de máquinas virtuales de Azure
Si tiene un conjunto de escalado de máquinas virtuales que ya no necesita una identidad administrada asignada por el usuario, haga lo siguiente:
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 el conjunto de escalado de máquinas virtuales.
Cargue la plantilla en un editor y busque el
Microsoft.Compute/virtualMachineScaleSets
recurso de interés dentro de la secciónresources
. Si dispone de un conjunto de escalado de máquinas virtuales 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:
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
Microsoft.Compute/virtualMachineScaleSets versión de API 2018-06-01
Para quitar una identidad administrada asignada por un usuario único desde un conjunto de escalado de máquinas virtuales, quítela del diccionario
userAssignedIdentities
.Si tiene una identidad asignada por el sistema, consérvela en el valor
type
deidentity
.Microsoft.Compute/virtualMachineScaleSets versión de API 2017-12-01
Para quitar una identidad administrada asignada por un usuario único desde un conjunto de escalado de máquinas virtuales, quítela de la matriz
identityIds
.Si tiene una identidad administrada asignada por el sistema, consérvela en el valor
type
deidentity
.