Vai al contenuto

Accesso a una VM Linux con Azure Bastion e Key Vault senza chiave privata

Scopri come usare Azure Bastion e Key Vault per accedere a VM Linux senza dover gestire localmente le chiavi private SSH.

Nell’ambito aziendale, l’uso di reti private è spesso necessario, il che significa che le macchine virtuali (VM) potrebbero non avere indirizzi IP pubblici. In questi scenari, Azure Bastion offre una soluzione efficace per accedere a queste VM senza complessità. Quando si accede alle VM Linux su Azure tramite Azure Bastion utilizzando una chiave privata SSH, la gestione della chiave come file locale può presentare rischi di sicurezza, come la possibile perdita della chiave. Pertanto, per motivi di sicurezza, è preferibile una gestione centralizzata, incluso un assegnazione appropriata dei ruoli. Una soluzione comune in tali scenari è gestire le chiavi private SSH utilizzando Azure Key Vault. Questo articolo fornisce una guida completa passo-passo su come farlo.

Ci sono due grandi vantaggi in questo approccio:

  • Non è più necessario archiviare la chiave privata SSH come file locale, ma è possibile conservarla in Azure Key Vault.
  • Accesso alle VM Linux può essere controllato tramite l’assegnazione dei ruoli (RBAC) per Azure Key Vault.

Il primo punto elimina problemi come la perdita del file o la difficoltà nel determinare a quale VM appartiene la chiave, riducendo inoltre il rischio di perdita della chiave in caso di abbandono di un dipendente. Il secondo punto permette di gestire il controllo degli accessi alle VM specifiche tramite Key Vault.

Qui è riportato il diagramma dell’architettura per la configurazione attuale: durante la creazione di una VM Linux, la chiave privata SSH generata tramite il portale Azure viene registrata in Key Vault, e questa chiave viene poi utilizzata per accedere alla VM Linux tramite Azure Bastion.

Prerequisiti

Prima di seguire questa guida, è necessario creare le seguenti risorse Azure:

  • Rete Virtuale
  • Key Vault
  • Azure Bastion

Procedura

Per prima cosa, creiamo una nuova chiave SSH durante la creazione della VM Linux tramite il portale Azure. Sebbene sia possibile creare una chiave privata SSH in questo momento, si può anche crearla separatamente. Dopo aver inserito i parametri e creato la VM Linux, è possibile scaricare la chiave SSH e salvarla come file locale.

Se si preferisce creare la chiave SSH separatamente, si deve selezionare “Reset password” dal menu della VM nel portale Azure e usare “Add SSH public key” per impostare le informazioni della chiave SSH per la VM Linux. Il primo link nella sezione Riferimenti contiene informazioni pertinenti.

Successivamente, è necessario acquisire il ruolo RBAC appropriato per gestire Azure Key Vault, non basta avere solo il ruolo di proprietario della sottoscrizione. In questo articolo, assegniamo il ruolo Key Vault Administrator.

Per gli sviluppatori che accedono alla tua VM Linux, possiamo usare il ruolo Key Vault Secrets Officer. Facciamo riferimento all’articolo seguente per assegnare correttamente i ruoli RBAC: Fornire accesso a chiavi, certificati e segreti di Key Vault.

Quindi, registriamo la chiave privata SSH nei segreti di Azure Key Vault (non è possibile selezionare chiavi o certificati con Azure Bastion). Un consiglio è che la chiave privata SSH contiene una stringa multilinea, ma il portale Key Vault non supporta la registrazione di stringhe multilinea. Perciò, dobbiamo eseguire questo comando tramite la riga di comando:

az keyvault secret set --name "your-secret-name" --vault-name "your-key-name" --file "my-ssh-private-key.pem"

Se il comando funziona correttamente, è possibile trovare la chiave privata SSH in Azure Key Vault.

Infine, possiamo accedere alla VM Linux tramite Azure Bastion. Seleziona la VM Linux, scegli “SSH Private Key from Azure Key Vault” dalle opzioni di tipo di autenticazione e utilizza la chiave privata SSH registrata.

Errore #1: Registrazione della chiave privata SSH senza assegnazione del ruolo RBAC

Si verifica un errore se non si dispone del ruolo RBAC corretto. Ho assegnato il ruolo Key Vault Administrator all’operatore per risolvere questo problema.

Errore #2: Accesso alla VM Linux senza assegnazione del ruolo RBAC

Si verifica un errore se non si dispone del ruolo RBAC corretto. Ho assegnato il ruolo Key Vault Secrets Officer all’operatore per risolvere questo problema.

Riferimenti