Come usare le identità gestite per le risorse di Azure in una macchina virtuale di Azure per l'accesso
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.
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 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.
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 che viene 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 registrato e autorizzato da Microsoft Entra ID come applicazione client Web/riservata
- 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:
Accedere a Microsoft Entra ID con l'entità servizio dell'identità gestita per le risorse di Azure della macchina virtuale
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:
Accedere a Microsoft Entra ID con l'entità servizio dell'identità gestita per le risorse di Azure della macchina virtuale
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
Per un elenco di risorse che supportano Microsoft Entra ID e che sono state testate con le identità gestite per le risorse di Azure e i relativi ID risorsa, vedere Servizi di Azure che supportano l'autenticazione di Microsoft Entra.
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: Identità del servizio gestita: non è stato possibile recuperare un token da
http://localhost:50342/oauth2/token
con l'errore 'HTTPConnectionPool(host='localhost', port=50342)
Se viene restituito uno di questi errori, tornare alla macchina virtuale di Azure nel portale di Azure, passare alla pagina Identità e assicurarsi che l'opzione Assegnata dal sistema sia impostata su "Sì".
Passaggi successivi
- Per abilitare le identità gestite per le risorse di Azure in una macchina virtuale di Azure, vedere Configure managed identities for Azure resources on an Azure VM using PowerShell (Configurare le identità gestite per le risorse di Azure in una macchina virtuale di Azure mediante PowerShell) o Configure managed identities for Azure resources on an Azure VM using Azure CLI (Configurare le identità gestite per le risorse di Azure in una macchina virtuale di Azure mediante l'interfaccia della riga di comando di Azure)