Configurare le identità gestite per le risorse di Azure in una macchina virtuale di Azure tramite PowerShell

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 queste identità gestite per le operazioni delle risorse di Azure su una macchina virtuale di Azure usando PowerShell.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Prerequisiti

Identità gestita assegnata dal sistema

In questa sezione viene illustrato come abilitare e disabilitare l'identità gestita assegnata dal sistema usando Azure PowerShell.

Abilitare l'identità gestita assegnata dal sistema durante la creazione di una macchina virtuale di Azure

Per creare una macchina virtuale di Azure con l'identità gestita assegnata dal sistema abilitata, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.

  1. Vedere una delle guide di avvio rapido sulle VM di Azure riportate di seguito, completando solo le sezioni necessarie ("Accedere ad Azure", "Creare un gruppo di risorse", "Crea un gruppo di rete", "Creare la VM").

    Quando si raggiunge la sezione "Creare la VM", apportare una leggera modifica alla sintassi del cmdlet New-AzVMConfig. Assicurarsi di aggiungere un parametro -IdentityType SystemAssigned per effettuare il provisioning della macchina virtuale con l'identità assegnata dal sistema abilitata, ad esempio:

    $vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
    

Abilitare l'identità gestita assegnata dal sistema in una macchina virtuale di Azure esistente

Per abilitare l'identità gestita assegnata dal sistema in una macchina virtuale di cui originariamente è stato effettuato il provisioning senza tale identità, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.

  1. Recuperare le proprietà della macchina virtuale usando il cmdlet Get-AzVM. Per abilitare un'identità gestita assegnata dal sistema, usare l'opzione -IdentityType nel cmdlet Update-AzVM:

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
    

Aggiungere l'identità assegnata dal sistema della macchina virtuale a un gruppo

Dopo aver abilitato l'identità assegnata dal sistema in una macchina virtuale, è possibile aggiungerla a un gruppo. La procedura seguente consente di aggiungere un'identità assegnata dal sistema della macchina virtuale a un gruppo.

  1. Recuperare e prendere nota dell'ObjectID (come specificato nel campo Id dei valori restituiti) dell'entità servizio della macchina virtuale:

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. Recuperare e prendere nota dell'ObjectID (come specificato nel campo Id dei valori restituiti) del gruppo:

    Get-AzADGroup -searchstring "myGroup"
    
  3. Aggiungere l'entità servizio della macchina virtuale al gruppo:

    New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>" 
    

Disabilitare un'identità gestita assegnata dal sistema in una macchina virtuale di Azure

Per disabilitare 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 ha una macchina virtuale che non ha più bisogno dell'identità gestita assegnata dal sistema ma ha ancora bisogno di identità gestite assegnate dagli utenti, usare il cmdlet seguente:

  1. Recuperare le proprietà della macchina virtuale usando il cmdlet Get-AzVM e impostare il parametro -IdentityType su UserAssigned:

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Se si ha una macchina virtuale che non ha più bisogno dell'identità gestita assegnata dal sistema e non dispone di identità gestite assegnate dall'utente, usare i comandi seguenti:

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Identità gestita assegnata dall'utente

Questa sezione illustra come aggiungere e rimuovere un'identità gestita assegnata dall'utente da una macchina virtuale tramite Azure PowerShell.

Assegnare a una macchina virtuale un'identità gestita assegnata dall'utente durante la creazione

Per assegnare un'identità assegnata dall'utente a una macchina virtuale, all'account devono essere assegnati i ruoli Collaboratore Macchina virtuale e Operatore di identità gestite. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.

  1. Vedere una delle guide di avvio rapido sulle VM di Azure riportate di seguito, completando solo le sezioni necessarie ("Accedere ad Azure", "Creare un gruppo di risorse", "Crea un gruppo di rete", "Creare la VM").

    Quando si raggiunge la sezione "Creare la VM", apportare una leggera modifica alla sintassi del cmdlet New-AzVMConfig. Aggiungere i parametri -IdentityType UserAssigned e -IdentityID per eseguire il provisioning della macchina virtuale con un'identità assegnata dall'utente. Sostituire <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> e <USER ASSIGNED IDENTITY NAME> con valori personalizzati. Ad esempio:

    $vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Assegnare un'identità gestita assegnata dall'utente a una macchina virtuale di Azure esistente

Per assegnare un'identità assegnata dall'utente a una macchina virtuale, all'account devono essere assegnati i ruoli Collaboratore Macchina virtuale e Operatore di identità gestite. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.

  1. Creare un'identità gestita assegnata dall'utente tramite il cmdlet New-AzUserAssignedIdentity. Si noti che Id nell'output sono necessarie queste informazioni nel passaggio successivo.

    Importante

    La creazione di identità gestite assegnate dall'utente supporta solo caratteri alfanumerici, caratteri di sottolineatura e trattino (0-9 o a-z o A-Z, _ o -). Affinché l'assegnazione a VM/set di scalabilità di macchine virtuali funzioni correttamente, inoltre, il nome può contenere solo da 3 a 128 caratteri. Per altre informazioni, vedere Domande frequenti e problemi noti

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Recuperare le proprietà della macchina virtuale usando il cmdlet Get-AzVM. Quindi per assegnare un'identità gestita assegnata dall'utente alla macchina virtuale di Azure, usare le opzioni -IdentityType e -IdentityID nel cmdlet Update-AzVM. Il valore per il parametro-IdentityId è il valore Id annotato nel passaggio precedente. Sostituire <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> e <USER ASSIGNED IDENTITY NAME> con valori personalizzati.

    Avviso

    Per conservare le identità gestite precedentemente assegnate dall'utente alla macchina virtuale, eseguire una query sulla proprietà Identity dell'oggetto macchina virtuale (ad esempio, $vm.Identity). Se vengono restituite delle identità gestite assegnate dall'utente, includerle nel comando seguente insieme alla nuova identità gestita assegnata dall'utente che si vuole assegnare alla macchina virtuale.

    $vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME>
    Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
    

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.

Se la VM ha più identità gestite assegnate dall'utente è possibile rimuoverle tutte tranne l'ultima mediante i comandi seguenti. Sostituire i valori dei parametri <RESOURCE GROUP> e <VM NAME> con valori personalizzati. <USER ASSIGNED IDENTITY NAME> è la proprietà del nome dell'identità gestita assegnata dall'utente, che deve rimanere nella VM. Queste informazioni sono individuabili usando una query per cercare la Identity proprietà dell'oggetto VM. Ad esempio, $vm.Identity:

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>

Se la macchina virtuale non ha un'identità gestita assegnata dal sistema e si vuole rimuovere tutte le identità gestite assegnate dall'utente, usare il comando seguente:

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Se la macchina virtuale 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à gestite assegnate dal sistema.

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"

Passaggi successivi