Hanterad HSM-haveriberedskap

Du kanske vill skapa en exakt replik av din HSM om originalet går förlorat eller inte är tillgängligt på grund av något av följande:

  • Den togs bort och rensades sedan.
  • Ett oåterkalleligt fel i regionen resulterade i att alla medlemspartitioner förstördes.

Du kan återskapa HSM-instansen i samma eller en annan region om du har:

  • Säkerhetsdomänen för källans HSM.
  • De privata nycklar (minst kvorumnummer) som krypterar säkerhetsdomänen.
  • Den senaste fullständiga HSM-säkerhetskopieringen från HSM-källan.

Här följer stegen i haveriberedskapsproceduren:

  1. Skapa en ny HSM-instans.
  2. Aktivera "Security Domain Recovery". Ett nytt RSA-nyckelpar (Security Domain Exchange Key) genereras för överföring av säkerhetsdomäner och skickas som svar, som laddas ned som en SecurityDomainExchangeKey (offentlig nyckel).
  3. Skapa och ladda sedan upp "Security Domain Transfer File". Du behöver de privata nycklar som krypterar säkerhetsdomänen. De privata nycklarna används lokalt och överförs aldrig någonstans i den här processen.
  4. Gör en säkerhetskopia av den nya HSM:n. En säkerhetskopia krävs före en återställning, även när HSM är tom. Säkerhetskopieringar möjliggör enkel återställning.
  5. Återställ den senaste HSM-säkerhetskopieringen från HSM-källan.

Med de här stegen kan du manuellt replikera innehållet i HSM till en annan region. HSM-namnet (och tjänstslutpunkts-URI: n) kommer att vara annorlunda, så du måste ändra programkonfigurationen för att använda dessa nycklar från en annan plats.

Skapa en ny hanterad HSM

az keyvault create Använd kommandot för att skapa en hanterad HSM. Det här skriptet har tre obligatoriska parametrar: ett resursgruppsnamn, ett HSM-namn och den geografiska platsen.

Du måste ange följande indata för att skapa en hanterad HSM-resurs:

  • Namnet på HSM.
  • Den resursgrupp där den ska placeras i din prenumeration.
  • Azure-platsen.
  • En lista över inledande administratörer.

I följande exempel skapas en HSM med namnet ContosoMHSM2 i resursgruppen ContosoResourceGroup, som finns på platsen USA, västra 3 , med den aktuella inloggade användaren som enda administratör.

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

Kommentar

Det kan ta några minuter att skapa kommandot. När den har returnerats är du redo att aktivera din HSM.

Varning

Hanterade HSM-instanser anses alltid vara i bruk. Om du väljer att aktivera rensningsskydd med hjälp av --enable-purge-protection flaggan debiteras du för hela kvarhållningsperioden.

Utdata från det här kommandot visar egenskaperna för den hanterade HSM som du har skapat. De två viktigaste egenskaperna är:

  • name: I exemplet är namnet ContosoMHSM. Du använder det här namnet för andra Key Vault-kommandon.
  • hsmUri: I exemplet är URI:n "https://contosomhsm2.managedhsm.azure.net." Program som använder din HSM via rest-API:et måste använda den här URI:n.

Ditt Azure-konto har nu behörighet att utföra alla åtgärder på denna hanterade HSM. Än så länge har ingen annan behörighet.

Aktivera återställningsläget för säkerhetsdomänen

Nu i den normala skapandeprocessen initierar och laddar vi ned den nya HSM-säkerhetsdomänen. Men eftersom vi kör en haveriberedskapsprocedur ber vi HSM att gå in i Säkerhetsdomänåterställningsläge och ladda ned en Exchange-nyckel för säkerhetsdomäner i stället. Exchange-nyckeln för säkerhetsdomäner är en offentlig RSA-nyckel som ska användas för att kryptera säkerhetsdomänen innan den laddas upp till HSM. Motsvarande privata nyckel skyddas i HSM för att skydda innehållet i säkerhetsdomänen under överföringen.

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

