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

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:

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.

  1. 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.

  2. Per abilitare l'identità gestita assegnata dal sistema, caricare il modello in un editor, individuare la risorsa interessata Microsoft.Compute/virtualMachines nella sezione resources e aggiungere la proprietà "identity" allo stesso livello della proprietà "type": "Microsoft.Compute/virtualMachines". Usare la sintassi seguente:

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

  1. 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.

  2. Caricare il modello in un editor e individuare Microsoft.Compute/virtualMachinesla 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 su None.

    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 mantenere UserAssigned insieme ai valori dizionario userAssignedIdentities.

    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, rimuovere SystemAssigned dal tipo di identità e mantenere UserAssigned insieme alla matrice identityIds 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.

  1. 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 dizionario userAssignedIdentities e il valore <USERASSIGNEDIDENTITYNAME> deve essere archiviato in una variabile definita nella sezione variables 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 matrice identityIds e il valore <USERASSIGNEDIDENTITYNAME> deve essere archiviato in una variabile definita nella sezione variables 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>'))]"
            ]
        }
    }
    
  2. 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.

  1. 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.

  2. Caricare il modello in un editor e individuare Microsoft.Compute/virtualMachinesla 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 su None.

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

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

Passaggi successivi