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

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:

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

  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 el conjunto de escalado de máquinas virtuales.

  2. 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 propiedad identity en el mismo nivel que la propiedad "type": "Microsoft.Compute/virtualMachinesScaleSets". Use la sintaxis siguiente:

    "identity": {
        "type": "SystemAssigned"
    }
    
  3. 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:

  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 el conjunto de escalado de máquinas virtuales.

  2. Cargue la plantilla en un editor y busque el Microsoft.Compute/virtualMachineScaleSetsrecurso 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/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, quite SystemAssigned del tipo de identidad y mantenga UserAssigned 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, quite SystemAssigned del tipo de identidad y mantenga UserAssigned junto con la matriz identityIds 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

  1. 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 diccionario userAssignedIdentities y el valor <USERASSIGNEDIDENTITYNAME> debe almacenarse en una variable definida en la sección variables 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 es 2017-12-01 o anterior, 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 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>'))]"
            ]
        }
    }
    
  2. 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:

  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 el conjunto de escalado de máquinas virtuales.

  2. Cargue la plantilla en un editor y busque el Microsoft.Compute/virtualMachineScaleSetsrecurso de interés dentro de la sección resources. 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 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:

    {
        "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 de identity.

    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 de identity.

Pasos siguientes