Skapa en säkerhetsdomänuppladdningsblob för källans HSM

För det här steget behöver du:

  • Exchange-nyckeln för säkerhetsdomänen som du laddade ned i föregående steg.
  • Säkerhetsdomänen för källans HSM.
  • Minst kvorumantal privata nycklar som användes för att kryptera säkerhetsdomänen.

Kommandot az keyvault security-domain restore-blob utför följande åtgärder:

  • Dekryptera HSM-källsäkerhetsdomänen med de privata nycklar som du anger.
  • Skapa en Security Domain Upload-blob som krypterats med den Exchange-nyckel för säkerhetsdomäner som vi laddade ned i föregående steg

Det här steget kan utföras offline.

I följande exempel använder vi säkerhetsdomänen från ContosoMHSM, 3 av motsvarande privata nycklar och Security Domain Exchange-nyckeln för att skapa och ladda ned en krypterad blob som vi ska använda för att ladda upp till ContosoMHSM2, som väntar på att få en säkerhetsdomän.

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 

Upload Security Domain Upload blob to destination HSM

Nu använder vi bloben Security Domain Upload som skapades i föregående steg och överför den till mål-HSM för att slutföra återställningen av säkerhetsdomänen. Flaggan --restore-blob används för att förhindra att nycklar exponeras i en onlinemiljö.

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

Nu har både käll-HSM (ContosoMHSM) och målet HSM (ContosoMHSM2) samma säkerhetsdomän. Nu kan vi återställa en fullständig säkerhetskopia från HSM-källan till mål-HSM.

Säkerhetskopiering och återställning

Det är alltid en bra idé att göra en fullständig säkerhetskopia innan du kör en fullständig HSM-återställning, så att du har en återställningspunkt om något skulle gå fel med återställningen. Du kan göra detta med någon av två metoder: användartilldelad hanterad identitet eller SAS-token.

Skapa en säkerhetskopia (som en återställningspunkt) av din nya HSM

Om du vill skapa en HSM-säkerhetskopia behöver du:

  • Ett lagringskonto där säkerhetskopian lagras
  • En bloblagringscontainer i det här lagringskontot där säkerhetskopieringsprocessen skapar en ny mapp för lagring av krypterad säkerhetskopiering
  • En användartilldelad hanterad identitet som har rollen Storage Blob Data Contributor på lagringskontot eller lagringscontainerns SAS-token med behörigheterna "crdw"

Vi använder kommandot az keyvault backup till HSM-säkerhetskopieringen i lagringscontainern mhsmbackupcontainer, som finns i lagringskontot mhsmdemobackup i följande exempel.

Om du använder den användartilldelade metoden för hanterad identitet anger vi den användartilldelade hanterade identiteten med parametern och associerar den --mi-user-assigned med Managed HSM innan du skriver säkerhetskopian i exemplet nedan.

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

Återställa säkerhetskopiering från HSM-källan

För det här steget behöver du:

  • Lagringskontot och blobcontainern där HSM-källsäkerhetskopiorna lagras.
  • Mappnamnet där du vill återställa säkerhetskopian. Om du skapar regelbundna säkerhetskopior finns det många mappar i den här containern.

Vi använder kommandot az keyvault restore till det nya HSM ContosoMHSM2 med hjälp av säkerhetskopieringen av den MHSM-källa som vi försöker återställa, som finns i mappnamnet mhsm-ContosoMHSM-2020083120161860 som finns i lagringscontainern mhsmdemobackupcontainer för lagringskontot ContosoBackup i följande exempel.

Om du använder den användartilldelade metoden för hanterad identitet anger --use-managed-identity vi pramatern till "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

Nu har du slutfört en fullständig haveriberedskapsprocess. Innehållet i HSM-källan när säkerhetskopieringen gjordes kopieras till målets HSM, inklusive alla nycklar, versioner, attribut, taggar och rolltilldelningar.

Nästa steg