Gestire Key Vault con l'interfaccia della riga di comando di Azure

Questo articolo descrive come usare Azure Key Vault con l'interfaccia della riga di comando di Azure. In particolare, fornisce informazioni sugli argomenti seguenti:

  • Come creare un contenitore finalizzato, ossia un insieme di credenziali, in Azure
  • Aggiunta di una chiave, un segreto o un certificato all'insieme di credenziali delle chiavi
  • Registrazione di un'applicazione con Microsoft Entra ID
  • Autorizzazione di un'applicazione all'uso di una chiave o un segreto
  • Impostazione di criteri di accesso avanzati per l'insieme di credenziali delle chiavi
  • Uso dei moduli di protezione hardware
  • Eliminazione dell'insieme di credenziali delle chiavi e di chiavi e segreti associati
  • Comandi vari dell'interfaccia della riga di comando multipiattaforma di Azure

L'insieme di credenziali delle chiavi di Azure è disponibile nella maggior parte delle aree. Per altre informazioni, vedere la pagina Insieme di credenziali delle chiavi - Prezzi.

Nota

Questo articolo non include istruzioni su come scrivere l'applicazione Azure usata nel passaggio che spiega come autorizzare un'applicazione all'uso di una chiave o un segreto nell'insieme di credenziali delle chiavi.

Per una panoramica di Azure Key Vault, vedere Cos'è Azure Key Vault? Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Per usare i comandi dell'interfaccia della riga di comando di Azure in questo articolo, sono necessari gli elementi seguenti:

Risorse della Guida per l'interfaccia della riga di comando multipiattaforma di Microsoft Azure

Questo articolo presuppone che si abbia familiarità con l'interfaccia della riga di comando (Bash, terminale, prompt dei comandi).

Il parametro --help o -h consente di visualizzare la Guida per specifici comandi. In alternativa, è anche possibile usare il formato Azure help [comando] [opzioni]. In caso di dubbi sui parametri necessari per un comando, vedere la Guida. Ad esempio, tutti i comandi seguenti restituiranno le stesse informazioni:

az account set --help
az account set -h

È anche possibile vedere gli articoli seguenti per acquisire familiarità con Azure Resource Manager nell'interfaccia della riga di comando multipiattaforma di Azure:

Come creare un contenitore finalizzato, ossia un insieme di credenziali, in Azure

Gli insiemi di credenziali sono contenitori protetti supportati da moduli di protezione hardware. Gli insiemi di credenziali consentono di ridurre le probabilità di perdita accidentale di informazioni di sicurezza centralizzando l'archiviazione dei segreti delle applicazioni. Gli insiemi di credenziali delle chiavi controllano e registrano anche l'accesso a tutti gli elementi archiviati al loro interno. Azure Key Vault può gestire la richiesta e il rinnovo dei certificati TLS (Transport Layer Security), offrendo le funzionalità necessarie per una soluzione affidabile di gestione del ciclo di vita dei certificati. Nei passaggi successivi si creerà un insieme di credenziali.

Connettersi alle sottoscrizioni

Per accedere in modo interattivo, usare il comando seguente:

az login

Per accedere con un account aziendale, è possibile passare il nome utente e la password.

az login -u username@domain.com -p password

Se si ha più di una sottoscrizione ed è necessario specificare quale usare, digitare quanto segue per visualizzare le sottoscrizioni per il proprio account:

az account list

Specificare una sottoscrizione con il parametro subscription.

az account set --subscription <subscription name or ID>

Per ulteriori informazioni sulla configurazione dell'interfaccia della riga di comando multipiattaforma di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

Creare un nuovo gruppo di risorse

Quando si usa Gestione risorse di Azure, tutte le risorse correlate vengono create in un gruppo di risorse. È possibile creare un insieme di credenziali delle chiavi in un gruppo di risorse esistente. Per usare un nuovo gruppo di risorse, è possibile crearne uno nuovo.

az group create -n "ContosoResourceGroup" -l "East Asia"

Il primo parametro è il nome del gruppo di risorse e il secondo è la posizione. Per ottenere un elenco di tutti i possibili tipi di posizione:

az account list-locations

Registrare il provider di risorse dell'insieme di credenziali delle chiavi

