Configuración de identidades administradas de recursos de Azure en un conjunto de escalado de máquinas virtuales mediante llamadas a la API REST
Las identidades administradas para recursos Azure proporcionan a los servicios de Azure una identidad de sistema 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, usará CURL para llamar al punto de conexión REST de Azure Resource Manager, con lo que aprenderá a realizar las siguientes operaciones de identidades administradas de recursos de Azure en un conjunto de escalado de máquinas virtuales:
- 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
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.
Para llevar a cabo las operaciones de administración de este artículo, su cuenta debe tener las siguientes asignaciones de roles de Azure:
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 asignada por el usuario en un conjunto de escalado de máquinas virtuales.
Nota:
No se requiere ninguna otra asignación de roles de directorio de Microsoft Entra.
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 una identidad administrada asignada por el sistema en un conjunto de escalado de máquinas virtuales mediante CURL para llamar al punto de conexión REST de Azure Resource Manager.
Habilitación de la identidad administrada asignada por el sistema durante la creación de un conjunto de escalado de máquinas virtuales
Para crear un conjunto de escalado de máquinas virtuales con la identidad administrada asignada por el sistema habilitada, debe crear un conjunto de escalado de máquinas virtuales y recuperar un token de acceso para usar CURL y llamar al punto de conexión de Resource Manager con el valor del tipo de identidad administrada asignada por el sistema.
Cree un grupo de recursos para contener e implementar el conjunto de escalado de máquinas virtuales 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 interfaz de red para el conjunto de escalado de máquinas virtuales:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Utilice Azure Cloud Shell para crear un conjunto de escalado de máquinas virtuales mediante CURL para llamar al punto de conexión REST de Azure Resource Manager. En el ejemplo siguiente se crea un conjunto de escalado de máquinas virtuales denominado myVMSS en myResourceGroup con una identidad administrada asignada por el sistema, como se identificó en el cuerpo de la solicitud por el valor
"identity":{"type":"SystemAssigned"}
. Reemplace<ACCESS TOKEN>
por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor<SUBSCRIPTION ID>
según sea apropiado para su entorno.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"SystemAssigned"},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "sku":{ "tier":"Standard", "capacity":3, "name":"Standard_D1_v2" }, "location":"eastus", "identity":{ "type":"SystemAssigned" }, "properties":{ "overprovision":true, "virtualMachineProfile":{ "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "createOption":"FromImage" } }, "osProfile":{ "computerNamePrefix":"myVMSS", "adminUsername":"azureuser", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaceConfigurations":[ { "name":"myVMSS", "properties":{ "primary":true, "enableIPForwarding":true, "ipConfigurations":[ { "name":"myVMSS", "properties":{ "subnet":{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" } } } ] } } ] } }, "upgradePolicy":{ "mode":"Manual" } } }
Habilitación de la identidad administrada asignada por el sistema en un conjunto de escalado de máquinas virtuales existente
Para habilitar la identidad administrada asignada por el sistema en un conjunto de escalado de máquinas virtuales existente, debe adquirir un token de acceso y, después, utilizar CURL para llamar al punto de conexión REST de Resource Manager y actualizar el tipo de identidad.
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Use el comando CURL siguiente para llamar al punto de conexión REST de Azure Resource Manager para habilitar la identidad administrada asignada por el sistema en el conjunto de escalado de máquinas virtuales, como se identifica en el cuerpo de la solicitud por el valor
{"identity":{"type":"SystemAssigned"}
para un conjunto de escalado de máquinas virtuales denominado myVMSS. Reemplace<ACCESS TOKEN>
por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor<SUBSCRIPTION ID>
según sea apropiado para su entorno.Importante
Para asegurarse de que no elimina ninguna de las identidades administradas asignadas por el usuario que están asignadas al conjunto de escalado de máquinas virtuales, necesita enumerar las identidades asignadas por el usuario mediante este comando CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Si tiene asignadas identidades administradas asignadas por el usuario al conjunto de escalado de máquinas virtuales como se identifica en el valoridentity
de la respuesta, vaya al paso 3 que muestra cómo conservar las identidades administradas asignadas por el usuario mientras se habilita la identidad administrada asignada por el sistema en el conjunto de escalado de máquinas virtuales.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned" } }
Para habilitar la identidad administrada asignada por el sistema en un conjunto de escalado de máquinas virtuales con identidades administradas existentes asignadas por el usuario, debe agregar
SystemAssigned
al valortype
.Por ejemplo, si el conjunto de escalado de máquinas virtuales tiene asignadas las identidades administradas asignadas por el usuario
ID1
yID2
, y desea agregar una identidad administrada asignada por el sistema a dicho conjunto de escalado de máquinas virtuales, utilice la siguiente llamada CURL. Reemplace<ACCESS TOKEN>
y<SUBSCRIPTION ID>
por los valores adecuados para su entorno.La versión de API
2018-06-01
almacena las identidades administradas asignadas por el usuario en el valoruserAssignedIdentities
en un formato de diccionario, en contraposición con el valoridentityIds
en formato de matriz que se usaba en la versión2017-12-01
de la API.VERSIÓN DE API 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned,UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
VERSIÓN DE API 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Deshabilitación de una identidad administrada asignada por el sistema desde un conjunto de escalado de máquinas virtuales
Para deshabilitar la identidad asignada por el sistema en un conjunto de escalado de máquinas virtuales existente, debe adquirir un token de acceso y, después, utilizar CURL para llamar al punto de conexión REST de Resource Manager y actualizar el tipo de identidad a None
.
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Actualice el conjunto de escalado mediante CURL para llamar al punto de conexión REST de Azure Resource Manager para deshabilitar la identidad administrada asignada por el sistema. En el ejemplo siguiente, se deshabilita una identidad administrada asignada por el sistema en el cuerpo de la solicitud por el valor
{"identity":{"type":"None"}}
desde un conjunto de escalado de máquinas virtuales denominado myVMSS. Reemplace<ACCESS TOKEN>
por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor<SUBSCRIPTION ID>
según sea apropiado para su entorno.Importante
Para asegurarse de que no elimina ninguna de las identidades administradas asignadas por el usuario que están asignadas al conjunto de escalado de máquinas virtuales, necesita enumerar las identidades asignadas por el usuario mediante este comando CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Si tiene asignadas identidades administradas asignadas por el usuario al conjunto de escalado de máquinas virtuales, vaya al paso 3 que muestra cómo conservar las identidades administradas asignadas por el usuario mientras se quita la identidad administrada asignada por el sistema del conjunto de escalado de máquinas virtuales.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"None" } }
Para quitar la identidad administrada asignada por el sistema de un conjunto de escalado de máquinas virtuales que tiene identidades administradas asignadas por el usuario, quite
SystemAssigned
del valor{"identity":{"type:" "}}
mientras mantiene el valorUserAssigned
y los valores de diccionariouserAssignedIdentities
, si está utilizando la versión de API 2018-06-01. Si está usando la versión de API 2017-12-01 o versiones anteriores, mantenga la matrizidentityIds
.
Identidad administrada asignada por el usuario
En esta sección, aprenderá a agregar y quitar una identidad administrada asignada por el usuario en un conjunto de escalado de máquinas virtuales mediante CURL para llamar al punto de conexión REST de Azure Resource Manager.
Asignación de una identidad administrada asignada por el usuario durante la creación de un conjunto de escalado de máquinas virtuales
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Cree una interfaz de red para el conjunto de escalado de máquinas virtuales:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Cree una identidad asignada por el usuario mediante las instrucciones que se encuentran aquí: Creación de una identidad administrada asignada por el usuario.
Cree un conjunto de escalado de máquinas virtuales con CURL para llamar al punto de conexión REST de Azure Resource Manager. En el ejemplo siguiente se crea un conjunto de escalado de máquinas virtuales denominado myVMSS en el grupo de recursos myResourceGroup con una identidad administrada asignada por el usuario
ID1
, como se identificó en el cuerpo de la solicitud por el valor"identity":{"type":"UserAssigned"}
. Reemplace<ACCESS TOKEN>
por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor<SUBSCRIPTION ID>
según sea apropiado para su entorno.VERSIÓN DE API 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"UserAssigned","userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "sku":{ "tier":"Standard", "capacity":3, "name":"Standard_D1_v2" }, "location":"eastus", "identity":{ "type":"UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } }, "properties":{ "overprovision":true, "virtualMachineProfile":{ "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "createOption":"FromImage" } }, "osProfile":{ "computerNamePrefix":"myVMSS", "adminUsername":"azureuser", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaceConfigurations":[ { "name":"myVMSS", "properties":{ "primary":true, "enableIPForwarding":true, "ipConfigurations":[ { "name":"myVMSS", "properties":{ "subnet":{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" } } } ] } } ] } }, "upgradePolicy":{ "mode":"Manual" } } }
VERSIÓN DE API 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "sku":{ "tier":"Standard", "capacity":3, "name":"Standard_D1_v2" }, "location":"eastus", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "overprovision":true, "virtualMachineProfile":{ "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "createOption":"FromImage" } }, "osProfile":{ "computerNamePrefix":"myVMSS", "adminUsername":"azureuser", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaceConfigurations":[ { "name":"myVMSS", "properties":{ "primary":true, "enableIPForwarding":true, "ipConfigurations":[ { "name":"myVMSS", "properties":{ "subnet":{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" } } } ] } } ] } }, "upgradePolicy":{ "mode":"Manual" } } }
Asignación de una identidad administrada asignada por el usuario a un conjunto de escalado de máquinas virtuales de Azure existente
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Cree una identidad administrada asignada por el usuario mediante las instrucciones que se encuentran aquí: Creación de una identidad administrada asignada por el usuario.
Para asegurarse de que no elimina las identidades administradas asignadas por el usuario o por el sistema que están asignadas al conjunto de escalado de máquinas virtuales, necesita enumerar los tipos de identidades asignados al conjunto de escalado de máquinas virtuales mediante el comando CURL siguiente. Si ha administrado identidades asignadas al conjunto de escalado de máquinas virtuales, estas se enumeran en el valor
identity
.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Si no tiene ninguna identidad administrada asignada por el usuario o por el sistema en el conjunto de escalado de máquinas virtuales, use el siguiente comando CURL para llamar al punto de conexión REST de Azure Resource Manager para asignar la primera identidad administrada asignada por el usuario al conjunto de escalado de máquinas virtuales. Si tiene asignadas identidades administradas asignadas por el usuario o por el sistema al conjunto de escalado de máquinas virtuales, vaya al paso 5 que muestra cómo agregar varias identidades administradas asignadas por el usuario a un conjunto de escalado de máquinas virtuales mientras se mantiene la identidad administrada asignada por el sistema.
En el ejemplo siguiente se asigna una identidad administrada asignada por el usuario,
ID1
, a un conjunto de escalado de máquinas virtuales denominado myVMSS en el grupo de recursos myResourceGroup. Reemplace<ACCESS TOKEN>
por el valor que ha recibido en el paso anterior cuando solicitó un token de acceso de portador y el valor<SUBSCRIPTION ID>
según sea apropiado para su entorno.VERSIÓN DE API 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-12-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"userAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
VERSIÓN DE API 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Si ya dispone de una identidad administrada asignada por el usuario o por el sistema y está asignada al conjunto de escalado de máquinas virtuales:
VERSIÓN DE API 2018-06-01
Agregue la identidad administrada asignada por el usuario al valor de diccionario
userAssignedIdentities
.Por ejemplo, si tiene una identidad administrada asignada por el sistema y una identidad administrada asignada por el usuario
ID1
actualmente asignadas al conjunto de escalado de máquinas virtuales y quiere agregarles la identidad administrada asignada por el usuarioID2
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
VERSIÓN DE API 2017-12-01
Conserve las identidades administradas asignadas por el usuario y que le gustaría mantener en el valor de matriz
identityIds
al tiempo que agrega la nueva identidad administrada asignada por el usuario.Por ejemplo, si tiene una identidad asignada por el sistema y una identidad administrada asignada por el usuario
ID1
actualmente asignadas al conjunto de escalado de máquinas virtuales y quiere agregarles la identidad administrada asignada por el usuarioID2
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Eliminación de una identidad administrada asignada por el usuario de un conjunto de escalado de máquinas virtuales
Recupere un token de acceso de portador, que utilizará en el siguiente paso en el encabezado de autorización para crear el conjunto de escalado de máquinas virtuales con una identidad administrada asignada por el sistema.
az account get-access-token
Para asegurarse de que no elimina ninguna identidad administrada asignada por el usuario o por el sistema que está asignada al conjunto de escalado de máquinas virtuales y de que no quita la identidad administrada asignada por el sistema, necesita enumerar las identidades administradas mediante el comando CURL siguiente:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Si ha administrado identidades asignadas a la máquina virtual, se enumeran en la respuesta del valor
identity
.Por ejemplo, si tiene identidades administradas asignadas por el usuario
ID1
yID2
, y que están asignadas al conjunto de escalado de máquinas virtuales, y sólo quiere mantenerID1
asignada y conservar la identidad administrada asignada por el sistema:VERSIÓN DE API 2018-06-01
Agregue
null
a la identidad administrada asignada por el usuario que quiere quitar:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
VERSIÓN DE API 2017-12-01
Conserve solo las identidades administradas asignadas por el usuario que le gustaría mantener en la matriz
identityIds
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud Descripción Content-Type Necesario. Establézcalo en application/json
.Autorización Necesario. Establézcalo en un token de acceso Bearer
válido.Cuerpo de la solicitud
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Si el conjunto de escalado de máquinas virtuales 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 asignadas por el sistema:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud | Descripción |
---|---|
Content-Type | Necesario. Establézcalo en application/json . |
Autorización | Necesario. Establézcalo en un token de acceso Bearer válido. |
Cuerpo de la solicitud
{
"identity":{
"type":"SystemAssigned"
}
}
Si el conjunto de escalado de máquinas virtuales solo tiene identidades administradas asignadas por el usuario y desea quitarlas todas, utilice el comando siguiente:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
Encabezados de solicitud
Encabezado de solicitud | Descripción |
---|---|
Content-Type | Necesario. Establézcalo en application/json . |
Autorización | Necesario. Establézcalo en un token de acceso Bearer válido. |
Cuerpo de la solicitud
{
"identity":{
"type":"None"
}
}
Pasos siguientes
Para obtener información sobre cómo crear, enumerar o eliminar identidades administradas asignadas por el usuario mediante REST, consulte: