Configurare identità gestite nelle macchine virtuali di Azure
Identità gestite per le risorse di Azure è 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 ai servizi di Azure 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.
Per informazioni sulla definizione e i dettagli di Criteri di Azure, vedere Usare Criteri di Azure per assegnare le identità gestite (anteprima).
Questo articolo illustra come abilitare e disabilitare le identità gestite assegnate dal sistema e dall'utente per una macchina virtuale (VM) di Azure usando il portale di Azure.
Prerequisiti
- Se non si ha familiarità con le identità gestite per le risorse di Azure, vedere la sezione sulla panoramica.
- Se non si ha un account Azure, registrarsi per ottenere un account gratuito prima di continuare.
Identità gestita assegnata dal sistema
Questa sezione illustra come abilitare e disabilitare l'identità gestita assegnata dal sistema per una macchina virtuale usando il portale di Azure.
Abilitare l'identità gestita assegnata dal sistema durante la creazione di una macchina virtuale
Per abilitare l'identità gestita assegnata dal sistema in una macchina virtuale durante la creazione, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.
- Nella sezione Identità della scheda Gestioneattivare l'opzione Identità del servizio gestita.
Fare riferimento alle guide introduttive seguenti per creare una macchina virtuale:
- Creare una macchina virtuale Windows con il portale di Azure
- Creare una macchina virtuale Linux con il portale di Azure
Abilitare l'identità gestita assegnata dal sistema in una macchina virtuale esistente
Suggerimento
I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.
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.
Accedere al portale di Azure usando un account associato alla sottoscrizione di Azure che contiene la VM.
Passare alla macchina virtuale desiderata e selezionare Identità.
In Assegnata dal sistema, Stato, selezionare Abilita e quindi fare clic su Salva:
Rimuovere un'identità gestita assegnata dal sistema da una macchina virtuale
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 dispone di una macchina virtuale per cui non è più necessaria un'identità gestita assegnata dal sistema:
Accedere al portale di Azure usando un account associato alla sottoscrizione di Azure che contiene la VM.
Passare alla macchina virtuale desiderata e selezionare Identità.
In Assegnata dal sistema, Stato, selezionare Disabilita e quindi fare clic su Salva:
Identità gestita assegnata dall'utente
Questa sezione illustra come aggiungere e rimuovere un'identità gestita assegnata dall'utente da una macchina virtuale usando il portale di Azure.
Assegnare un'identità assegnata dall'utente durante la creazione di una macchina virtuale
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.
Attualmente il portale di Azure non supporta l'assegnazione di un'identità gestita assegnata dall'utente durante la creazione di una macchina virtuale. In alternativa, consultare una delle guide introduttive seguenti per creare prima una macchina virtuale e quindi proseguire con la sezione successiva per informazioni dettagliate sull'associazione di un'identità gestita assegnata dall'utente alla macchina virtuale:
- Creare una macchina virtuale Windows con il portale di Azure
- Creare una macchina virtuale Linux con il portale di Azure
Assegnare un'identità gestita assegnata dall'utente a una VM 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.
Accedere al portale di Azure usando un account associato alla sottoscrizione di Azure che contiene la VM.
Passare alla macchina virtuale desiderata e fare clic su Identità, Assegnata dall'utente e quindi su +Aggiungi.
Fare clic sull'identità assegnata dall'utente da aggiungere alla macchina virtuale e quindi su Aggiungi.
Rimuovere un'identità gestita assegnata dall'utente da una macchina virtuale
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.
Accedere al portale di Azure usando un account associato alla sottoscrizione di Azure che contiene la VM.
Passare alla macchina virtuale desiderata e selezionare Identità, Assegnata dall'utente e il nome dell'identità gestita assegnata dall'utente da eliminare e quindi fare clic su Rimuovi (scegliere Sì nel riquadro di conferma).
Passaggi successivi
- Tramite il portale di Azure concedere all'identità gestita della macchina virtuale l'accesso a un'altra risorsa di Azure.
Questo articolo illustra come eseguire le seguenti operazioni relative alle identità gestite per le risorse di Azure in una macchina virtuale di Azure mediante l'interfaccia della riga di comando di Azure:
- Abilitare e disabilitare l'identità gestita assegnata dal sistema in una macchina virtuale di Azure
- Aggiungere e rimuovere un'identità gestita assegnata dall'utente in una macchina virtuale di Azure
Se non si ha un account Azure, registrarsi per ottenere un account gratuito prima di continuare.
Prerequisiti
- Se non si ha familiarità con le identità gestite per le risorse di Azure, vedere Informazioni sulle identità gestite per le risorse di Azure. Per informazioni sui tipi di identità gestite assegnate dal sistema e assegnate dall'utente, vedere Tipi di identità gestita.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Identità gestita assegnata dal sistema
Questa sezione illustra come abilitare e disabilitare l'identità gestita assegnata dal sistema in una macchina virtuale di Azure mediante l'interfaccia della riga di comando di Azure.
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.
Creare un gruppo di risorse per il contenuto e la distribuzione della macchina virtuale e le risorse correlate, usando az group create. Se si dispone già di un gruppo di risorse da usare, è possibile ignorare questo passaggio:
az group create --name myResourceGroup --location westus
Creare una macchina virtuale usando il comando az vm create. L'esempio seguente crea una macchina virtuale denominata myVM con un'identità gestita assegnata dal sistema, come richiesto dal parametro
--assign-identity
, con i valori di--role
e--scope
specificati. I parametri--admin-username
e--admin-password
specificano il nome utente e la password dell'account amministrativo per l'accesso alla macchina virtuale. Aggiornare questi valori in base alle esigenze specifiche dell'ambiente:az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
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, all'account deve essere assegnato il ruolo Collaboratore Macchina virtuale. Non sono richieste altre assegnazioni di ruolo della directory di Microsoft Entra.
Se si usa l'interfaccia della riga di comando di Azure in una console locale, accedere prima di tutto ad Azure tramite az login. Usare un account associato alla sottoscrizione di Azure che contiene la VM.
az login
Usare az vm identity assign con il comando
identity assign
per abilitare l'identità assegnata dal sistema in una macchina virtuale esistente:az vm identity assign -g myResourceGroup -n myVm
Disabilitare un'identità 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 dispone di una macchina virtuale che non necessita più dell'identità assegnata dal sistema ma ha ancora bisogno di identità assegnate dall'utente, usare il comando seguente:
az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned'
Se una macchina virtuale non necessita più dell'identità assegnata dal sistema ma non ha identità assegnate dall'utente, usare il comando seguente:
Nota
Il valore none
distingue tra maiuscole e minuscole. Deve essere costituito da caratteri in minuscolo.
az vm update -n myVM -g myResourceGroup --set identity.type="none"
Identità gestita assegnata dall'utente
Questa sezione illustra come aggiungere e rimuovere un'identità gestita assegnata dall'utente da una macchina virtuale di Azure tramite l'interfaccia della riga di comando di Azure. Se si crea l'identità gestita assegnata dall'utente in un gruppo di risorse diverso da quello della macchina virtuale, sarà necessario usare l'URL dell'identità gestita per assegnarlo alla macchina virtuale. Ad esempio:
--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"
Assegnare un'identità gestita assegnata dall'utente durante la creazione di una macchina virtuale di Azure
Per assegnare un'identità assegnata dall'utente a una macchina virtuale durante la creazione, 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.
Se si dispone già di un gruppo di risorse da usare, è possibile ignorare questo passaggio. Creare un gruppo di risorse per contenere e distribuire l'identità gestita assegnata dall'utente mediante az group create. Sostituire i valori dei parametri
<RESOURCE GROUP>
e<LOCATION>
con valori personalizzati. :az group create --name <RESOURCE GROUP> --location <LOCATION>
Creare un'identità gestita assegnata dall'utente tramite az identity create. Il parametro
-g
specifica il gruppo di risorse in cui viene creata l'identità gestita assegnata dall'utente, mentre il parametro-n
ne specifica il nome.Importante
Quando si creano identità gestite assegnate dall'utente, il nome deve iniziare con una lettera o un numero e può includere una combinazione di caratteri alfanumerici, trattini (-) e caratteri di sottolineatura (_). Per il corretto funzionamento dell'assegnazione a una macchina virtuale o a un set di scalabilità di macchine virtuali, il nome può essere composto da un massimo di 24 caratteri. Per altre informazioni, vedere Domande frequenti e problemi noti.
az identity create -g myResourceGroup -n myUserAssignedIdentity
La risposta contiene i dettagli relativi all'identità gestita assegnata dall'utente creata ed è simile all'esempio seguente. Il valore dell'ID risorsa assegnato all'identità gestita assegnata dall'utente viene usato nel passaggio seguente.
{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=00001111-aaaa-2222-bbbb-3333cccc4444", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Creare una macchina virtuale usando il comando az vm create. L'esempio seguente crea una macchina virtuale associata alla nuova identità assegnata dall'utente, come specificato dal parametro
--assign-identity
, con i valori di--role
e--scope
specificati. Sostituire i valori dei parametri<RESOURCE GROUP>
,<VM NAME>
,<USER NAME>
,<PASSWORD>
,<USER ASSIGNED IDENTITY NAME>
,<ROLE>
e<SUBSCRIPTION>
con i valori desiderati.az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION>
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à assegnata dall'utente mediante az identity create. Il parametro
-g
specifica il gruppo di risorse in cui viene creata l'identità assegnata dall'utente, mentre il parametro-n
ne specifica il nome. Sostituire i valori dei parametri<RESOURCE GROUP>
e<USER ASSIGNED IDENTITY NAME>
con valori personalizzati:Importante
La creazione di identità gestite assegnate dall'utente con caratteri speciali (ad esempio il carattere di sottolineatura) nel nome non è attualmente supportata. Usare solo caratteri alfanumerici. Consultarlo a intervalli regolari per eventuali aggiornamenti. Per altre informazioni, vedere Domande frequenti e problemi noti
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
La risposta contiene i dettagli relativi all'identità gestita assegnata dall'utente creata ed è simile all'esempio seguente.
{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=00001111-aaaa-2222-bbbb-3333cccc4444", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Assegnare l'identità assegnata dall'utente alla macchina virtuale mediante az vm identity assign. Sostituire i valori dei parametri
<RESOURCE GROUP>
e<VM NAME>
con valori personalizzati.<USER ASSIGNED IDENTITY NAME>
è la proprietàname
della risorsa dell'identità gestita assegnata dall'utente creata nel passaggio precedente. Se l'identità gestita assegnata dall'utente è stata creata in un gruppo di risorse diverso da quello della macchina virtuale, sarà necessario usare l'URL dell'identità gestita.az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
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 è l'unica identità gestita assegnata dall'utente associata alla macchina virtuale, UserAssigned
verrà rimosso dal valore del tipo di identità. Sostituire i valori dei parametri <RESOURCE GROUP>
e <VM NAME>
con valori personalizzati. <USER ASSIGNED IDENTITY>
sarà la proprietà name
dell'identità assegnata dall'utente, che si può trovare nella sezione relativa all'identità della macchina virtuale usando az vm identity show
:
az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
Se la macchina virtuale non ha un'identità assegnata dal sistema e si vuole rimuovere tutte le identità gestite assegnate dall'utente al suo interno, usare il comando seguente:
Nota
Il valore none
distingue tra maiuscole e minuscole. Deve essere costituito da caratteri in minuscolo.
az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
Se la macchina virtuale ha identità sia assegnate dal sistema che assegnate dall'utente, è possibile rimuovere tutte le identità assegnate dall'utente iniziando a usare solo identità assegnate dal sistema. Utilizza il seguente comando:
az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
Passaggi successivi
- Panoramica delle identità gestite per le risorse di Azure
- Per la guida introduttiva completa sulla creazione di VM di Azure, vedere:
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 con il pulsante Prova nell'angolo in alto a destra 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
Questa sezione illustra come abilitare e disabilitare un'identità gestita assegnata dal sistema tramite 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
Id
nell'output perché questa informazione sarà necessaria nel passaggio successivo.Importante
La creazione di identità gestite assegnate dall'utente supporta solo caratteri alfanumerici, il carattere di sottolineatura e il trattino (da 0 a 9, da "a" a "z", da "A" a "Z", _ e -). 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> # Get the list of existing identity IDs and then append to it $identityIds = $vm.Identity.UserAssignedIdentities.Keys $uid = "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>" $identityIds = $identityIds + $uid # Update the VM with added identity IDs Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID $uid
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 proprietà Identity
dell'oggetto macchina virtuale. 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 vogliono rimuovere tutte le identità gestite assegnate dall'utente al suo interno, 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:
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 Azure Resource Manager
Analogamente a quanto accade nel portale di Azure e nell'esecuzione di script, 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 avere abilitato un'identità gestita assegnata dal sistema nella macchina virtuale, è possibile concederle un ruolo, ad esempio l'accesso Lettore, al gruppo di risorse in cui è stata creata. Per informazioni dettagliate su questo passaggio, vedere l'articolo Assegnare ruoli di Azure usando 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 necessita dell'assegnazione di ruolo Operatore di identità gestite. 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
.
Passaggi successivi
Questo articolo illustra come eseguire queste operazioni di identità gestite per risorse di Azure in una macchina virtuale di Azure usando CURL per effettuare le chiamate all'endpoint REST di Azure Resource Manager:
- Abilitare e disabilitare l'identità gestita assegnata dal sistema in una macchina virtuale di Azure
- Aggiungere e rimuovere un'identità gestita assegnata dall'utente in una macchina virtuale di Azure
Se non si ha un account Azure, registrarsi per ottenere un account gratuito prima di continuare.
Prerequisiti
- Se non si ha familiarità con le identità gestite per le risorse di Azure, vedere Informazioni sulle identità gestite per le risorse di Azure. Per informazioni sui tipi di identità gestite assegnate dal sistema e assegnate dall'utente, vedere Tipi di identità gestita.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Identità gestita assegnata dal sistema
Questa sezione illustra come abilitare e disattivare le identità gestite assegnate dal sistema in una macchina virtuale di Azure usando CURL per effettuare le chiamate all'endpoint REST di Azure Resource Manager.
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.
Creare un gruppo di risorse per il contenuto e la distribuzione della macchina virtuale e le risorse correlate, usando az group create. Se si dispone già di un gruppo di risorse da usare, è possibile ignorare questo passaggio:
az group create --name myResourceGroup --location westus
Creare un'interfaccia di rete per la macchina virtuale:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recuperare un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
In Azure Cloud Shell creare una macchina virtuale usando CURL per chiamare l'endpoint REST di Azure Resource Manager. L'esempio seguente crea una macchina virtuale denominata myVM con un'identità gestita assegnata dal sistema, come indicato nel corpo della richiesta dal valore
"identity":{"type":"SystemAssigned"}
. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "location":"westus", "name":"myVM", "identity":{ "type":"SystemAssigned" }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Abilitare l'identità 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 un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
Usare il comando CURL seguente per chiamare l'endpoint REST di Azure Resource Manager per abilitare l'identità gestita assegnata dal sistema nella macchina virtuale, come indicato dal valore
{"identity":{"type":"SystemAssigned"}
nel corpo della richiesta per una macchina virtuale denominata myVM. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.Importante
Per accertarsi di non eliminare identità gestite assegnate dall'utente associate alla macchina virtuale, è necessario elencare le identità assegnate dall'utente tramite questo comando CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Se sono presenti identità gestite assegnate dall'utente associate alla macchina virtuale come indicato nel valoreidentity
della risposta, andare al passaggio 3 che spiega come conservare le identità gestite assegnate dall'utente quando si abilita l'identità gestita assegnata dal sistema nella macchina virtuale.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned" } }
Per abilitare l'identità gestita assegnata dal sistema in una macchina virtuale con identità gestite assegnate dall'utente, è necessario aggiungere
SystemAssigned
al valoretype
.Se ad esempio la macchina virtuale include le identità gestite assegnate dall'utente
ID1
eID2
e si intende aggiungervi un'identità gestita assegnata dal sistema, usare la seguente chiamata di CURL. Sostituire<ACCESS TOKEN>
e<SUBSCRIPTION ID>
con i valori appropriati all'ambiente.La versione dell'API
2018-06-01
archivia le identità gestite assegnate dall'utente nel valoreuserAssignedIdentities
in formato dizionario anziché nel valoreidentityIds
in formato matrice usato nella versione dell'API2017-12-01
.VERSIONE API 01/06/2018
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
VERSIONE API 01-12-2017
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
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.
Recuperare un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
Aggiornare la macchina virtuale usando CURL per chiamare l'endpoint REST di Azure Resource Manager e disabilitare l'identità gestita assegnata dal sistema. L'esempio seguente disabilita l'identità gestita assegnata dal sistema, come indicato dal valore
{"identity":{"type":"None"}}
nel corpo della richiesta da una macchina virtuale denominata myVM. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.Importante
Per accertarsi di non eliminare identità gestite assegnate dall'utente associate alla macchina virtuale, è necessario elencare le identità assegnate dall'utente tramite questo comando CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Se sono presenti identità gestite assegnate dall'utente associate alla macchina virtuale come indicato nel valoreidentity
della risposta, andare al passaggio 3 che spiega come conservare le identità gestite assegnate dall'utente quando si disabilita l'identità gestita assegnata dal sistema nella macchina virtuale.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"None" } }
Per rimuovere l'identità gestita assegnata dal sistema da una macchina virtuale con identità gestite assegnate dall'utente, rimuovere
SystemAssigned
dal valore{"identity":{"type:" "}}
mantenendo il valoreUserAssigned
e i valori di dizionariouserAssignedIdentities
, se si usa la versione dell'API 01/06/2018. Se invece si usa la versione dell'API 01/12/2017 o precedenti, mantenere la matriceidentityIds
.
Identità gestita assegnata dall'utente
Questa sezione illustra come aggiungere e rimuovere identità gestite assegnate dall'utente in una macchina virtuale di Azure usando CURL per effettuare le chiamate all'endpoint REST di Azure Resource Manager.
Assegnare un'identità gestita assegnata dall'utente durante la creazione di una macchina virtuale di Azure
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.
Recuperare un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
Creare un'interfaccia di rete per la macchina virtuale:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recuperare un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
Creare un'identità gestita assegnata dall'utente usando le istruzioni disponibili qui: Creare un'identità gestita assegnata dall'utente.
Creare una macchina virtuale usando CURL per chiamare l'endpoint REST di Azure Resource Manager. L'esempio seguente crea una macchina virtuale denominata myVM nel gruppo di risorse myResourceGroup, con un'identità gestita assegnata dall'utente
ID1
, come indicato nel corpo della richiesta dal valore"identity":{"type":"UserAssigned"}
. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.VERSIONE API 01/06/2018
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
VERSIONE API 01-12-2017
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
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.
Recuperare un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
Creare un'identità gestita assegnata dall'utente usando le istruzioni disponibili qui: Creare un'identità gestita assegnata dall'utente.
Per accertarsi di non eliminare identità gestite assegnate dall'utente o dal sistema già associate alla macchina virtuale, è necessario elencare i tipi di identità assegnati alla macchina virtuale tramite il seguente comando CURL. Se sono state gestite identità assegnate al set di scalabilità di macchine virtuali, vengono elencate di seguito nel valore
identity
.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Se sono presenti identità gestite assegnate dall'utente o dal sistema associate alla macchina virtuale come indicato nel valore
identity
nella risposta, andare al passaggio 5 che spiega come conservare l'identità gestita assegnata dal sistema quando si aggiunge un'identità gestita assegnata dall'utente nella macchina virtuale.Se non si dispone di identità gestite assegnate dall'utente associate alla macchina virtuale, usare il comando CURL seguente per chiamare all'endpoint REST di Azure Resource Manager e assegnare la prima identità gestita assegnata dall'utente alla macchina virtuale.
L'esempio seguente assegna un'identità gestita assegnata dall'utente,
ID1
, a una macchina virtuale denominata myVM nel gruppo di risorse myResourceGroup. Sostituire<ACCESS TOKEN>
con il valore ricevuto nel passaggio precedente relativo alla richiesta di un token bearer di accesso e il valore<SUBSCRIPTION ID>
appropriato per l'ambiente.VERSIONE API 01/06/2018
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
VERSIONE API 01-12-2017
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Se nella macchina virtuale è già presente un'identità gestita assegnata dal sistema o dall'utente:
VERSIONE API 01/06/2018
Aggiungere l'identità gestita assegnata dall'utente al valore di dizionario
userAssignedIdentities
.Se ad esempio la macchina virtuale dispone già di identità gestite assegnate dal sistema e dell'identità gestita assegnata dall'utente
ID1
e si intende aggiungervi l'identità gestita assegnata dall'utenteID2
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
VERSIONE API 01-12-2017
Quando si aggiunge la nuova identità gestita assegnata dall'utente, mantenere le identità gestite assegnate dall'utente desiderate nel valore di matrice
identityIds
.Se ad esempio la macchina virtuale dispone già di identità gestite assegnate dal sistema e dell'identità gestita assegnata dall'utente
ID1
e si intende aggiungervi l'identità gestita assegnata dall'utenteID2
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
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.
Recuperare un bearer token di accesso, che sarà usato nel passaggio successivo nell'intestazione dell'autorizzazione per creare una macchina virtuale con un'identità gestita assegnata dal sistema.
az account get-access-token
Per accertarsi di non eliminare identità gestite assegnate dall'utente che si intende mantenere associate alla macchina virtuale o di non rimuovere l'identità gestita assegnata dal sistema, è necessario elencare le identità gestite usando il seguente comando CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Se sono state gestite identità assegnate alla macchina virtuale, sono elencate nella risposta nel valore
identity
.Se ad esempio alla macchina virtuale sono associate le identità gestite assegnate dall'utente
ID1
eID2
e si vuole mantenere soloID1
e l'identità gestita assegnata dal sistema:VERSIONE API 01/06/2018
Aggiungere
null
all'identità gestita assegnata dall'utente che si intende rimuovere:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
VERSIONE API 01-12-2017
Mantenere solo le identità gestite assegnate dall'utente desiderate nella matrice
identityIds
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta Descrizione Content-Type Obbligatorio. Impostare su application/json
.Autorizzazione Obbligatorio. Impostare su un token di accesso Bearer
valido.Testo della richiesta
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Se la macchina virtuale include sia identità gestite assegnate dal sistema che identità gestite assegnate dall'utente, è possibile rimuovere tutte le identità gestite assegnate dall'utente passando a usare solo quelle assegnate dal sistema tramite il comando seguente:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta | Descrizione |
---|---|
Content-Type | Obbligatorio. Impostare su application/json . |
Autorizzazione | Obbligatorio. Impostare su un token di accesso Bearer valido. |
Testo della richiesta
{
"identity":{
"type":"SystemAssigned"
}
}
Se la macchina virtuale include solo identità gestite assegnate dall'utente e si intende rimuoverle tutte, usare il comando seguente:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Intestazioni delle richieste
Intestazione della richiesta | Descrizione |
---|---|
Content-Type | Obbligatorio. Impostare su application/json . |
Autorizzazione | Obbligatorio. Impostare su un token di accesso Bearer valido. |
Testo della richiesta
{
"identity":{
"type":"None"
}
}
Passaggi successivi
Per informazioni su come creare, elencare o eliminare le identità gestite assegnate dall'utente usando REST, vedere:
Questo articolo illustra come abilitare e rimuovere identità gestite per le risorse di Azure per una macchina virtuale di Azure mediante un SDK di Azure.
Prerequisiti
- Se non si ha familiarità con la funzionalità delle identità gestite per le risorse di Azure, vedere questa panoramica. Se non si ha un account Azure, registrarsi per ottenere un account gratuito prima di continuare.
SDK di Azure che supportano le identità gestite per le risorse di Azure
Azure supporta più piattaforme di programmazione tramite una serie di Azure SDK. Alcuni SDK sono stati aggiornati per supportare le identità gestite per le risorse di Azure e forniscono esempi che ne illustrano l'utilizzo. L'elenco viene aggiornato quando è disponibile supporto aggiuntivo:
Passaggi successivi
- Per imparare a usare anche il portale di Azure, PowerShell, l'interfaccia della riga di comando e i modelli di risorse, vedere gli articoli in Configurare l'identità per una VM di Azure.