Esercitazione: Usare un'identità gestita assegnata dal sistema per una macchina virtuale Linux per accedere ad Azure Key Vault

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.

Questa esercitazione mostra come usare un'identità gestita assegnata dal sistema per una macchina virtuale Linux per accedere ad Azure Key Vault. Key Vault consente all'applicazione client di usare un segreto per accedere alle risorse non protette da Microsoft Entra ID. Le identità del servizio gestito vengono gestite automaticamente da Azure e consentono di eseguire l'autenticazione ai servizi che supportano l'autenticazione di Microsoft Entra, senza includere le informazioni di autenticazione nel codice.

Scopri come:

  • Concedere alla macchina virtuale l'accesso a un segreto archiviato in un insieme di credenziali delle chiavi
  • Ottenere un token di accesso usando l'identità della macchina virtuale e usarlo per recuperare il segreto dall'insieme di credenziali delle chiavi

Prerequisiti

Creare un insieme di credenziali delle chiavi

Suggerimento

I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.

Questa sezione illustra come concedere alla macchina virtuale l'accesso a un segreto archiviato in un insieme di credenziali delle chiavi. Usando le identità gestite per le risorse di Azure, il codice può ottenere token di accesso per l'autenticazione alle risorse che supportano l'autenticazione di Microsoft Entra.  Tuttavia, non tutti i servizi di Azure supportano l'autenticazione di Microsoft Entra. Per usare le identità gestite per le risorse di Azure con questi servizi, archiviare le credenziali del servizio in Azure Key Vault e usare l'identità gestita della macchina virtuale per accedere a Key Vault e recuperare le credenziali.

Prima di tutto, è necessario creare un insieme di credenziali delle chiavi e concedere all'identità gestita assegnata dal sistema della macchina virtuale l'accesso all'insieme di credenziali delle chiavi.

  1. Accedere al portale di Azure.

  2. Nella parte superiore della barra di spostamento a sinistra selezionare Crea una risorsa.

  3. Nella casella Cerca nel Marketplace digitare Key Vault e quindi premere INVIO.

  4. Nell'elenco dei risultati selezionare Key Vault.

  5. Seleziona Crea.

  6. Specificare un nome per il nuovo insieme di credenziali delle chiavi.

    Screenshot che mostra la schermata di creazione dell'insieme di credenziali delle chiavi di Azure.

  7. Compilare tutte le informazioni necessarie assicurandosi di scegliere la sottoscrizione e il gruppo di risorse in cui è stata creata la macchina virtuale in uso per questa esercitazione.

  8. Selezionare Rivedi e crea

  9. Selezionare Crea.

Creare un segreto

Successivamente, aggiungere un segreto all'istanza di Key Vault, in modo che sia possibile recuperarlo in un secondo momento usando il codice in esecuzione nella macchina virtuale. In questa esercitazione si usa PowerShell, ma gli stessi concetti si applicano a qualsiasi codice in esecuzione in questa macchina virtuale.

  1. Passare all'istanza di Key Vault appena creata.

  2. Selezionare Segreti e quindi Aggiungi.

  3. Selezionare Genera/Importa

  4. Nella schermata Crea un segreto lasciare selezionata l'opzione Manuale in Opzioni di caricamento.

  5. Specificare un nome e il valore del segreto.  È possibile specificare qualsiasi valore. 

  6. Lasciare vuoti i campi della data di attivazione e della data di scadenza e lasciare Abilitato su

  7. Selezionare Crea per creare il segreto.

    Screenshot che mostra la creazione di segreti.

Concedi accesso

L'identità gestita usata dalla macchina virtuale deve accedere per leggere il segreto archiviato in Key Vault.

  1. Passare all'istanza di Key Vault appena creata

  2. Selezionare Criteri di accesso dal menu sul lato sinistro.

  3. Selezionare Aggiungi criterio di accesso.

    Screenshot della schermata di creazione dei criteri di accesso dell'insieme di credenziali delle chiavi.

  4. Nella sezione Aggiungi criterio di accesso in Configura dal modello (facoltativo) scegliere Gestione dei segreti dal menu a discesa.

  5. Scegliere Selezionare un'entità e nel campo di ricerca immettere il nome della macchina virtuale creata in precedenza.  Selezionare la macchina virtuale nell'elenco dei risultati e scegliere Seleziona.

  6. Seleziona Aggiungi

  7. Seleziona Salva.

Accedere ai dati

Per completare questi passaggi, è necessario disporre di un client SSH.  Se si usa Windows, è possibile usare il client SSH nel sottosistema Windows per Linux. Per richiedere assistenza nella configurazione delle chiavi del client SSH, vedere Come usare le chiavi SSH con Windows in Azure o Come creare e usare una coppia di chiavi SSH pubblica e privata per le macchine virtuali Linux in Azure.

Importante

Tutti gli SDK di Azure supportano la libreria Azure.Identity che semplifica l'acquisizione di token Microsoft Entra per accedere ai servizi di destinazione. Altre informazioni sugli SDK di Azure e sfruttare la libreria Azure.Identity.

  1. Nel portale passare alla macchina virtuale Linux e in Panoramica selezionare Connessione

  2. Connettersi alla macchina virtuale usando un client SSH di propria scelta. 

  3. Nella finestra del terminale usare CURL per effettuare una richiesta alle identità gestite locali per l'endpoint delle risorse di Azure per ottenere un token di accesso per Azure Key Vault.   La richiesta CURL per il token di accesso è mostrata di seguito.

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true
    

    La risposta include il token di accesso necessario per accedere a Gestione risorse. 

    Risposta:

    {"access_token":"eyJ0eXAi...",
    "refresh_token":"",
    "expires_in":"3599",
    "expires_on":"1504130527",
    "not_before":"1504126627",
    "resource":"https://vault.azure.net",
    "token_type":"Bearer"} 
    

    È possibile usare questo token di accesso per l'autenticazione ad Azure Key Vault.  La successiva richiesta CURL mostra come leggere un segreto da Key Vault usando CURL e l'API REST di Key Vault.  È necessario l'URL dell'insieme di credenziali delle chiavi, disponibile nella sezione Informazioni di base della pagina Panoramica dell'insieme di credenziali delle chiavi.  È necessario anche il token di accesso ottenuto nella chiamata precedente. 

    curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    

    La risposta è simile alla seguente:

    {"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}} 
    

Dopo aver recuperato il segreto dall'insieme di credenziali delle chiavi, è possibile usarlo per eseguire l'autenticazione a un servizio che richiede un nome e una password.

Pulire le risorse

Quando si desidera pulire le risorse, accedere al portale di Azure, selezionare Gruppi di risorse, individuare e selezionare il gruppo di risorse creato nel processo di questa esercitazione (ad esempio mi-test) e quindi usare il comando Elimina gruppo di risorse.

In alternativa, è anche possibile eseguire questa operazione tramite PowerShell o l'interfaccia della riga di comando.

Passaggi successivi

In questa esercitazione si è appreso come usare un'identità gestita assegnata dal sistema per una macchina virtuale Linux per accedere ad Azure Key Vault. Per altre informazioni su Azure Key Vault, consultare: