Configurare le identità gestite per le risorse di Azure in una macchina virtuale di Azure tramite i modelli
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, tramite il modello di distribuzione di Azure Resource Manager, come eseguire queste identità gestite per le operazioni delle risorse di Azure su una macchina virtuale di Azure:
Prerequisiti
- Se non si ha familiarità con l'uso del modello di distribuzione di Azure Resource Manager, consultare la sezione 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.
Modelli di Gestione risorse di Azure
Come per il portale di Azure e lo scripting, i modelli di Azure Resource Manager consentono 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 di un'identità gestita assegnata dal sistema o dall'utente 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à un'identità gestita assegnata dal sistema tramite un modello di Azure Resource Manager.
Abilitare l'identità gestita assegnata dal sistema durante la creazione di una macchina virtuale di Azure oppure in una macchina virtuale esistente
Per abilitare l'identità gestita assegnata dal sistema in una macchina virtuale, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.
Se si accede ad Azure localmente o tramite il portale di Azure, usare un account che sia associato alla sottoscrizione di Azure che contiene la VM.
Per abilitare l'identità gestita assegnata dal sistema, caricare il modello in un editor, individuare la risorsa interessata
Microsoft.Compute/virtualMachines
nella sezioneresources
e aggiungere la proprietà"identity"
allo stesso livello della proprietà"type": "Microsoft.Compute/virtualMachines"
. Usare la sintassi seguente:"identity": { "type": "SystemAssigned" },
Al termine, verranno aggiunte le sezioni seguenti alla sezione
resource
del modello, che avrà un aspetto simile a questo:"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "SystemAssigned", } } ]
Assegnare un ruolo identità gestita assegnata dal sistema della macchina virtuale
Dopo aver abilitato un'identità gestita assegnata dal sistema nella macchina virtuale, è possibile concedere un ruolo, ad esempio l'accesso con autorizzazioni di lettura al gruppo di risorse in cui è stato creato. Per informazioni dettagliate su questo passaggio, vedere l'articolo Assegnare ruoli di Azure usando i modelli di Azure Resource Manager.
Disabilitare un'identità gestita assegnata dal sistema in una macchina virtuale di Azure
Per rimuovere l'identità gestita assegnata dal sistema da una macchina virtuale, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.
Se si accede ad Azure localmente o tramite il portale di Azure, usare un account che sia associato alla sottoscrizione di Azure che contiene la VM.
Caricare il modello in un editor e individuare
Microsoft.Compute/virtualMachines
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/virtualMachines versione API 2018-06-01
Se la macchina virtuale ha identità gestite assegnate sia dal sistema sia dall'utente, rimuovere
SystemAssigned
dal tipo di identità e mantenereUserAssigned
insieme ai valori dizionariouserAssignedIdentities
.Microsoft.Compute/virtualMachines versione API 2018-06-01
Se
apiVersion
è2017-12-01
e la macchina virtuale 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 una macchina virtuale senza identità gestite assegnate dall'utente:
{
"apiVersion": "2018-06-01",
"type": "Microsoft.Compute/virtualMachines",
"name": "[parameters('vmName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "None"
}
}
Identità gestita assegnata dall'utente
In questa sezione si assegna un'identità gestita assegnata dall'utente a una macchina virtuale di Azure tramite 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.
Assegnare a una macchina virtuale di Azure un'identità gestita assegnata all'utente
Per assegnare un'identità assegnata dall'utente a una macchina virtuale, l'account deve avere l'assegnazione di ruolo Operatore identità gestita. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.
Nell'elemento
resources
aggiungere la voce seguente per assegnare un'identità gestita assegnata dall'utente alla macchina virtuale. Assicurarsi di sostituire<USERASSIGNEDIDENTITY>
con il nome dell'identità gestita assegnata dall'utente che è stata creata.Microsoft.Compute/virtualMachines versione API 2018-06-01
Se
apiVersion
è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.{ "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } }
Microsoft.Compute/virtualMachines versione API 2017-12-01
Se
apiVersion
è2017-12-01
, le identità gestite assegnate dall'utente vengono archiviate nella matriceidentityIds
e il valore<USERASSIGNEDIDENTITYNAME>
deve essere archiviato in una variabile definita nella sezionevariables
del modello.{ "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] } }
Al termine, verranno aggiunte le sezioni seguenti alla sezione
resource
del modello, che avrà un aspetto simile a questo:Microsoft.Compute/virtualMachines versione API 2018-06-01
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } } ]
Microsoft.Compute/virtualMachines versione API 2017-12-01
"resources": [ { //other resource provider properties... "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] } } ]
Rimuovere un'identità gestita assegnata dall'utente da una macchina virtuale di Azure
Per rimuovere un'identità assegnata dall'utente da una macchina virtuale, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.
Se si accede ad Azure localmente o tramite il portale di Azure, usare un account che sia associato alla sottoscrizione di Azure che contiene la VM.
Caricare il modello in un editor e individuare
Microsoft.Compute/virtualMachines
la risorsa interessataresources
all'interno della sezione. Se si dispone di una macchina virtuale 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:
{ "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[parameters('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "None" }, }
Microsoft.Compute/virtualMachines versione API 2018-06-01
Per rimuovere da una macchina virtuale una singola identità gestita assegnata dall'utente, rimuoverla dal dizionario
useraAssignedIdentities
.Se si dispone di un'identità gestita assegnata dal sistema, mantenerla nel valore
type
del valoreidentity
.Microsoft.Compute/virtualMachines versione API 2017-12-01
Per rimuovere una singola identità gestita assegnata dall'utente da una macchina virtuale, rimuoverla dalla matrice
identityIds
.Se si dispone di un'identità gestita assegnata dal sistema, mantenerla nel valore
type
del valoreidentity
.