Fornecer uma chave de criptografia em uma solicitação ao Armazenamento de blobs

Os clientes que fazem solicitações no Armazenamento de Blobs do Azure podem fornecer uma chave de criptografia AES-256 para criptografar esse blob em uma operação de gravação. As solicitações subsequentes para ler ou gravar no blob devem incluir a mesma chave. A inclusão da chave de criptografia na solicitação proporciona controle granular das configurações de criptografia para operações de armazenamento de blobs. As chaves fornecidas pelo cliente podem ser armazenadas no Azure Key Vault ou em outro repositório de chaves.

Criptografando operações de leitura e gravação

Quando um aplicativo cliente fornece uma chave de criptografia na solicitação, o Armazenamento do Azure executa criptografia e descriptografia de maneira transparente ao ler e gravar dados de blob. O Armazenamento do Azure grava um hash de SHA-256 da chave de criptografia junto com o conteúdo do blob. O hash é usado para verificar se todas as operações subsequentes no blob usam a mesma chave de criptografia.

O Armazenamento do Azure não armazena nem gerencia a chave de criptografia que o cliente envia com a solicitação. A chave será descartada com segurança assim que o processo de criptografia ou descriptografia estiver concluído.

Quando um cliente cria ou atualiza um blob usando uma chave fornecida pelo cliente na solicitação, as solicitações de leitura e gravação subsequentes para esse blob também devem fornecer a chave. Se a chave não for fornecida em uma solicitação a um blob que já foi criptografado com uma chave fornecida pelo cliente, a solicitação falhará com o código de erro 409 (conflito).

Se o aplicativo cliente enviar uma chave de criptografia na solicitação e a conta de armazenamento também for criptografada usando uma chave gerenciada pela Microsoft ou uma chave gerenciada pelo cliente, o Armazenamento do Azure usará a chave fornecida na solicitação de criptografia e descriptografia.

Para enviar a chave de criptografia como parte da solicitação, um cliente deve estabelecer uma conexão segura com o Armazenamento do Azure usando HTTPS.

Cada instantâneo de blob ou versão de blob pode ter sua própria chave de criptografia.

Não há suporte para replicação de objeto para blobs na conta de origem que são criptografados com uma chave fornecida pelo cliente.

Cabeçalhos de solicitação para especificar chaves fornecidas pelo cliente

Para chamadas REST, os clientes podem usar os seguintes cabeçalhos para transmitir informações de chave de criptografia com segurança em uma solicitação ao armazenamento de Blobs:

Cabeçalho da solicitação Descrição
x-ms-encryption-key Necessário para solicitações de gravação e leitura. Um valor de chave de criptografia AES-256 codificado em Base64.
x-ms-encryption-key-sha256 Necessário para solicitações de gravação e leitura. A SHA256 codificada em Base64 da chave de criptografia.
x-ms-encryption-algorithm Necessário para solicitações de gravação, opcional para solicitações de leitura. Especifica o algoritmo a ser usado ao criptografar dados usando a chave especificada. O valor deste cabeçalho deve ser AES256.

A especificação de chaves de criptografia na solicitação é opcional. No entanto, se você especificar um dos cabeçalhos listados acima para uma operação de gravação, deverá especificar todos eles.

Operações de armazenamento de blobs que dão suporte a chaves fornecidas pelo cliente

As operações de armazenamento de blobs a seguir dão suporte ao envio de chaves de criptografia fornecidas pelo cliente em uma solicitação:

Girar chaves fornecidas pelo cliente

Para girar uma chave de criptografia que foi usada para criptografar um blob, baixe o blob e carregue-o novamente com a nova chave de criptografia.

Importante

O portal do Azure não pode ser usado para ler ou gravar em um contêiner ou blob que é criptografado com uma chave fornecida na solicitação.

Proteja a chave de criptografia que você fornece em uma solicitação para o armazenamento de Blobs em um repositório de chaves seguro, como o Azure Key Vault. Se você tentar fazer uma operação de gravação em um contêiner ou blob sem a chave de criptografia, a operação falhará e você perderá o acesso ao objeto.

Suporte a recursos

O suporte para esse recurso pode ser afetado ao habilitar o Data Lake Storage Gen2, o protocolo NFS (Sistema de Arquivos de Rede) 3.0 ou o protocolo SFTP (Protocolo de Transferência de Arquivo SSH). Se você tiver habilitado qualquer um desses recursos, consulte o Suporte a recursos de Armazenamento de Blobs nas contas de Armazenamento do Azure para avaliar o suporte para esse recurso.

Próximas etapas