Come usare le identità gestite per le risorse di Azure in una macchina virtuale di Azure per l'accesso

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.

Questo articolo riporta esempi di script di PowerShell e dell'interfaccia della riga di comando per l'accesso tramite l'entità servizio delle identità gestite per le risorse di Azure, oltre a indicazioni su argomenti importanti come la gestione degli errori.

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 si prevede di usare gli esempi di Azure PowerShell e dell'interfaccia della riga di comando di Azure presenti in questo articolo, assicurarsi di installare la versione più recente di Azure PowerShell o dell'interfaccia della riga di comando di Azure.

Importante

  • Tutti gli esempi di script in questo articolo presuppongono che il client da riga di comando sia in esecuzione su una macchina virtuale con le identità gestite per le risorse di Azure abilitate. Usare la funzionalità di connessione alla macchina virtuale nel portale di Azure per connettersi in remoto alla macchina virtuale. Per informazioni dettagliate sull'abilitazione delle identità gestite per risorse di Azure in una macchina virtuale, vedere Configurare le identità gestite per le risorse di Azure in una macchina virtuale tramite il portale di Azure o una delle varianti dell'articolo riguardanti PowerShell, l'interfaccia della riga di comando, un modello o un Azure SDK.
  • Per evitare errori durante l'accesso alle risorse, è necessario che all'identità gestita della macchina virtuale venga assegnato almeno l'accesso in "Lettura" nell'ambito appropriato (almeno la macchina virtuale) per consentire ad Azure Resource Manager di eseguire operazioni sulla macchina virtuale. Per i dettagli, vedere Assign managed identities for Azure resources access to a resource using the Azure portal (Assegnare l'accesso identità gestite per le risorse di Azure a una risorsa tramite il portale di Azure).

Panoramica

Le identità gestite per le risorse di Azure forniscono un oggetto entità servizio, creato quando si abilitano le identità gestite per le risorse di Azure nella macchina virtuale. All'entità servizio è possibile concedere l'accesso a risorse di Azure, usandola come identità tramite client di script/da riga di comando per l'accesso utente e alle risorse. In genere, per poter accedere a risorse protette con la propria identità, un client di script deve:

  • essere registrati e con il consenso con l'ID Microsoft Entra come applicazione client riservata/Web
  • accedere con la propria entità servizio usando le credenziali dell'app (probabilmente integrate nello script)

Con le identità gestite per le risorse di Azure, il client di script non deve più fare nulla in quanto può eseguire l'accesso con l'entità servizio delle identità gestite per le risorse di Azure.

Interfaccia della riga di comando di Azure

Lo script seguente illustra come:

  1. Accedere all'ID Microsoft Entra con l'identità gestita della macchina virtuale per l'entità servizio delle risorse di Azure

  2. Chiamare Azure Resource Manager e ottenere l'ID dell'entità servizio della macchina virtuale. L'interfaccia della riga di comando si occupa di gestire automaticamente l'acquisizione/uso dei token. Assicurarsi di sostituire il nome della macchina virtuale per <VM-NAME>.

    az login --identity
    
    $spID=$(az resource list -n <VM-NAME> --query [*].identity.principalId --out tsv)
    echo The managed identity for Azure resources service principal ID is $spID
    

Azure PowerShell

Lo script seguente illustra come:

  1. Accedere all'ID Microsoft Entra con l'identità gestita della macchina virtuale per l'entità servizio delle risorse di Azure

  2. Chiamare un cmdlet di Azure Resource Manager per ottenere informazioni sulla macchina virtuale. PowerShell si occupa di gestire automaticamente l'uso dei token.

    Add-AzAccount -identity
    
    # Call Azure Resource Manager to get the service principal ID for the VM's managed identity for Azure resources. 
    $vmInfoPs = Get-AzVM -ResourceGroupName <RESOURCE-GROUP> -Name <VM-NAME>
    $spID = $vmInfoPs.Identity.PrincipalId
    echo "The managed identity for Azure resources service principal ID is $spID"
    

ID di risorsa per servizi di Azure

Vedere Servizi di Azure che supportano l'autenticazione di Microsoft Entra per un elenco di risorse che supportano l'ID Microsoft Entra e sono stati testati con identità gestite per le risorse di Azure e i rispettivi ID risorsa.

Istruzioni per la gestione degli errori

Risposte come quelle riportate di seguito possono indicare che l'identità gestita per le risorse di Azure della macchina virtuale non è stata configurata correttamente:

  • PowerShell: Invoke-WebRequest: Impossibile connettersi al server remoto
  • Interfaccia della riga di comando: MSI: impossibile recuperare un token da http://localhost:50342/oauth2/token con un errore "HTTP Connessione ionPool(host='localhost', port=50342)

Se si riceve uno di questi errori, tornare alla macchina virtuale di Azure nella portale di Azure e passare alla pagina Identità e assicurarsi che l'opzione Assegnata dal sistema sia impostata su "Sì".

Passaggi successivi