È possibile che venga visualizzato il messaggio di errore "La sottoscrizione non è registrata per l'uso dello spazio dei nomi 'Microsoft.KeyVault'" quando si prova a creare un nuovo insieme di credenziali delle chiavi. Se viene visualizzato questo messaggio, verificare che il provider di risorse di Key Vault sia registrato nella sottoscrizione. Questa operazione viene eseguita una sola volta per ogni sottoscrizione.

az provider register -n Microsoft.KeyVault

Creare un insieme di credenziali delle chiavi

Usare il comando az keyvault create per creare un insieme di credenziali delle chiavi. Questo script ha tre parametri obbligatori: un nome del gruppo di risorse, un nome dell'insieme di credenziali delle chiavi e la località geografica.

Per creare un nuovo insieme di credenziali con il nome ContosoKeyVault, nel gruppo di risorse ContosoResourceGroup, che si trova nella località Asia orientale, digitare:

az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --location "East Asia"

L'output di questo comando mostra le proprietà dell'insieme di credenziali delle chiavi creato. Le due proprietà più importanti sono:

  • name: nell'esempio il nome è ContosoKeyVault. Questo nome verrà usato per altri comandi di Key Vault.
  • vaultUri: in questo esempio l'URI è https://contosokeyvault.vault.azure.net. Le applicazioni che usano l'insieme di credenziali tramite l'API REST devono usare questo URI.

L'account Azure ora è autorizzato a eseguire qualsiasi operazione su questo insieme di credenziali delle chiavi. Per ora, nessun altro è autorizzato.

Aggiunta di una chiave, un segreto o un certificato all'insieme di credenziali delle chiavi

Per usare Azure Key Vault per creare automaticamente una chiave protetta tramite software, eseguire il comando az key create.

az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software

Se si ha una chiave esistente in un file con estensione pem, è possibile caricarla in Azure Key Vault. È possibile scegliere di proteggere la chiave con il modulo di protezione hardware o il software. In questo esempio si importa la chiave dal file con estensione PEM e la si protegge con il software, usando la password "hVFkk965BuUv":

az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software

A questo punto è possibile fare riferimento alla chiave creata o caricata nell'insieme di credenziali delle chiavi di Azure, usando il relativo URI. Usare https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey per ottenere sempre la versione corrente. Usare https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id> per ottenere questa versione specifica. Ad esempio, https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87.

Aggiungere un segreto all'insieme di credenziali, ovvero una password denominata SQLPassword con il valore "hVFkk965BuUv" per Azure Key Vault.

az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "

Fare riferimento a questa password usando il relativo URI. Usare https://ContosoVault.vault.azure.net/secrets/SQLPassword per ottenere sempre la versione corrente e https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id> per ottenere questa versione specifica. Ad esempio, https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d.

Importare un certificato nell'insieme di credenziali usando un file PEM o PFX.

az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"

Verrà ora visualizzata la chiave, il segreto o il certificato creato:

  • Per visualizzare le chiavi, digitare:
az keyvault key list --vault-name "ContosoKeyVault"
  • Per visualizzare i segreti, digitare:
az keyvault secret list --vault-name "ContosoKeyVault"
  • Per visualizzare i certificati, digitare:
az keyvault certificate list --vault-name "ContosoKeyVault"

Registrazione di un'applicazione con Microsoft Entra ID

Questo passaggio di solito viene eseguito da uno sviluppatore, su un computer separato. Anche se non è specifico di Azure Key Vault, viene incluso qui per maggiore consapevolezza. Per completare la registrazione dell'app, è necessario che l'account, l'insieme di credenziali e l'applicazione siano nella stessa directory di Azure.

Le applicazioni che usano un insieme di credenziali delle chiavi devono eseguire l'autenticazione con un token di Microsoft Entra ID. Il proprietario dell'applicazione deve prima registrarla in Microsoft Entra. Al termine della registrazione, il proprietario dell'applicazione ottiene i valori seguenti:

  • Un ID applicazione (noto anche come ID client Microsoft Entra o appID)
  • Chiave di autenticazione, detta anche segreto condiviso

L'applicazione deve presentare entrambi questi valori all'ID Microsoft Entra per ottenere un token. Il modo in cui un'applicazione viene configurata per ottenere un token dipenderà dall'applicazione. Per l'applicazione di esempio per l'insieme di credenziali delle chiavi, il proprietario dell'applicazione imposta questi valori nel file app.config.

