Configure a criptografia com chaves gerenciadas pelo cliente armazenadas no HSM gerenciado pelo Azure Key Vault

O Armazenamento do Azure criptografa todos os dados em uma conta de armazenamento em repouso. Por padrão, os dados são criptografados com chaves gerenciadas pela Microsoft. Para ter mais controle sobre as chaves de criptografia, você pode gerenciar as próprias chaves. As chaves gerenciadas pelo cliente precisam ser armazenadas no Azure Key Vault ou no HSM (Modelo de Segurança de Hardware) Gerenciado do Key Vault. Um HSM Gerenciado do Azure Key Vault é um HSM validado pelo FIPS 140-2 nível 3.

Este artigo mostra como configurar a criptografia com chaves gerenciadas pelo cliente armazenadas em um HSM gerenciado usando a CLI do Azure. Para saber como configurar a criptografia com chaves gerenciadas pelo cliente armazenadas em um cofre de chaves, confira Configurar a criptografia com chaves gerenciadas pelo cliente armazenadas no Azure Key Vault.

Observação

O Azure Key Vault e o HSM gerenciado pelo Azure Key Vault oferecem suporte às mesmas APIs e interfaces de gerenciamento para configuração.

Atribuir uma identidade à conta de armazenamento

Primeiro, atribua uma identidade gerenciada atribuída pelo sistema à conta de armazenamento. Você usará essa identidade gerenciada para conceder permissões de conta de armazenamento para acessar o HSM gerenciado. Para obter mais informações sobre identidades gerenciadas atribuídas pelo sistema, confira O que são identidades gerenciadas para recursos do Azure?.

Para atribuir uma identidade gerenciada usando a CLI do Azure, chame az storage account update. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus valores:

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

Atribuir uma função à conta de armazenamento para acessar o HSM gerenciado

Em seguida, atribua a função Usuário de Criptografia do Serviço de Criptografia do HSM Gerenciado à identidade gerenciada da conta de armazenamento para que a conta de armazenamento tenha permissões para o HSM Gerenciado. A Microsoft recomenda que você atribua o escopo da atribuição de função no nível da chave individual para conceder o mínimo possível de privilégios à identidade gerenciada.

Para criar a atribuição de função para a conta de armazenamento, chame az key vault role assignment create. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus valores.

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>

Configurar a criptografia com uma chave no HSM gerenciado

Por fim, configure a criptografia de Armazenamento do Azure com chaves gerenciadas pelo cliente para usar uma chave armazenada no HSM gerenciado. Os tipos de chave com suporte incluem chaves RSA-HSM de tamanhos 2048, 3072 e 4096. Para saber como criar uma chave em um HSM gerenciado, confira Criar uma Chave HSM.

Instale a CLI do Azure 2.12.0 ou posterior para configurar a criptografia para usar uma chave gerenciada pelo cliente em um HSM gerenciado. Para obter mais informações, consulte Instalar a CLI do Azure.

Para atualizar automaticamente a versão de chave de uma chave gerenciada pelo cliente, omita a versão de chave ao configurar a criptografia com chaves gerenciadas pelo cliente para a conta de armazenamento. Para obter mais informações sobre como configurar a criptografia para rotação automática de chaves, confira Atualizar a versão da chave.

Em seguida, chame az storage account update para atualizar as configurações de criptografia da conta de armazenamento, conforme mostrado no exemplo a seguir. Inclua o --encryption-key-source parameter e defina-o como Microsoft.Keyvault para habilitar chaves gerenciadas pelo cliente para a conta. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus valores.

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

Para atualizar manualmente a versão de uma chave gerenciada pelo cliente, inclua a versão da chave ao configurar a criptografia para a conta de armazenamento:

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

Ao atualizar manualmente a versão de chave, você precisará atualizar as configurações de criptografia da conta de armazenamento para usar a nova versão. Primeiro, consulte o URI do cofre de chaves chamando az keyvault show e para a versão de chave chamando az keyvault key list-versions. Depois, chame az storage account update para atualizar as configurações de criptografia da conta de armazenamento para usar a nova versão da chave, conforme mostrado no exemplo anterior.

Próximas etapas