Condividi tramite


Gestire le chiavi in un Azure Managed HSM usando il CLI di Azure

Annotazioni

Key Vault supporta due tipi di risorse: insiemi di credenziali e moduli di protezione hardware gestiti. Questo articolo riguarda il modulo di protezione hardware gestito. Per sapere come gestire un Key Vault, vedere Gestire Key Vault usando il CLI di Azure.

Per una panoramica del modulo di protezione hardware gestito, vedere Che cos'è il modulo di protezione hardware gestito?

Prerequisiti

Per seguire la procedura descritta in questo articolo, sono necessari gli elementi seguenti:

Azure Cloud Shell

Azure ospita Azure Cloud Shell, un ambiente shell interattivo che è possibile usare tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice in questo articolo, senza dover installare alcun elemento nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/collegamento
Selezionare Prova nell'angolo superiore destro di un codice o di un blocco di comandi. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. Screenshot che mostra un esempio della funzione
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu in alto a destra nel portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando Ctrl+Shift+V in Windows e Linux oppure selezionando Cmd+Shift+V in macOS.

  4. Selezionare Immettere per eseguire il codice o il comando.

Accedere ad Azure

Accedere ad Azure usando l'interfaccia della riga di comando digitando:

az login

Per altre informazioni sulle opzioni di accesso tramite l'interfaccia della riga di comando, vedere Accedere con l'interfaccia della riga di comando di Azure

Annotazioni

Tutti i comandi seguenti mostrano due metodi di utilizzo. Uno utilizzando i parametri --hsm-name e --name (per il nome della chiave) e un altro utilizzando il parametro --id in cui è possibile specificare l'intero URL, inclusivo del nome della chiave, dove appropriato. Il secondo metodo è utile quando il chiamante (un utente o un'applicazione) non ha accesso in lettura al piano di controllo e ha accesso limitato al piano dati.

Annotazioni

Alcune interazioni con il materiale della chiave richiedono autorizzazioni di controllo degli accessi in base al ruolo locali specifiche. Per un elenco completo delle autorizzazioni e dei ruoli Controllo degli accessi in base al ruolo locali predefiniti, vedere Ruoli predefiniti controllo degli accessi in base al ruolo locale del modulo di protezione hardware gestito. Per assegnare queste autorizzazioni a un utente, vedere Proteggere l'accesso ai moduli di protezione hardware gestiti

Creare una chiave del modulo di protezione hardware

Annotazioni

Non è possibile esportare una chiave generata o importata nel modulo di protezione hardware gestito. L'unica eccezione alla regola di no-export è quando si crea una chiave con un criterio di rilascio della chiave specifico. Questo criterio consente l'esportazione della chiave solo in ambienti attendibili di confidential computing (enclave sicuri) definiti in modo esplicito. Questa funzionalità di esportazione limitata è progettata per scenari specifici di elaborazione sicura e non è uguale a un'esportazione di chiavi per utilizzo generico. Vedere le procedure consigliate per la portabilità e la durabilità della chiave.

Usare il comando az keyvault key create per creare una chiave.

Creare una chiave RSA

Questo esempio illustra come creare una chiave RSA a 3072 bit usata solo per le operazioni wrapKey, unwrapKey (--ops).

az keyvault key create --hsm-name ContosoMHSM --name myrsakey --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

## OR
# Note the key name (myrsakey) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.azure.net/keys/myrsakey --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

Tenere presente che l'operazione di get restituisce solo gli attributi di chiave e di chiave pubblica. Non restituisce la chiave privata (se una chiave asimmetrica) o il materiale della chiave (se una chiave simmetrica).

Creare una chiave EC

Nell'esempio seguente viene illustrato come creare una chiave EC con una curva P-256 che verrà usata solo per le operazioni sign e verify (--ops) e ha due tag, usage e appname. I tag consentono di aggiungere altri metadati alla chiave per facilitarne il rilevamento e la gestione.

az keyvault key create --hsm-name ContosoMHSM --name myec256key --ops sign verify  --tags ‘usage=signing] appname=myapp’ --kty EC-HSM --curve P-256

## OR
# Note the key name (myec256key) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.azure.net/keys/myec256key --ops sign verify  --tags ‘usage=signing] appname=myapp’ --kty EC-HSM --curve P-256

Creare una chiave simmetrica a 256 bit

Questo esempio mostra come creare una chiave simmetrica a 256 bit che verrà usata solo per le operazioni di crittografia e decrittografia (--ops).

az keyvault key create --hsm-name ContosoMHSM --name myaeskey --ops encrypt decrypt  --tags --kty oct-HSM --size 256

