Ripristino di emergenza del modulo di protezione hardware gestito

È opportuno creare una replica esatta del modulo di protezione hardware se l'originale è andato perso o risulta non disponibile a causa di uno di questi motivi:

  • È stato eliminato e quindi rimosso definitivamente.
  • Si è verificato un errore irreversibile nell'area che ha comportato l'eliminazione definitiva di tutte le partizioni membro.

È possibile ricreare l'istanza del modulo di protezione hardware nella stessa area o in un'area diversa se si dispone di quanto segue:

  • Dominio di sicurezza del modulo di protezione hardware di origine.
  • Chiavi private (almeno il numero del quorum) che crittografano il dominio di sicurezza.
  • Backup completo e più recente del modulo di protezione hardware di origine.

Ecco la procedura da seguire per il ripristino di emergenza:

  1. Creare una nuova istanza del modulo di protezione hardware.
  2. Attivare il ripristino del dominio di sicurezza. Verrà generata una nuova coppia di chiavi RSA (chiave di scambio del dominio di sicurezza) per il trasferimento del dominio di sicurezza. Tale coppia di chiavi verrà inviata nella risposta e verrà scaricata come elemento SecurityDomainExchangeKey (chiave pubblica).
  3. Creare e caricare il file di trasferimento del dominio di sicurezza. Saranno necessarie le chiavi private che crittografano il dominio di sicurezza. Le chiavi private vengono usate in locale e non vengono mai trasferite in nessuna parte di questo processo.
  4. Eseguire un backup del nuovo modulo di protezione hardware. È necessario eseguire un backup prima di qualsiasi ripristino, anche quando il modulo di protezione hardware è vuoto. I backup consentono di eseguire facilmente il rollback.
  5. Ripristinare il backup recente del modulo di protezione hardware dal modulo di protezione hardware di origine.

Questa procedura consente di replicare manualmente il contenuto di un modulo di protezione hardware in un'altra area. Il nome del modulo di protezione hardware e l'URI dell'endpoint di servizio saranno diversi, quindi sarà necessario cambiare la configurazione dell'applicazione per consentire l'uso di queste chiavi da una posizione diversa.

Creare un nuovo modulo di protezione hardware gestito

Usare il comando az keyvault create per creare un modulo di protezione hardware gestito. Questo script ha tre parametri obbligatori: nome del gruppo di risorse, nome del modulo di protezione hardware e località geografica.

Per creare una risorsa del modulo di protezione hardware gestito, è necessario fornire gli input seguenti:

  • Nome del modulo di protezione hardware.
  • Gruppo di risorse in cui verrà inserito il modulo nella sottoscrizione.
  • Località di Azure.
  • Elenco di amministratori iniziali.

L'esempio seguente crea un modulo di protezione hardware denominato ContosoMHSM2 nel gruppo di risorse ContosoResourceGroup, nella località Stati Uniti occidentali 3 e con l'utente connesso corrente come unico amministratore.

oid=$(az ad signed-in-user show --query objectId -o tsv)
az keyvault create --hsm-name "ContosoMHSM2" --resource-group "ContosoResourceGroup" --location "westus3" --administrators $oid

Nota

L'esecuzione del comando di creazione può richiedere alcuni minuti. Al termine, è possibile attivare il modulo di protezione hardware.

Avviso

Le istanze del modulo di protezione hardware gestito vengono considerate sempre in uso. Se si sceglie di abilitare la protezione dall'eliminazione usando il flag --enable-purge-protection, il modulo verrà addebitato per l'intero periodo di conservazione.

L'output di questo comando mostra le proprietà del modulo di protezione hardware gestito creato. Le due proprietà più importanti sono:

  • name: nell'esempio il nome è ContosoMHSM. Questo nome verrà usato per altri comandi di Key Vault.
  • hsmUri: nell'esempio l'URI è "https://contosomhsm2.managedhsm.azure.net." Le applicazioni che usano il modulo di protezione hardware tramite l'API REST devono usare questo URI.

L'account Azure ora è autorizzato a eseguire qualsiasi operazione su questo modulo di protezione hardware gestito. Per ora, nessun altro è autorizzato.

Attivare la modalità di ripristino del dominio di sicurezza

In un processo di creazione normale a questo punto viene inizializzato e scaricato un nuovo dominio di sicurezza del modulo di protezione hardware. Tuttavia, dal momento che viene eseguita una procedura di ripristino di emergenza, il modulo di protezione hardware deve passare alla modalità di ripristino del dominio di sicurezza e scaricare una chiave di scambio del dominio di sicurezza. La chiave di scambio del dominio di sicurezza è una chiave pubblica RSA che verrà usata per crittografare il dominio di sicurezza prima di caricarlo nel modulo di protezione hardware. La chiave privata corrispondente è protetta all'interno del modulo di protezione hardware, per salvaguardare il contenuto del dominio di sicurezza durante il trasferimento.

az keyvault security-domain init-recovery --hsm-name ContosoMHSM2 --sd-exchange-key ContosoMHSM2-SDE.cer

Creare un BLOB di caricamento del dominio di sicurezza del modulo di protezione hardware di origine

Per questo passaggio, sarà necessario:

  • Chiave di scambio del dominio di sicurezza scaricata nel passaggio precedente.
  • Dominio di sicurezza del modulo di protezione hardware di origine.
  • Almeno il numero del quorum delle chiavi private usate per crittografare il dominio di sicurezza.

Il comando az keyvault security-domain restore-blob esegue le operazioni seguenti:

  • Decrittografa il dominio di sicurezza del modulo di protezione hardware di origine con le chiavi private fornite.
  • Creare un BLOB di caricamento del dominio di sicurezza crittografato con la chiave di Exchange del dominio di sicurezza scaricata nel passaggio precedente

Questo passaggio può essere eseguito offline.

Nell'esempio seguente viene usato il dominio di sicurezza di ContosoMHSM, il 3 delle chiavi private corrispondenti e la chiave di Exchange del dominio di sicurezza per creare e scaricare un BLOB crittografato che verrà usato per il caricamento in ContosoMHSM2, in attesa di ricevere un dominio di sicurezza.

az keyvault security-domain restore-blob --sd-exchange-key ContosoMHSM2-SDE.cer --sd-file ContosoMHSM-SD.json --sd-wrapping-keys cert_0.key cert_1.key cert_2.key --sd-file-restore-blob restore_blob.json 

Caricare un BLOB del dominio di sicurezza nel modulo di protezione hardware di destinazione

Ora si usa il BLOB di caricamento del dominio di sicurezza creato nel passaggio precedente e lo si carica nel modulo di protezione hardware di destinazione per completare il ripristino del dominio di sicurezza. Il --restore-blob flag viene usato per impedire l'esposizione delle chiavi in un ambiente online.

az keyvault security-domain upload --hsm-name ContosoMHSM2 --sd-file restore_blob.json --restore-blob

A questo punto sia il modulo di protezione hardware di origine (ContosoMHSM) che il modulo di protezione hardware di destinazione (ContosoMHSM2) hanno lo stesso dominio di sicurezza. È ora possibile ripristinare un backup completo dal modulo di protezione hardware di origine nel modulo di protezione hardware di destinazione.

Backup e ripristino

Prima di eseguire un ripristino completo del modulo di protezione hardware, è sempre consigliabile eseguire un backup completo, in modo da avere un punto di ripristino in caso di problemi con il ripristino. A tale scopo, è possibile usare uno dei due metodi seguenti: identità gestita assegnata dall'utente o token di firma di accesso condiviso.

Creare un backup (come punto di ripristino) del nuovo modulo di protezione hardware

Per creare un backup del modulo di protezione hardware, sarà necessario:

  • Un account di archiviazione in cui verrà archiviato il backup
  • Un contenitore di archiviazione BLOB in questo account di archiviazione in cui il processo di backup creerà una nuova cartella per l'archiviazione del backup crittografato
  • Identità gestita assegnata dall'utente con il ruolo collaboratore ai dati BLOB Archiviazione nel token di firma di accesso condiviso dell'account di archiviazione O del contenitore di archiviazione con autorizzazioni "crdw"

Il comando az keyvault backup viene usato per il backup del modulo di protezione hardware nel contenitore di archiviazione mhsmbackupcontainer, che si trova nell'account di archiviazione mhsmdemobackup negli esempi seguenti.

Se si usa il metodo di identità gestita assegnato dall'utente, è necessario specificare l'identità gestita assegnata dall'utente con il --mi-user-assigned parametro e associarlo al modulo di protezione hardware gestito prima di scrivere il backup nell'esempio seguente.

az keyvault update-hsm --hsm-name ContosoMHSM2 --mi-user-assigned "/subscriptions/subid/resourcegroups/mhsmrgname/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userassignedidentityname"
az keyvault backup start --use-managed-identity true --hsm-name ContosoMHSM2 --storage-account-name mhsmdemobackup --blob-container-name mhsmbackupcontainer

Ripristinare il backup del modulo di protezione hardware di origine

Per questo passaggio, sarà necessario:

  • L'account di archiviazione e il contenitore BLOB in cui sono archiviati i backup del modulo di protezione hardware di origine.
  • Il nome della cartella da cui ripristinare il backup. Se si creano backup regolari, nel contenitore saranno presenti numerose cartelle.

Si usa il comando az keyvault restore per il nuovo modulo di protezione hardware ContosoMHSM2, usando il backup dell'MHSM di origine che si sta tentando di ripristinare, che si trova nel nome della cartella mhsm-ContosoMHSM-2020083120161860 trovato nel contenitore di archiviazione mhsmdemobackupcontainer dell'account di archiviazione ContosoBackup nell'esempio seguente.

Se si usa il metodo di identità gestita assegnato dall'utente, il --use-managed-identity pramater viene impostato su "true".

az keyvault restore start --hsm-name ContosoMHSM2 --storage-account-name ContosoBackup --blob-container-name mhsmdemobackupcontainer --backup-folder mhsm-ContosoMHSM-2020083120161860 --use-managed-identity true

A questo punto è stato completato un processo di ripristino di emergenza completo. Il contenuto del modulo di protezione hardware di origine relativo a quando è stato effettuato il backup viene copiato nel modulo di protezione hardware di destinazione, inclusi tutti i codici, le versioni, gli attributi, i tag e le assegnazioni di ruolo.

Passaggi successivi