Condividi tramite


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

Questo articolo illustra come iniziare a usare Azure Key Vault usando l'interfaccia della riga di comando di Azure. È possibile visualizzare informazioni su:

  • Come creare un contenitore rinforzato (una cassaforte) 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 di un segreto
  • Impostazione dei criteri di accesso avanzati del Key Vault
  • Uso dei moduli di sicurezza hardware
  • Eliminazione dell'insieme di credenziali delle chiavi e di chiavi e segreti associati
  • Vari comandi dell'interfaccia della riga di comando multipiattaforma di Azure

Azure Key Vault è disponibile nella maggior parte delle regioni. Per ulteriori informazioni, vedere la pagina dei prezzi di Key Vault.

Annotazioni

Questo articolo non include istruzioni su come scrivere l'applicazione Azure inclusa in uno dei passaggi, che illustra come autorizzare un'applicazione a usare una chiave o un segreto nell'insieme di credenziali delle chiavi.

Per una panoramica di Azure Key Vault, vedere Che 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:

  • Un abbonamento a Microsoft Azure. Se non si ha una sottoscrizione, è possibile iscriversi per ottenere una versione di valutazione gratuita.
  • CLI di Azure versione 2.0 o successiva. Per installare la versione più recente, vedere Installare l'interfaccia della riga di comando di Azure.
  • Applicazione che verrà configurata per l'uso della chiave o della password creata in questo articolo. Un'applicazione di esempio è disponibile nell'Area download Microsoft. Per istruzioni, vedere il file Readme incluso.

Ottenere assistenza con l'interfaccia Command-Line multipiattaforma di 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 può essere usato per visualizzare la Guida per comandi specifici. In alternativa, è anche possibile usare il formato Azure help [comando] [opzioni]. In caso di dubbi sui parametri necessari per un comando, consultare la guida. Ad esempio, i comandi seguenti restituiscono tutte le stesse informazioni:

az account set --help
az account set -h

È anche possibile leggere gli articoli seguenti per acquisire familiarità con Azure Resource Manager nell'interfaccia Command-Line multipiattaforma di Azure:

Come creare un contenitore rinforzato (una cassaforte) in Azure

Le casseforti sono contenitori protetti supportati da moduli di sicurezza hardware. Le cassaforti aiutano a ridurre le probabilità di perdita accidentale di dati sensibili 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), fornendo 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 usando un account aziendale, è possibile passare il nome utente e la password.

az login -u [email protected] -p password

Se sono presenti più sottoscrizioni ed è necessario specificare quale usare, digitare quanto segue per visualizzare le sottoscrizioni per l'account:

az account list

Specificare una sottoscrizione con il parametro della sottoscrizione.

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

Per ulteriori informazioni sulla configurazione dell'interfaccia multipiattaforma Command-Line di Azure, vedere Installare Azure CLI.

Creare un nuovo gruppo di risorse

Quando si usa Azure Resource Manager, tutte le risorse correlate vengono create all'interno di un gruppo di risorse. È possibile creare un archivio di chiavi in un gruppo di risorse esistente. Se si vuole 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 parametro è la posizione. Per ottenere un elenco di tutti i possibili tipi di posizioni:

az account list-locations

Registrare il provider di risorse di Key Vault

È possibile che venga visualizzato l'errore "La sottoscrizione non è registrata per usare lo spazio dei nomi "Microsoft.KeyVault" quando si tenta di creare un nuovo insieme di credenziali delle chiavi. Se viene visualizzato questo messaggio, assicurarsi che il provider di risorse di Key Vault sia registrato nella sottoscrizione. Si tratta di un'operazione una tantum 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: nell'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

Se si vuole che Azure Key Vault crei automaticamente una chiave protetta da software, usare il az key create comando .

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

Se si dispone di una chiave esistente in un file con estensione pem, è possibile caricarla in Azure Key Vault. È possibile scegliere di proteggere la chiave con software o modulo di protezione hardware. Questo esempio importa la chiave dal file pem e la 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

È ora possibile fare riferimento alla chiave creata o caricata in Azure Key Vault 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 viene in genere eseguito da uno sviluppatore in un computer separato. Non è specifico di Azure Key Vault, ma è incluso qui per la 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 key vault devono eseguire l'autenticazione utilizzando un token di Microsoft Entra ID. Il proprietario dell'applicazione deve prima registrarlo in Microsoft Entra. Al termine della registrazione, il proprietario dell'applicazione ottiene i valori seguenti:

  • ID applicazione (noto anche come ID client Microsoft Entra o appID)
  • Una chiave di autenticazione (nota anche come segreto condiviso).

L'applicazione deve presentare entrambi questi valori all'ID Microsoft Entra per ottenere un token. La modalità di configurazione di un'applicazione per ottenere un token dipende dall'applicazione. Per l'applicazione di esempio Key Vault, il proprietario dell'applicazione imposta questi valori nel file di app.config.

Per i passaggi dettagliati sulla registrazione di un'applicazione con Microsoft Entra ID, vedere gli articoli intitolato Integrazione di applicazioni con MICROSOFT Entra ID, Usare il portale per creare un'applicazione Microsoft Entra e un'entità servizio in grado di 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 di 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 con 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 a leggere i segreti nel tuo vault, digita il seguente comando:

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

Impostazione dei criteri di accesso avanzati del Key Vault

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 memorizzati come segreti nel vault.

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

Abilitare Key Vault per la crittografia del disco: obbligatorio quando si usa Key Vault per la crittografia dei dischi di Azure.

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

Abilitare Key Vault per la distribuzione di modelli: consente a Resource Manager di recuperare i segreti dal vault.

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

Uso dei moduli di sicurezza hardware

Per una maggiore garanzia, è possibile importare o generare chiavi da moduli di protezione hardware che non lasciano mai 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 delle chiavi e le chiavi e i segreti associati.

Per creare queste chiavi protette HSM, è necessario disporre di una sottoscrizione di un vault che supporti le chiavi protette HSM.

Quando si crea il Key Vault, aggiungere il parametro 'sku':

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

È possibile aggiungere chiavi protette da software (come illustrato in precedenza) e chiavi protette da HSM a questo vault. Per creare una chiave protetta da HSM, 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 pem nel computer. Questo comando importa la chiave negli HSM nel servizio Key Vault.

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

Il comando successivo importa un pacchetto BYOK (Bring Your Own Key). In questo modo è possibile generare la chiave nel modulo di protezione hardware locale e trasferirla nei moduli di protezione hardware nel servizio Key Vault, senza che la chiave lasci il limite del modulo di protezione hardware:

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-Protected con Azure Key Vault.

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"

Vari comandi dell'interfaccia della riga di comando multipiattaforma di Azure

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

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

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

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

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

Questo comando elenca una visualizzazione tabulare di tutti i nomi dei segreti e delle 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