Configurare identità gestite per le risorse di Azure in un set di scalabilità di macchine virtuali tramite le chiamate API REST
Le identità gestite per le risorse di Azure forniscono ai servizi di Azure un'identità del sistema gestita automaticamente in Microsoft Entra ID. È possibile usare questa identità per l'autenticazione in qualsiasi servizio che supporta l'autenticazione di Microsoft Entra senza dover immettere le credenziali nel codice.
In questo articolo, usando CURL per effettuare chiamate all'endpoint REST di Azure Resource Manager, si apprenderà come eseguire le seguenti identità gestite per le operazioni delle risorse di Azure in un set di scalabilità di macchine virtuali:
- Abilitare e disabilitare l'identità gestita assegnata dal sistema in un set di scalabilità di macchine virtuali di Azure
- Aggiungere e rimuovere un'identità gestita assegnata dall'utente in un set di scalabilità di macchine virtuali di Azure
Se non si ha un account Azure, registrarsi per ottenere un account gratuito prima di continuare.
Prerequisiti
Se non si ha familiarità con le identità gestite per le risorse di Azure, vedere Informazioni sulle identità gestite per le risorse di Azure. Per informazioni sui tipi di identità gestite assegnate dal sistema e assegnate dall'utente, vedere Tipi di identità gestita.
Per eseguire le operazioni di gestione illustrate in questo articolo, l'account deve avere le assegnazioni di ruolo di Azure seguenti:
Collaboratore macchina virtuale per creare un set di scalabilità di macchine virtuali e abilitare e rimuovere da un set di scalabilità di macchine virtuali l'identità gestita assegnata dal sistema e/o dall'utente.
Collaboratore di identità gestite per creare un'identità gestita assegnata dall'utente.
Operatore identità gestita per assegnare e rimuovere un'identità assegnata dall'utente da e verso un set di scalabilità di macchine virtuali.
Nota
Non sono necessarie assegnazioni di ruolo della directory Microsoft Entra aggiuntive.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido per Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere con l'interfaccia della riga di comando di Azure.
Quando richiesto, installare l'estensione dell'interfaccia della riga di comando di Azure al primo uso. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Identità gestita assegnata dal sistema
Questa sezione illustra come attivare e disattivare le identità gestite assegnate dal sistema in set di scalabilità di macchine virtuali, usando CURL per eseguire chiamate all'endpoint REST di Azure Resource Manager.
Abilitare l'identità gestita assegnata dal sistema durante la creazione di un set di scalabilità di macchine virtuali
Per creare un set di scalabilità di macchine virtuali con identità gestita assegnata dal sistema abilitata, è necessario creare un set di scalabilità di macchine virtuali e recuperare un token di accesso per usare CURL per chiamare l'endpoint di Gestione risorse con il tipo di valore dell'identità gestita assegnata dal sistema.
Creare un gruppo di risorse per il contenuto e la distribuzione del set di scalabilità di macchine virtuali e delle risorse correlate, usando az group create. Se si dispone già di un gruppo di risorse da usare, è possibile ignorare questo passaggio:
az group create --name myResourceGroup --location westus
Creare un'interfaccia di rete per il set di scalabilità di macchine virtuali:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
In Azure Cloud Shell creare un set di scalabilità di macchine virtuali usando CURL per chiamare l'endpoint REST di Azure Resource Manager. L'esempio seguente crea un set di scalabilità di macchine virtuali denominato myVMSS in myResourceGroup, con un'identità gestita assegnata dal sistema, come indicato nel corpo della richiesta dal valore
"identity":{"type":"SystemAssigned"}
. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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" } } }
Abilitare l'identità gestita assegnata dal sistema in un set di scalabilità di macchine virtuali esistente
Per abilitare l'identità gestita assegnata dal sistema in un set di scalabilità di macchine virtuali esistente, è necessario acquisire un token di accesso e quindi usare CURL per chiamare l'endpoint REST di Gestione risorse per aggiornare il tipo di identità.
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
Usare il comando CURL seguente per chiamare l'endpoint REST di Azure Resource Manager per abilitare l'identità gestita assegnata dal sistema sul set di scalabilità di macchine virtuali, come indicato dal valore
{"identity":{"type":"SystemAssigned"}
nel corpo della richiesta per un set di scalabilità di macchine virtuali denominato myVMSS. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.Importante
Per verificare di non eliminare alcuna identità gestita assegnata dall'utente associata al set di scalabilità di macchine virtuali, è necessario elencare le identità gestite assegnate dall'utente tramite questo 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>"
. Se vi sono eventuali identità gestite assegnate dall'utente associate al set di scalabilità di macchine virtuali come indicato nel valoreidentity
della risposta, passare al passaggio 3 dove viene illustrato come mantenere le identità gestite assegnate dall'utente durante l'abilitazione dell'identità gestita assegnata dal sistema sul set di scalabilità di macchine virtuali.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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned" } }
Per abilitare l'identità gestita assegnata dal sistema su un set di scalabilità di macchine virtuali con le identità gestite assegnate dall'utente presenti, è necessario aggiungere
SystemAssigned
al valoretype
.Se, ad esempio, il set di scalabilità di macchine virtuali presenta identità gestite assegnate dall'utente
ID1
eID2
assegnate al set stesso e si intende aggiungere un'identità gestita assegnata dal sistema al set di scalabilità di macchine virtuali, usare la chiamata di CURL seguente. Sostituire<ACCESS TOKEN>
e<SUBSCRIPTION ID>
con i valori appropriati all'ambiente.La versione dell'API
2018-06-01
archivia le identità gestite assegnate dall'utente nel valoreuserAssignedIdentities
in formato dizionario anziché nel valoreidentityIds
in formato matrice usato nella versione dell'API2017-12-01
.VERSIONE API 01/06/2018
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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":{ } } } }
VERSIONE API 01-12-2017
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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" ] } }
Disabilitare un'identità gestita assegnata dal sistema da un set di scalabilità di macchine virtuali
Per disabilitare l'identità assegnata dal sistema in un set di scalabilità di macchine virtuali esistente, è necessario acquisire un token di accesso e quindi usare CURL per chiamare l'endpoint REST di Gestione risorse per aggiornare il tipo di identità a None
.
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
Aggiornare il set di scalabilità di macchine virtuali usando CURL per chiamare l'endpoint REST di Azure Resource Manager e disabilitare l'identità gestita assegnata dal sistema. L'esempio seguente disabilita un'identità gestita assegnata dal sistema, come indicato nel corpo della richiesta dal valore
{"identity":{"type":"None"}}
da un set di scalabilità di macchine virtuali denominato myVMSS. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.Importante
Per verificare di non eliminare alcuna identità gestita assegnata dall'utente associata al set di scalabilità di macchine virtuali, è necessario elencare le identità gestite assegnate dall'utente tramite questo 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>"
. Se sono presenti eventuali identità gestite assegnate dall'utente associate al set di scalabilità di macchine virtuali, passare al passaggio 3 dove viene illustrato come mantenere le identità gestite assegnate dall'utente durante la rimozione dell'identità gestita assegnata dal sistema sul set di scalabilità di macchine virtuali.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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"None" } }
Per rimuovere l'identità gestita assegnata dal sistema da un set di scalabilità di macchine virtuali con identità gestite assegnate dall'utente, rimuovere
SystemAssigned
dal valore{"identity":{"type:" "}}
mantenendo il valoreUserAssigned
e i valori di dizionariouserAssignedIdentities
, se si usa la versione dell'API 01/06/2018. Se invece si usa la versione dell'API 01/12/2017 o precedenti, mantenere la matriceidentityIds
.
Identità gestita assegnata dall'utente
Questa sezione illustra come aggiungere e rimuovere le identità gestite assegnate dall'utente in un set di scalabilità di macchine virtuali, usando CURL per effettuare chiamate all'endpoint REST di Azure Resource Manager.
Assegnare un'identità gestita assegnata dall'utente durante la creazione di un set di scalabilità di macchine virtuali
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
Creare un'interfaccia di rete per il set di scalabilità di macchine virtuali:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
Creare un'identità gestita assegnata dall'utente usando le istruzioni disponibili qui: Creare un'identità gestita assegnata dall'utente.
Creare un set di scalabilità di macchine virtuali usando CURL per chiamare l'endpoint REST di Azure Resource Manager. L'esempio seguente crea un set di scalabilità di macchine virtuali denominato myVMSS nel gruppo di risorse myResourceGroup, con un'identità gestita assegnata dall'utente €
ID1
, come indicato nel corpo della richiesta dal valore"identity":{"type":"UserAssigned"}
. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.VERSIONE API 01/06/2018
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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" } } }
VERSIONE API 01-12-2017
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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" } } }
Assegnare un'identità gestita assegnata dall'utente a un set di scalabilità di macchine virtuali di Azure esistente
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
Creare un'identità gestita assegnata dall'utente usando le istruzioni disponibili qui: Creare un'identità gestita assegnata dall'utente.
Per verificare di non eliminare le identità esistenti assegnate dall'utente o dal sistema associate al set di scalabilità di macchine virtuali, è necessario elencare i tipi di identità assegnati al set di scalabilità di macchine virtuali tramite il comando CURL seguente. Se sono state gestite identità assegnate al set di scalabilità di macchine virtuali, queste vengono elencate di seguito nel valore
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Se non si dispone di identità gestite assegnate dall'utente o dal sistema associate al set di scalabilità di macchine virtuali, usare il comando CURL seguente per chiamare l'endpoint REST di Azure Resource Manager e assegnare la prima identità gestita assegnata dall'utente al set di scalabilità di macchine virtuali. Se sono presenti eventuali identità gestite assegnate dall'utente o dal sistema associate al set di scalabilità di macchine virtuali, passare al passaggio 5 dove viene illustrato come aggiungere le identità gestite assegnate dall'utente a un set di scalabilità di macchine virtuali, conservando allo stesso tempo l'identità gestita assegnata dal sistema.
L'esempio seguente assegna un'identità gestita assegnate dall'utente
ID1
a un set di scalabilità di macchine virtuali denominato myVMSS nel gruppo di risorse myResourceGroup. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.VERSIONE API 01/06/2018
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"userAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
VERSIONE API 01-12-2017
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Se si dispone di un'identità gestita assegnata dall'utente o dal sistema associata al set di scalabilità di macchine virtuali:
VERSIONE API 01/06/2018
Aggiungere l'identità gestita assegnata dall'utente al valore di dizionario
userAssignedIdentities
.Se ad esempio il set di scalabilità di macchine virtuali dispone già di identità gestite assegnate dal sistema e assegnate dall'utente
ID1
e si intende aggiungervi l'identità gestita assegnata dall'utenteID2
: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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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":{ } } } }
VERSIONE API 01-12-2017
Quando si aggiunge la nuova identità gestita assegnata dall'utente, mantenere le identità gestite assegnate dall'utente desiderate nel valore di matrice
identityIds
.Se ad esempio il set di scalabilità di macchine virtuali dispone già di identità assegnate dal sistema e assegnate dall'utente
ID1
e si intende aggiungervi l'identità gestita assegnata dall'utenteID2
: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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "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" ] } }
Rimuovere un'identità gestita assegnata dall'utente da un set di scalabilità di macchine virtuali
Recuperare un bearer token di accesso, necessario nel passaggio successivo nell'intestazione dell'autorizzazione per creare un set di scalabilità di macchine virtuali con un'identità gestita assegnata dal sistema.
az account get-access-token
Per verificare di non eliminare alcuna identità gestita assegnata dall'utente che si intende mantenere associata al set di scalabilità di macchine virtuali o di non rimuovere le identità gestite assegnate dal sistema, è necessario elencare i tipi di identità assegnati alla macchina virtuale tramite il comando CURL seguente:
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Se sono state gestite identità assegnate alla macchina virtuale, sono elencate nella risposta nel valore
identity
.Se ad esempio si dispone di identità gestite assegnate dall'utente
ID1
eID2
assegnate al set di scalabilità di macchine virtuali e si vuole solamente mantenere assegnatoID1
e mantenere l'identità gestita assegnata dal sistema:VERSIONE API 01/06/2018
Aggiungere
null
all'identità gestita assegnata dall'utente che si intende rimuovere: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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
VERSIONE API 01-12-2017
Mantenere solo le identità gestite assegnate dall'utente desiderate nella matrice
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
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Se il set di scalabilità di macchine virtuali ha identità gestite sia assegnate dal sistema che assegnate dall'utente, è possibile rimuovere tutte le identità gestite assegnate dall'utente iniziando a usare solo identità assegnate dal sistema, usando il comando seguente:
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
Intestazioni delle richieste
Intestazione della richiesta | Descrizione |
---|---|
Content-Type | Obbligatorio. Impostare su application/json . |
Autorizzazione | Obbligatorio. Impostare su un token di accesso Bearer valido. |
Testo della richiesta
{
"identity":{
"type":"SystemAssigned"
}
}
Se il set di scalabilità di macchine virtuali presenta solo identità gestite assegnate dall'utente e si intende rimuoverle tutte, usare il comando seguente:
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
Intestazioni delle richieste
Intestazione della richiesta | Descrizione |
---|---|
Content-Type | Obbligatorio. Impostare su application/json . |
Autorizzazione | Obbligatorio. Impostare su un token di accesso Bearer valido. |
Testo della richiesta
{
"identity":{
"type":"None"
}
}
Passaggi successivi
Per informazioni su come creare, elencare o eliminare le identità gestite assegnate dall'utente usando REST, vedere: