Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Key Vault consente di proteggere chiavi, segreti e certificati, ad esempio chiavi API e stringhe di connessione del database.
In questa esercitazione si configura un'applicazione Node.js per leggere le informazioni da Azure Key Vault usando un'identità gestita per le risorse Azure. Scopri come:
- Creare un insieme di credenziali delle chiavi
- Archiviare un segreto in Key Vault
- Creare una macchina virtuale Linux Azure
- Abilitare un'identità gestita per la macchina virtuale
- Concedere le autorizzazioni necessarie per l'applicazione console per leggere i dati da Key Vault
- Recuperare un segreto da Key Vault
Prima di iniziare, leggere Key Vault concetti di base.
Se non si ha una sottoscrizione Azure, creare un account free.
Prerequisites
Per Windows, Mac e Linux:
- Git
- Versione corrente del interfaccia della riga di comando di Azure. Eseguire
az --versionper controllare la versione installata.
Accedere ad Azure
Accedere a Azure con il interfaccia della riga di comando di Azure:
az login
Creare un gruppo di risorse e un insieme di credenziali delle chiavi
In questo argomento di avvio rapido si usa un'istanza creata in precedenza di Azure Key Vault. È possibile creare un insieme di credenziali delle chiavi seguendo i passaggi di queste guide introduttive:
- Guida introduttiva all'interfaccia della riga di comando di Azure
- Avvio rapido di Azure PowerShell
- Avvio rapido Azure portal
In alternativa, è possibile eseguire questi comandi interfaccia della riga di comando di Azure.
Important
Ogni Vault delle chiavi deve avere un nome univoco. Sostituire <vault-name> con il nome del Key Vault negli esempi seguenti.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Aggiungere un segreto al key vault
Creare un segreto denominato mySecret, con un valore Success!. Un segreto potrebbe essere una password, un stringa di connessione SQL o qualsiasi altra informazione che è necessario mantenere sia sicura che disponibile per l'applicazione.
Per aggiungere un segreto al nuovo archivio di chiavi appena creato, usa il seguente comando:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Creare una macchina virtuale
Creare una macchina virtuale denominata myVM usando uno dei metodi seguenti:
| Linux | Windows |
|---|---|
| interfaccia della riga di comando di Azure | interfaccia della riga di comando di Azure |
| PowerShell | PowerShell |
| portale Azure | portale Azure |
Per creare una macchina virtuale Linux usando il interfaccia della riga di comando di Azure, usare il comando az vm create. Nell'esempio seguente viene aggiunto un account utente denominato azureuser. Il --generate-ssh-keys parametro genera una chiave SSH e la archivia nel percorso della chiave predefinito (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Prendere nota del valore di publicIpAddress nell'output.
Assegnare un'identità alla macchina virtuale
Creare un'identità gestita assegnata dal sistema per la macchina virtuale usando il comando az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Prendere nota dell'identità assegnata dal sistema nell'output:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Assegnare autorizzazioni per l'identità della macchina virtuale
Concedere all'identità gestita della macchina virtuale il ruolo utente dei segreti Key Vault nell'insieme di credenziali delle chiavi:
az role assignment create --role "Key Vault Secrets User" --assignee "<system-assigned-identity>" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>
Accedere alla macchina virtuale
Per accedere alla macchina virtuale, seguire le istruzioni in Connettersi e accedere a una macchina virtuale Azure che esegue Linux o Connetti e accedere a una macchina virtuale Azure che esegue Windows.
Per accedere a una macchina virtuale Linux, usare ssh con il <public-ip-address> passaggio Creare una macchina virtuale :
ssh azureuser@<public-ip-address>
Installare Node.js e le librerie npm nella macchina virtuale
Nella macchina virtuale installare le due librerie npm usate dallo script di esempio: @azure/keyvault-secrets e @azure/identity.
Nel terminale SSH installare Node.js e npm:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ sudo apt-get install -y nodejsCreare una directory dell'app e inizializzare il pacchetto Node.js:
mkdir app && cd app && npm init -yInstallare i pacchetti Azure con
npm:npm install @azure/keyvault-secrets @azure/identity
Creare e modificare il file JavaScript di esempio
Nella macchina virtuale nella
appdirectory creare un file JavaScript denominatoindex.js:touch index.jsAprire il file con l’editor di testo Nano:
nano index.jsIncollare il codice seguente nell'editor, sostituendo a
<vault-name>il nome dell'insieme di credenziali delle chiavi:// index.js const { SecretClient } = require("@azure/keyvault-secrets"); const { DefaultAzureCredential } = require("@azure/identity"); // Your Azure Key Vault name and secret name const keyVaultName = "<vault-name>"; const keyVaultUri = `https://${keyVaultName}.vault.azure.net`; const secretName = "mySecret"; // Authenticate to Azure const credential = new DefaultAzureCredential(); const client = new SecretClient(keyVaultUri, credential); // Get Secret with Azure SDK for JS const getSecret = async (secretName) => { return (await client.getSecret(secretName)).value; } getSecret(secretName).then(secretValue => { console.log(`The value of secret '${secretName}' in '${keyVaultName}' is: '${secretValue}'`); }).catch(err => { console.log(err); })Salvare il file con CTRL+X.
Al prompt
Save modified buffer?, digitare y.Al prompt
File Name to Write: index.js, premi INVIO.
Eseguire l'app di esempio Node.js
Eseguire index.js. Se tutto è configurato correttamente, l'app stampa il valore del segreto:
node index.js
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Pulire le risorse
Quando non sono più necessari, eliminare la macchina virtuale e l'insieme di credenziali delle chiavi. Il modo più rapido consiste nell'eliminare il gruppo di risorse a cui appartengono:
az group delete -g "myResourceGroup"
Passaggi successivi
API REST Azure Key Vault