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

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:

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

  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 il set di scalabilità di macchine virtuali.

  2. 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"
    }
    
  3. 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:

  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 il set di scalabilità di macchine virtuali.

  2. Caricare il modello in un editor e individuare Microsoft.Compute/virtualMachineScaleSetsla 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/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, rimuovere SystemAssigned dal tipo di identità e mantenere UserAssigned 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, 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 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

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

  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 il set di scalabilità di macchine virtuali.

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

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

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

Passaggi successivi