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
- 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 gli script di esempio, sono disponibili due opzioni:
- Usare Azure Cloud Shell, che è possibile aprire usando il pulsante Prova nell'angolo superiore destro dei blocchi di codice.
- Eseguire gli script in locale installando l'ultima versione di Azure PowerShell, quindi accedere ad Azure usando
Connect-AzAccount
.
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.
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.
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.
Recuperare e prendere nota dell'
ObjectID
(come specificato nel campoId
dei valori restituiti) dell'entità servizio della macchina virtuale:Get-AzADServicePrincipal -displayname "myVM"
Recuperare e prendere nota dell'
ObjectID
(come specificato nel campoId
dei valori restituiti) del gruppo:Get-AzADGroup -searchstring "myGroup"
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:
Recuperare le proprietà della macchina virtuale usando il cmdlet
Get-AzVM
e impostare il parametro-IdentityType
suUserAssigned
:$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.
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.
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>
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 valoreId
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
Per la guida introduttiva completa sulla creazione di VM di Azure, vedere: