Récupération d’urgence du HSM managéManaged HSM disaster recovery

Vous souhaiterez peut-être créer un réplica exact de votre HSM si l’original est perdu ou indisponible pour l’une des raisons suivantes :You may wish to create an exact replica of your HSM if the original is lost or unavailable due to any of the below reasons:

  • Il a été supprimé, puis vidé.It was deleted and then purged.
  • Une défaillance irrémédiable a eu lieu dans la région, entraînant la destruction de toutes les partitions membres.A catastrophic failure in the region resulted in all member partitions being destroyed.

Vous pouvez recréer l’instance HSM dans la même région ou dans une autre région si vous disposez des éléments suivants :You can re-create the HSM instance in same or different region if you have the following:

  • Le domaine de sécurité du HSM source.The Security Domain of the source HSM.
  • Les clés privées (au moins le numéro de quorum) qui chiffrent le domaine de sécurité.The private keys (at least quorum number) that encrypt the security domain.
  • La sauvegarde complète la plus récente du HSM réalisée à partir du HSM source.The most recent full HSM backup from the source HSM.

Voici les étapes de la récupération d’urgence :Here are the steps of the disaster recovery procedure:

  1. Créer une instance HSM.Create a new HSM Instance.
  2. Activez la « Récupération du domaine de sécurité ».Activate "Security Domain recovery". Une nouvelle paire de clés RSA (clé d’échange de domaine de sécurité) sera générée pour le transfert du domaine de sécurité puis envoyée en réponse, laquelle sera téléchargée sous forme de clé publique SecurityDomainExchangeKey.A new RSA key pair (Security Domain Exchange Key) will be generated for Security Domain transfer and sent in response, which will be downloaded as a SecurityDomainExchangeKey (public key).
  3. Créez puis chargez le « Fichier de transfert de domaine de sécurité ».Create and then upload the "Security Domain Transfer File". Vous aurez besoin des clés privées qui chiffrent le domaine de sécurité.You will need the private keys that encrypt the security domain. Les clés privées sont utilisées localement et ne sont pas transférées lors de ce processus.The private keys are used locally, and never transferred anywhere in this process.
  4. Effectuez une sauvegarde du nouveau HSM.Take a backup of the new HSM. Une sauvegarde est nécessaire avant toute restauration, même si le HSM est vide.A backup is required before any restore, even when the HSM is empty. Les sauvegardes permettent d’effectuer des restaurations simples.Backups allow for easy roll-back.
  5. Restaurer la sauvegarde la plus récente du HSM à partir du HSM sourceRestore the recent HSM backup from the source HSM

Ces étapes vont vous permettre de répliquer manuellement le contenu du HSM dans une autre région.These steps will enable you to manually replicate contents of the HSM to another region. Le nom du HSM (et l’URI du point de terminaison de service) seront différents. Vous devrez donc peut-être modifier la configuration de votre application pour utiliser ces clés à partir d’un autre emplacement.The HSM name (and the service endpoint URI) will be different, so you may have to change your application configuration to make use of these keys from a different location.

Créer un HSM managéCreate a new managed HSM

Utilisez la commande az keyvault create pour créer un HSM managé.Use the az keyvault create command to create a Managed HSM. Ce script a trois paramètres obligatoires : le nom d’un groupe de ressources, le nom d’un HSM et l’emplacement géographique.This script has three mandatory parameters: a resource group name, an HSM name, and the geographic location.

Vous devez fournir les entrées suivantes pour créer une ressource de HSM managé :You must provide the following inputs to create a Managed HSM resource:

  • Le nom du HSM.The name for the HSM.
  • Le groupe de ressources dans lequel il sera placé, à l’intérieur de votre abonnement.The resource group where it will be placed in your subscription.
  • L’emplacement Azure.The Azure location.
  • La liste des administrateurs initiaux.A list of initial administrators.

L’exemple ci-dessous crée un HSM nommé ContosoMHSM dans le groupe de ressources ContosoResourceGroup qui réside à l’emplacement USA Est 2, avec l’utilisateur actuellement connecté comme seul administrateur.The example below creates an HSM named ContosoMHSM, in the resource group ContosoResourceGroup, residing in the East US 2 location, with the current signed in user as the only administrator.

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

Nota

La création peut prendre quelques minutes.The create command can take a few minutes. Une fois celle-ci terminée, vous êtes prêt à activer votre HSM.Once it returns successfully, you are ready to activate your HSM.

La sortie de cette commande affiche les propriétés du HSM managé que vous avez créé.The output of this command shows properties of the Managed HSM that you've created. Les deux propriétés les plus importantes sont :The two most important properties are:

  • nom : Dans l’exemple, son nom est ContosoMHSM.name: In the example, the name is ContosoMHSM. Vous allez utiliser ce nom pour d’autres commandes Key Vault.You'll use this name for other Key Vault commands.
  • hsmUri : Dans l’exemple, l’URI est « https://contosohsm.managedhsm.azure.net  ».hsmUri: In the example, the URI is 'https://contosohsm.managedhsm.azure.net.' les applications qui utilisent votre HSM via son API REST doivent utiliser cet URI.Applications that use your HSM through its REST API must use this URI.

Votre compte Azure est pour l’instant le seul autorisé à effectuer des opérations sur ce HSM managé.Your Azure account is now authorized to perform any operations on this Managed HSM. À l’heure actuelle, personne d’autre n’y est autorisé.As of yet, nobody else is authorized.

Activer le mode Récupération du domaine de sécuritéActivate the Security Domain recovery mode

Dans le processus de création normal, à ce stade, nous initialisons puis téléchargeons un nouveau domaine de sécurité.In the normal create process, we initialize and download a new Security Domain at this point. Toutefois, étant donné que nous exécutons une procédure de récupération d’urgence, nous demandons au HSM de passer en mode de récupération de domaine de sécurité et de télécharger une clé d’échange de domaine de sécurité.However, since we are executing a disaster recovery procedure, we request the HSM to enter Security Domain Recovery Mode and download a Security Domain Exchange Key. La clé d’échange de domaine de sécurité est une clé publique RSA qui sera utilisée pour chiffrer le domaine de sécurité avant son chargement dans le HSM.The Security Domain Exchange Key is an RSA public key that will be used to encrypt the security domain before uploading it to the HSM. La clé privée correspondante est protégée dans le HSM, afin de sécuriser le contenu de votre domaine de sécurité pendant le transfert.The corresponding private key is protected inside the HSM, to keep your Security Domain contents safe during the transfer.

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

Charger le domaine de sécurité dans le HSM de destinationUpload Security Domain to destination HSM

Pour cette étape, vous aurez besoin des éléments suivants :For this step you will need following:

  • La clé d’échange de domaine de sécurité que vous avez téléchargée à l’étape précédente.The Security Domain Exchange Key you downloaded in previous step.
  • Le domaine de sécurité du HSM source.The Security Domain of the source HSM.
  • Au moins le numéro de quorum des clés privées qui sont utilisées pour chiffrer le domaine de sécurité.At least quorum number of private keys that were used to encrypt the security domain.

La commande az keyvault security-domain upload effectue les opérations suivantes :The az keyvault security-domain upload command performs following operations:

  • Déchiffre le domaine de sécurité du HSM source à l’aide des clés privées que vous fournissezDecrypt the source HSM's Security Domain with the private keys you supply.
  • Crée un objet blob de chargement de domaine de sécurité chiffré à partir de la clé d’échange de domaine de sécurité que nous avons téléchargée à l’étape précédenteCreate a Security Domain Upload blob encrypted with the Security Domain Exchange Key we downloaded in the previous step and then
  • Charge l’objet blob de chargement de domaine de sécurité dans le HSM pour effectuer la récupération du domaine de sécuritéUpload the Security Domain Upload blob to the HSM to complete security domain recovery

Dans l’exemple ci-dessous, nous utilisons le domaine de ContosoMHSM ainsi que les deux clés privées correspondantes, puis nous les chargeons dans ContosoMHSM2, qui attend de recevoir un domaine de sécurité.In the example below, we use the Security Domain from the ContosoMHSM, the 2 of the corresponding private keys, and upload it to ContosoMHSM2, which is waiting to receive a Security Domain.

az keyvault security-domain upload --hsm-name ContosoMHSM2 --sd-exchange-key ContosoMHSM-SDE.cer --sd-file ContosoMHSM-SD.json --sd-wrapping-keys cert_0.key cert_1.key

Désormais, le HSM source (ContosoMHSM) et le HSM de destination (ContosoMHSM2) ont le même domaine de sécurité.Now both the source HSM (ContosoMHSM) and the destination HSM (ContosoMHSM2) have the same security domain. Nous pouvons maintenant restaurer une sauvegarde complète à partir du HSM source dans le HSM de destination.We can now restore a full backup from the source HSM into the destination HSM.

Créer une sauvegarde (comme point de restauration) de votre nouveau HSMCreate a backup (as a restore point) of your new HSM

Il est toujours judicieux de procéder à une sauvegarde complète avant d’exécuter une restauration HSM complète, afin de disposer d’un point de restauration en cas de problème avec la restauration.It is always a good idea to take a full backup before you execute a full HSM restore, so that you have a restore point in case something goes wrong with the restore.

Pour créer une sauvegarde HSM, vous aurez besoin des éléments suivants :To create an HSM backup, you will need the following

  • Un compte de stockage dans lequel stocker la sauvegardeA storage account where the backup will be stored
  • Un conteneur Stockage Blob situé dans ce compte de stockage, dans lequel le processus de sauvegarde créera un nouveau dossier où stocker les sauvegardes chiffréesA blob storage container in this storage account where the backup process will create a new folder to store encrypted backup

Nous appliquons la commande az keyvault backup à la sauvegarde du HSM dans le conteneur de stockage mhsmbackupcontainer, qui se trouve dans le compte de stockage ContosoBackup pour l’exemple ci-dessous.We use az keyvault backup command to the HSM backup in the storage container mhsmbackupcontainer, which is in the storage account ContosoBackup for the example below. Nous créons un jeton SAS qui expire au bout de 30 minutes et nous le fournissons au HSM managé pour l’écriture de la sauvegarde.We create a SAS token that expires in 30 minutes and provide that to Managed HSM to write the backup.

end=$(date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ')
skey=$(az storage account keys list --query '[0].value' -o tsv --account-name ContosoBackup)
az storage container create --account-name  mhsmdemobackup --name mhsmbackupcontainer  --account-key $skey
sas=$(az storage container generate-sas -n mhsmbackupcontainer --account-name ContosoBackup --permissions crdw --expiry $end --account-key $skey -o tsv)
az keyvault backup start --hsm-name ContosoMHSM2 --storage-account-name ContosoBackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas

Restaurer la sauvegarde à partir du HSM sourceRestore backup from source HSM

Pour cette étape, vous aurez besoin des éléments suivants :For this step you need the following:

  • Le compte de stockage et le conteneur d’objets blob où sont stockées les sauvegardes du HSM sourceThe storage account and the blob container where the source HSM's backups are stored.
  • Le nom du dossier à partir duquel vous souhaitez restaurer la sauvegardeThe folder name from where you want to restore the backup. Si vous créez des sauvegardes régulièrement, il y aura de nombreux dossiers à l’intérieur de ce conteneur.If you create regular backups, there will be many folders inside this container.
end=$(date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ')
skey=$(az storage account keys list --query '[0].value' -o tsv --account-name ContosoBackup)
sas=$(az storage container generate-sas -n mhsmdemobackupcontainer --account-name ContosoBackup --permissions rl --expiry $end --account-key $skey -o tsv)
az keyvault restore start --hsm-name ContosoMHSM2 --storage-account-name ContosoBackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --backup-folder mhsm-ContosoMHSM-2020083120161860

Vous avez maintenant terminé le processus complet de récupération d’urgence.Now you have completed a full disaster recovery process. Le contenu du HSM source au moment de la sauvegarde est copié dans le HSM de destination, ainsi que l’ensemble des clés, versions, attributs, étiquettes et attributions de rôles.The contents of the source HSM when the backup was taken are copied to the destination HSM, including all the keys, versions, attributes, tags, and role assignments.

Étapes suivantesNext steps