Per la procedura dettagliata per registrare un'applicazione in Microsoft Entra ID, vedere gli articoli Integrazione di applicazioni con Microsoft Entra ID, Usare il portale per creare un'applicazione Microsoft Entra e un'entità servizio che possano accedere alle risorse e Creare un'entità servizio di Azure con l'interfaccia della riga di comando di Azure.

Per registrare un’applicazione in Microsoft Entra ID:

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.

Autorizzazione di un'applicazione all'uso di una chiave o un segreto

Per autorizzare l'accesso da parte dell'applicazione alla chiave o al segreto nell'insieme di credenziali, usare il comando az keyvault set-policy .

Ad esempio, se il nome dell'insieme di credenziali è ContosoKeyVault e si vuole autorizzare l'applicazione a decrittografare e firmare le chiavi nell'insieme di credenziali, usare il comando seguente con l'ID applicazione:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign

Per autorizzare la stessa applicazione per la lettura di tutti i segreti nell'insieme di credenziali, digitare il comando seguente:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get

Impostazione di criteri di accesso avanzati per l'insieme di credenziali delle chiavi

Usare az keyvault update per abilitare i criteri avanzati per l'insieme di credenziali delle chiavi.

Abilitare Key Vault per la distribuzione: consente alle macchine virtuali di recuperare i certificati archiviati come segreti dall'insieme di credenziali.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"

Abilitare Key Vault per la crittografia del disco: obbligatorio quando si usa l'insieme di credenziali per Crittografia dischi di Azure.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"

Abilitare Key Vault per la distribuzione dei modelli: consente a Resource Manager di recuperare i segreti dall'insieme di credenziali.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"

Uso dei moduli di protezione hardware

Per una maggiore sicurezza, è possibile importare o generare le chiavi da moduli di protezione hardware che rimangono sempre entro il limite del modulo di protezione hardware. I moduli di protezione hardware sono convalidati da FIPS 140. Se questo requisito non è applicabile, saltare questa sezione e andare a Eliminare l'insieme di credenziali chiave e le chiavi e i segreti associati.

Per creare queste chiavi HSM protette, è necessaria una sottoscrizione all'insieme di credenziali che supporti le chiavi HSM protette.

Quando si crea l'insieme di credenziali, aggiungere il parametro 'sku':

az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --location "East Asia" --sku "Premium"

È possibile aggiungere a questo insieme di credenziali chiavi protette tramite software (come illustrato in precedenza) e chiavi HSM protette. Per creare una chiave HSM protetta, impostare il parametro Destination su 'HSM':

az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"

È possibile usare il comando seguente per importare una chiave da un file con estensione PEM nel computer. Questo comando importa la chiave nei moduli HSM nel servizio dell'insieme di credenziali delle chiavi:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"

Il comando successivo importa un pacchetto "Bring Your Own Key" (BYOK). Ciò consente di generare la chiave nel modulo HSM locale e di trasferirlo in moduli HSM nel servizio dell'insieme di credenziali delle chiavi, senza che la chiave esca dal limite HSM:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"

Per istruzioni più dettagliate su come generare questo pacchetto BYOK, vedere Come usare chiavi HSM protette con l'insieme di credenziali delle chiavi di Azure.

Eliminazione dell'insieme di credenziali delle chiavi e di chiavi e segreti associati

Se l'insieme di credenziali delle chiavi e le chiavi o i segreti non sono più necessari, è possibile eliminare l'insieme di credenziali delle chiavi usando il comando az keyvault delete:

az keyvault delete --name "ContosoKeyVault"

In alternativa, è possibile eliminare l'intero gruppo di risorse di Azure, che include l'insieme di credenziali delle chiavi e tutte le altre risorse incluse in quel gruppo:

az group delete --name "ContosoResourceGroup"

Comandi vari dell'interfaccia della riga di comando multipiattaforma di Azure

Altri comandi che potrebbero essere utili per la gestione di Azure Key Vault.

Questo comando ottiene una visualizzazione tabulare di tutte le chiavi e le proprietà selezionate:

az keyvault key list --vault-name "ContosoKeyVault"

Questo comando visualizza un elenco completo di proprietà per la chiave specificata:

az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Questo comando ottiene una visualizzazione tabulare di tutti nomi dei segreti e tutte le proprietà selezionate:

az keyvault secret list --vault-name "ContosoKeyVault"

Ecco un esempio di come rimuovere una chiave specifica:

az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Ecco un esempio di come rimuovere un segreto specifico:

az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"

Passaggi successivi