Configurar chaves gerenciadas pelo cliente para criptografia de armazenamento do Azure da CLI do AzureConfigure customer-managed keys for Azure Storage encryption from Azure CLI

O armazenamento do Azure dá suporte à criptografia em repouso com chaves gerenciadas pela Microsoft ou chaves gerenciadas pelo cliente.Azure Storage supports encryption at rest with either Microsoft-managed keys or customer-managed keys. Chaves gerenciadas pelo cliente permitem que você criar, girar, desabilitar e revogar os controles de acesso.Customer-managed keys enable you to create, rotate, disable, and revoke access controls.

Use o Azure Key Vault para gerenciar suas chaves e auditar o uso.Use Azure Key Vault to manage your keys and audit your key usage. Você pode criar suas próprias chaves e armazená-los em um cofre de chaves, ou você pode usar as APIs do Azure Key Vault para gerar chaves.You can either create your own keys and store them in a key vault, or you can use the Azure Key Vault APIs to generate keys. A conta de armazenamento e o cofre de chaves devem estar na mesma região, mas podem estar em assinaturas diferentes.The storage account and the key vault must be in the same region, but they can be in different subscriptions. Para obter mais informações sobre o Cofre da Chave do Azure, consulte O que é o Cofre da Chave do Azure?For more information about Azure Key Vault, see What is Azure Key Vault?

Este artigo mostra como configurar um cofre de chaves com chaves gerenciadas pelo cliente usando a CLI do Azure.This article shows how to configure a key vault with customer-managed keys using Azure CLI.

Atribuir uma identidade para a conta de armazenamentoAssign an identity to the storage account

Para habilitar as chaves gerenciadas pelo cliente para sua conta de armazenamento, primeiro atribua uma identidade gerenciada atribuído pelo sistema para a conta de armazenamento.To enable customer-managed keys for your storage account, first assign a system-assigned managed identity to the storage account. Você usará essa identidade gerenciada para conceder as permissões de conta de armazenamento para acessar o Cofre de chaves.You'll use this managed identity to grant the storage account permissions to access the key vault.

Para atribuir uma identidade gerenciada usando a CLI do Azure, chame atualização de conta de armazenamento az.To assign a managed identity using Azure CLI, call az storage account update. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores.Remember to replace the placeholder values in brackets with your own values.

az account set --subscription <subscription-id>

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

Para obter mais informações sobre a configuração atribuída pelo sistema de identidades gerenciadas com a CLI do Azure, consulte configurar gerenciadas identidades para recursos do Azure em uma VM do Azure usando a CLI do Azure.For more information about configuring system-assigned managed identities with Azure CLI, see Configure managed identities for Azure resources on an Azure VM using Azure CLI.

Criar um novo cofre de chavesCreate a new key vault

O Cofre de chaves que você usa para armazenar chaves gerenciadas pelo cliente para criptografia de armazenamento do Azure deve ter duas configurações de proteção de chave habilitadas, exclusão reversível e não limpar.The key vault that you use to store customer-managed keys for Azure Storage encryption must have two key protection settings enabled, Soft Delete and Do Not Purge. Para criar um novo cofre de chaves usando o PowerShell ou CLI do Azure com essas configurações habilitadas, execute os comandos a seguir.To create a new key vault using PowerShell or Azure CLI with these settings enabled, execute the following commands. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores.Remember to replace the placeholder values in brackets with your own values.

Para criar um novo cofre de chaves usando a CLI do Azure, chame az creata.To create a new key vault using Azure CLI, call az keyvault create. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores.Remember to replace the placeholder values in brackets with your own values.

az keyvault create \
    --name <key-vault> \
    --resource-group <resource_group> \
    --location <region> \
    --enable-soft-delete \
    --enable-purge-protection

Configurar a política de acesso do Cofre de chavesConfigure the key vault access policy

Em seguida, configure a política de acesso para o Cofre de chaves para que a conta de armazenamento tem permissões para acessá-lo.Next, configure the access policy for the key vault so that the storage account has permissions to access it. Nesta etapa, você usará a identidade gerenciada atribuídos previamente a conta de armazenamento.In this step, you'll use the managed identity that you previously assigned to the storage account.

Para definir a política de acesso para o Cofre de chaves, chame az keyvault set-policy.To set the access policy for the key vault, call az keyvault set-policy. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores.Remember to replace the placeholder values in brackets with your own values.

storage_account_principal=$(az storage account show \
    --name <storage-account> \
    --resource-group <resource-group> \
    --query identity.principalId \
    --output tsv)
az keyvault set-policy \
    --name <key-vault> \
    --resource-group <resource_group>
    --object-id $storage_account_principal \
    --key-permissions get recover unwrapKey wrapKey

Criar uma nova chaveCreate a new key

Em seguida, crie uma chave no cofre de chaves.Next, create a key in the key vault. Para criar uma chave, chame criar chave de keyvault az.To create a key, call az keyvault key create. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores.Remember to replace the placeholder values in brackets with your own values.

az keyvault key create
    --name <key> \
    --vault-name <key-vault>

Configurar a criptografia com chaves gerenciadas pelo clienteConfigure encryption with customer-managed keys

Por padrão, a criptografia de armazenamento do Azure usa chaves gerenciadas pela Microsoft.By default, Azure Storage encryption uses Microsoft-managed keys. Configurar sua conta de armazenamento do Azure para chaves gerenciadas pelo cliente e especifique a chave para associar a conta de armazenamento.Configure your Azure Storage account for customer-managed keys and specify the key to associate with the storage account.

Para atualizar as configurações de criptografia da conta de armazenamento, chame atualização de conta de armazenamento az.To update the storage account's encryption settings, call az storage account update. Este exemplo também consulta para o URI de Cofre de chaves e a versão da chave, ambos os valores que são necessárias para associar a chave com a conta de armazenamento.This example also queries for the key vault URI and key version, both of which values are needed to associate the key with the storage account. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus próprios valores.Remember to replace the placeholder values in brackets with your own values.

key_vault_uri=$(az keyvault show \
    --name <key-vault> \
    --resource-group <resource_group> \
    --query properties.vaultUri \
    --output tsv)
key_version=$(az keyvault key list-versions \
    --name <key> \
    --vault-name <key-vault> \
    --query [].kid \
    --output tsv | cut -d '/' -f 6)
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 $key_vault_uri

Atualizar a versão da chaveUpdate the key version

Quando você cria uma nova versão de uma chave, você precisará atualizar a conta de armazenamento para usar a nova versão.When you create a new version of a key, you'll need to update the storage account to use the new version. Primeiro, consultar o URI do Cofre de chaves, chamando show do az keyvaulte para a versão da chave chamando versões lista az keyvault chave.First, query for the key vault URI by calling az keyvault show, and for the key version by calling az keyvault key list-versions. Em seguida, chame atualização de conta de armazenamento az para atualizar as configurações de criptografia da conta de armazenamento para usar a nova versão da chave, como mostrado na seção anterior.Then call az storage account update to update the storage account's encryption settings to use the new version of the key, as shown in the previous section.

Próximas etapasNext steps