Configurare le identità gestite per le risorse di Azure in una macchina virtuale di Azure tramite l'interfaccia della riga di comando di Azure

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 eseguire l'autenticazione a qualsiasi servizio che supporti l'autenticazione di Microsoft Entra, senza avere credenziali nel codice.

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

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 necessarie altre assegnazioni di ruolo della directory Microsoft Entra.

  1. 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
    
  2. 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 --assign-identity parametro , con l'oggetto specificato --role e --scope. 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 necessarie altre assegnazioni di ruolo della directory Microsoft Entra.

  1. 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
    
  2. 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 necessarie altre assegnazioni di ruolo della directory 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 necessarie altre assegnazioni di ruolo della directory Microsoft Entra.

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

    Per la creazione di identità gestite assegnate dall'utente, sono supportati solo caratteri alfanumerici (0-9, a-z, A-Z) e il trattino (-). 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": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. Creare una macchina virtuale usando il comando az vm create. Nell'esempio seguente viene creata una macchina virtuale associata alla nuova identità assegnata dall'utente, come specificato dal --assign-identity parametro , con l'oggetto specificato --role e --scope. Assicurarsi di sostituire i valori dei <RESOURCE GROUP>parametri , <VM NAME><USER NAME>, <USER ASSIGNED IDENTITY NAME><PASSWORD>, , <ROLE>, e <SUBSCRIPTION> con i propri valori.

    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 necessarie altre assegnazioni di ruolo della directory Microsoft Entra.

  1. 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": "73444643-8088-4d70-9532-c3a0fdc190fz",
      "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=73444643-8088-4d70-9532-c3a0fdc190fz",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. 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