Konfigurera kryptering med kundhanterade nycklar som lagras i Azure Key Vault Managed HSM

Azure Storage krypterar alla data i ett vilande lagringskonto. Som standard krypteras data med Microsoft-hanterade nycklar. Om du vill ha ytterligare kontroll över krypteringsnycklar kan du hantera dina egna nycklar. Kundhanterade nycklar måste lagras i Azure Key Vault eller Key Vault Managed Hardware Security Model (HSM). En Azure Key Vault Managed HSM är en FIPS 140-2 Level 3-verifierad HSM.

Den här artikeln visar hur du konfigurerar kryptering med kundhanterade nycklar som lagras i en hanterad HSM med hjälp av Azure CLI. Information om hur du konfigurerar kryptering med kundhanterade nycklar som lagras i ett nyckelvalv finns i Konfigurera kryptering med kundhanterade nycklar som lagras i Azure Key Vault.

Anteckning

Azure Key Vault och Azure Key Vault Managed HSM stöder samma API:er och hanteringsgränssnitt för konfiguration.

Tilldela en identitet till lagringskontot

Tilldela först lagringskontot en systemtilldelad hanterad identitet. Du använder den här hanterade identiteten för att ge lagringskontot behörighet att komma åt den hanterade HSM:en. Mer information om systemtilldelade hanterade identiteter finns i Vad är hanterade identiteter för Azure-resurser?.

Om du vill tilldela en hanterad identitet med hjälp av Azure CLI anropar du az storage account update. Kom ihåg att ersätta platshållarvärdena inom hakparentes med dina egna värden:

az storage account update \
    --name <storage-account> \
    --resource-group <resource_group> \
    --assign-identity

Tilldela en roll till lagringskontot för åtkomst till den hanterade HSM:en

Tilldela sedan rollen Managed HSM Crypto Service Encryption User till lagringskontots hanterade identitet så att lagringskontot har behörighet till den hanterade HSM:en. Microsoft rekommenderar att du omfångsbegränsar rolltilldelningen till nivån för den enskilda nyckeln för att ge minsta möjliga behörighet till den hanterade identiteten.

Om du vill skapa rolltilldelningen för lagringskontot anropar du az key vault role assignment create. Kom ihåg att ersätta platshållarvärdena inom hakparenteser med dina egna värden.

storage_account_principal = $(az storage account show \
    --name <storage-account> \
    --resource-group <resource-group> \
    --query identity.principalId \
    --output tsv)

az keyvault role assignment create \
    --hsm-name <hsm-name> \
    --role "Managed HSM Crypto Service Encryption User" \
    --assignee $storage_account_principal \
    --scope /keys/<key-name>

Konfigurera kryptering med en nyckel i den hanterade HSM:en

Konfigurera slutligen Azure Storage kryptering med kundhanterade nycklar för att använda en nyckel som lagras i den hanterade HSM:en. Nyckeltyper som stöds är RSA-HSM-nycklar i storlekarna 2048, 3072 och 4096. Information om hur du skapar en nyckel i en hanterad HSM finns i Skapa en HSM-nyckel.

Installera Azure CLI 2.12.0 eller senare för att konfigurera kryptering för att använda en kundhanterad nyckel i en hanterad HSM. Mer information finns i Installera Azure CLI.

Om du vill uppdatera nyckelversionen för en kundhanterad nyckel automatiskt utelämnar du nyckelversionen när du konfigurerar kryptering med kundhanterade nycklar för lagringskontot. Mer information om hur du konfigurerar kryptering för automatisk nyckelrotation finns i Uppdatera nyckelversionen.

Anropa sedan az storage account update för att uppdatera lagringskontots krypteringsinställningar, som du ser i följande exempel. --encryption-key-source parameter Inkludera och ange den till Microsoft.Keyvault för att aktivera kundhanterade nycklar för kontot. Kom ihåg att ersätta platshållarvärdena inom hakparenteser med dina egna värden.

hsmurl = $(az keyvault show \
    --hsm-name <hsm-name> \
    --query properties.hsmUri \
    --output tsv)

az storage account update \
    --name <storage-account> \
    --resource-group <resource_group> \
    --encryption-key-name <key> \
    --encryption-key-source Microsoft.Keyvault \
    --encryption-key-vault $hsmurl

Om du vill uppdatera versionen för en kundhanterad nyckel manuellt inkluderar du nyckelversionen när du konfigurerar kryptering för lagringskontot:

az storage account update
    --name <storage-account> \
    --resource-group <resource_group> \
    --encryption-key-name <key> \
    --encryption-key-version $key_version \
    --encryption-key-source Microsoft.Keyvault \
    --encryption-key-vault $hsmurl

När du uppdaterar nyckelversionen manuellt måste du uppdatera lagringskontots krypteringsinställningar så att den nya versionen används. Börja med att fråga efter nyckelvalvets URI genom att anropa az keyvault show och för nyckelversionen genom att anropa az keyvault key list-versions. Anropa sedan az storage account update för att uppdatera lagringskontots krypteringsinställningar för att använda den nya versionen av nyckeln, som du ser i föregående exempel.

Nästa steg