## OR
# Note the key name (myaeskey) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.azure.net/keys/myaeskey --ops encrypt decrypt  --tags ‘usage=signing] appname=myapp’ --kty oct-HSM --size 256

Visualizzare i tag e gli attributi della chiave

Usare az keyvault key show il comando per visualizzare attributi, versioni e tag per una chiave.

az keyvault key show --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key show --id https://ContosoMHSM.managedhsm.azure.net/keys/myrsakey

Elenco delle chiavi

Usare il comando az keyvault key list per elencare tutte le chiavi presenti in un modulo di protezione hardware gestito.

az keyvault key list --hsm-name ContosoHSM

## OR
# use full URI

az keyvault key list --id https://ContosoMHSM.managedhsm.azure.net/

Eliminare una chiave

Usare il comando az keyvault key delete per eliminare una chiave da un modulo di protezione hardware gestito. L’eliminazione temporanea è sempre attiva. Pertanto, una chiave eliminata rimane in stato eliminato e può essere ripristinata fino a quando non è trascorso il numero di giorni di conservazione, a quel punto la chiave viene eliminata definitivamente senza ripristino possibile.

az keyvault key delete --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key delete --id https://ContosoMHSM.managedhsm.azure.net/keys/myrsakey

Elencare le chiavi eliminate

Usare il comando az keyvault key list-deleted per elencare tutte le chiavi nello stato eliminato presenti in un modulo di protezione hardware gestito.

az keyvault key list-deleted --hsm-name ContosoHSM

## OR
# use full URI

az keyvault key list-deleted --id https://ContosoMHSM.managedhsm.azure.net/

Ripristinare una chiave eliminata annullandone l'eliminazione

Usare il comando az keyvault key list-deleted per elencare tutte le chiavi nello stato eliminato presenti in un modulo di protezione hardware gestito. Se è necessario ripristinare (annullare l'eliminazione) una chiave usando il parametro durante il --id recupero di una chiave eliminata, è necessario annotare il recoveryId valore della chiave eliminata ottenuta dal az keyvault key list-deleted comando.

az keyvault key recover --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key recover --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey

Rimuovere (eliminare definitivamente) una chiave

Usare il comando az keyvault key purge per rimuovere (eliminare definitivamente) una chiave.

Annotazioni

Se nel modulo di protezione hardware gestito è abilitata la protezione dalla rimozione definitiva, l'operazione di rimozione non è consentita. La chiave viene rimossa automaticamente al termine del periodo di conservazione.

az keyvault key purge --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key purge --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey

Creare il backup di una singola chiave

Usare il comando az keyvault key backup per creare il backup di una singola chiave. Il file di backup è un BLOB crittografato associato al dominio di sicurezza del modulo di protezione hardware di origine. Può essere ripristinato solo in moduli di protezione hardware che condividono lo stesso dominio di sicurezza. Per altre informazioni, vedere Dominio di sicurezza.

az keyvault key backup --hsm-name ContosoHSM --name myrsakey --file myrsakey.backup

## OR
# Note the key name (myaeskey) in the URI

az keyvault key backup --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey  --file myrsakey.backup

Ripristinare una singola chiave dal backup

Usare il comando az keyvault key restore per ripristinare una singola chiave. Il modulo di protezione hardware di origine in cui è stato creato il backup deve condividere lo stesso dominio di sicurezza del modulo di protezione hardware di destinazione in cui viene ripristinata la chiave.

Annotazioni

Il ripristino non riuscirà se è presente una chiave con lo stesso nome nello stato attivo o eliminato.

az keyvault key restore --hsm-name ContosoHSM --name myrsakey --file myrsakey.backup

## OR
# Note the key name (myaeskey) in the URI

az keyvault key restore --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey --file myrsakey.backup

Importare una chiave da un file

Usare il comando az keyvault key import per importare una chiave (solo RSA e EC) da un file. Il file di certificato deve includere la chiave privata e usare la codifica PEM (come definito negli RFC 1421, 1422, 1423, 1424).

az keyvault key import --hsm-name ContosoHSM --name myrsakey --pem-file mycert.key --pem-password 'mypassword'

## OR
# Note the key name (myaeskey) in the URI

az keyvault key recover --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey --pem-file mycert.key --password 'mypassword'

Per importare una chiave dal modulo di protezione hardware locale al modulo di protezione hardware gestito, vedere Importare chiavi con protezione HSM nel modulo di protezione hardware gestito (BYOK)

Passaggi successivi