Configurare le identità gestite per le risorse di Azure in un set di scalabilità di macchine virtuali di Azure tramite un modello
Le identità gestite per le risorse di Azure sono una funzionalità di Microsoft Entra ID. Tutti i servizi di Azure che supportano le identità gestite per le risorse di Azure sono soggetti alla sequenza temporale di tali entità. Prima di iniziare, assicurarsi di esaminare lo stato di disponibilità delle identità gestite per la risorsa e i problemi noti.
Le identità gestite per le risorse di Azure offrono servizi di Azure con un'identità 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.
Questo articolo illustra come eseguire le seguenti operazioni di identità gestite per le risorse di Azure in un set di scalabilità di macchine virtuali di Azure mediante il modello di distribuzione Azure Resource Manager:
- 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
Prerequisiti
Se non si ha familiarità con le identità gestite per le risorse di Azure, vedere la sezione sulla panoramica. Assicurarsi di conoscere la differenza tra identità assegnata dal sistema e identità gestita assegnata dall'utente.
Se non si ha un account Azure, registrarsi per ottenere un account gratuito prima di continuare.
Per eseguire le operazioni di gestione illustrate in questo articolo, l'account necessita delle assegnazioni di controllo degli accessi in base al ruolo di Azure seguenti:
Nota
Non sono necessarie assegnazioni di ruolo della directory Microsoft Entra aggiuntive.
- 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à gestita assegnata dall'utente da e verso un set di scalabilità di macchine virtuali.
Modelli di Gestione risorse di Azure
Analogamente al portale di Azure e all'esecuzione dello script, i modelli di gestione di Azure Resource Manager offrono la possibilità di distribuire risorse nuove o modificate definite da un gruppo di risorse di Azure. Diverse opzioni sono disponibili per la modifica e la distribuzione dei modelli, sia in locale che basati sul portale incluso quanto segue:
- Usare un modello personalizzato di Azure Marketplace, che consente di creare un modello nuovo o di usare come base un modello comune esistente o un modello di avvio rapido.
- Derivazione da un gruppo di risorse esistente, tramite l'esportazione di un modello da una distribuzione originale o dallo stato attuale della distribuzione.
- Usare un editor JSON, ad esempio il codice di Visual Studio, locale e di caricarlo e distribuirlo tramite PowerShell o l'interfaccia della riga di comando.
- Usare il progetto del gruppo di risorse di Azure di Visual Studio per creare e distribuire un modello.
Indipendentemente dall'opzione scelta, la sintassi dei modelli è la stessa durante la distribuzione iniziale e la ridistribuzione. L'abilitazione delle identità gestite per le risorse di Azure in una macchina virtuale nuova o esistente viene eseguita allo stesso modo. Per impostazione predefinita Azure Resource Manager esegue inoltre un aggiornamento incrementale per le distribuzioni.
Identità gestita assegnata dal sistema
In questa sezione si abiliterà e disabiliterà l'identità gestita assegnata dal sistema tramite un modello di Azure Resource Manager.
Abilitare l'identità gestita assegnata dal sistema durante la creazione di un set di scalabilità di macchine virtuali o di un set di scalabilità di macchine virtuali esistente
Se si accede ad Azure localmente o tramite il portale di Azure, usare un account che sia associato alla sottoscrizione di Azure che contiene il set di scalabilità di macchine virtuali.
Per abilitare l'identità gestita assegnata dal sistema, caricare il modello in un editor, individuare la risorsa
Microsoft.Compute/virtualMachinesScaleSets
interessata nella sezione risorse e aggiungere la proprietàidentity
allo stesso livello della proprietà"type": "Microsoft.Compute/virtualMachinesScaleSets"
. Usare la sintassi seguente:"identity": { "type": "SystemAssigned" }
Al termine, le sezioni seguenti devono essere aggiunte alla sezione della risorsa del modello e dovrebbero essere simili all'esempio illustrato di seguito:
"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... } } } ]
Disabilitare un'identità gestita assegnata dal sistema da un set di scalabilità di macchine virtuali di Azure
Se è disponibile un set di scalabilità di macchine virtuali per cui non è più necessaria un'identità gestita assegnata dal sistema:
Se si accede ad Azure localmente o tramite il portale di Azure, usare un account che sia associato alla sottoscrizione di Azure che contiene il set di scalabilità di macchine virtuali.
Caricare il modello in un editor e individuare
Microsoft.Compute/virtualMachineScaleSets
la risorsa interessataresources
all'interno della sezione. Se si dispone di una macchina virtuale con solo un'identità gestita assegnata dal sistema, è possibile disabilitarla modificando il tipo di identità e impostandolo suNone
.Microsoft.Compute/virtualMachineScaleSets versione API 2018-06-01
Se la versione API è
2018-06-01
e la macchina virtuale ha identità gestite assegnate sia dal sistema sia dall'utente, rimuovereSystemAssigned
dal tipo di identità e mantenereUserAssigned
insieme ai valori di dizionario userAssignedIdentities.Microsoft.Compute/virtualMachineScaleSets versione API 2018-06-01
Se la versione API è
2017-12-01
e il set di scalabilità di macchine virtuali ha identità gestite assegnate sia dal sistema sia dall'utente, rimuovereSystemAssigned
dal tipo di identità e mantenereUserAssigned
insieme alla matriceidentityIds
delle identità gestite assegnate dall'utente.L'esempio seguente mostra come rimuovere un'identità gestita assegnata dal sistema da un set di scalabilità di macchine virtuali senza identità gestite assegnate dall'utente:
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
Identità gestita assegnata dall'utente
In questa sezione verrà associata un'identità gestita assegnata dall'utente a un set di scalabilità di macchine virtuali mediante il modello di Azure Resource Manager.
Nota
Per creare un'identità gestita assegnata dall'utente usando un modello di Azure Resource Manager, vedere Creare un'identità gestita assegnata dall'utente.
Associare l'identità gestita assegnata dall'utente a un set di scalabilità di macchine virtuali
Nell'elemento
resources
aggiungere la voce seguente per associare un'identità gestita assegnata dall'utente al set di scalabilità di macchine virtuali. Assicurarsi di sostituire<USERASSIGNEDIDENTITY>
con il nome dell'identità gestita assegnata dall'utente che è stata creata.Microsoft.Compute/virtualMachineScaleSets versione API 2018-06-01
Se la versione API è
2018-06-01
, le identità gestite assegnate dall'utente vengono archiviate nel formato dizionariouserAssignedIdentities
e il valore<USERASSIGNEDIDENTITYNAME>
deve essere archiviato in una variabile definita nella sezionevariables
del modello.{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } }
Microsoft.Compute/virtualMachineScaleSets versione API 2017-12-01
Se
apiVersion
è2017-12-01
o una versione precedente, le identità gestite assegnate dall'utente vengono archiviate nella matriceidentityIds
e il valore<USERASSIGNEDIDENTITYNAME>
deve essere archiviato in una variabile definita nella sezione variabili del modello.{ "name": "[variables('vmssName')]", "apiVersion": "2017-03-30", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]" ] } }
Al termine il modello dovrebbe essere simile al seguente:
Microsoft.Compute/virtualMachineScaleSets versione 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 versione API 2017-12-01
"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... } } } ]
Rimuovere un'identità gestita assegnata dall'utente da un set di scalabilità di macchine virtuali di Azure
Se è disponibile un set di scalabilità di macchine virtuali per cui non è più necessaria un'identità gestita assegnata dall'utente:
Se si accede ad Azure localmente o tramite il portale di Azure, usare un account che sia associato alla sottoscrizione di Azure che contiene il set di scalabilità di macchine virtuali.
Caricare il modello in un editor e individuare
Microsoft.Compute/virtualMachineScaleSets
la risorsa interessataresources
all'interno della sezione. Se si dispone di un set di scalabilità di macchine virtuali con solo un'identità gestita assegnata dall'utente, è possibile disabilitarla modificando il tipo di identità e impostandolo suNone
.L'esempio seguente illustra come rimuovere tutte le identità gestite assegnate dall'utente da una macchina virtuale senza identità gestite assegnate dal sistema:
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
Microsoft.Compute/virtualMachineScaleSets versione API 2018-06-01
Per rimuovere una singola identità gestita assegnata dall'utente da un set di scalabilità di macchine virtuali, rimuoverla dal dizionario
userAssignedIdentities
.Se si dispone di un'identità assegnata dal sistema, mantenerla nel valore
type
del valoreidentity
.Microsoft.Compute/virtualMachineScaleSets versione API 2017-12-01
Per rimuovere una singola identità gestita assegnata dall'utente da un set di scalabilità di macchine virtuali, rimuoverla dalla matrice
identityIds
.Se si dispone di un'identità gestita assegnata dal sistema, mantenerla nel valore
type
del valoreidentity
.