Fornecer uma chave de criptografia em uma solicitação para o armazenamento de Blob

Os clientes que fazem solicitações no armazenamento de Blob do Azure podem fornecer uma chave de criptografia AES-256 para criptografar esse blob em uma operação de gravação. Solicitações subsequentes para ler ou gravar no blob devem incluir a mesma chave. A inclusão da chave de criptografia na solicitação fornece controle granular sobre as configurações de criptografia para operações de armazenamento de Blob. As chaves fornecidas pelo cliente podem ser armazenadas no Cofre de Chaves do Azure ou em outro armazenamento 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 a criptografia e a descriptografia de forma transparente ao ler e gravar dados de blob. O Armazenamento do Microsoft Azure escreve um hash SHA-256 da chave de encriptação junto ao conteúdo do blob. O hash é utilizado para verificar se todas as operações subsequentes relativamente ao blob utilizam a mesma chave de encriptação.

O Armazenamento do Azure não armazena nem gerencia a chave de criptografia que o cliente envia com a solicitação. A chave é eliminada de forma segura assim que o processo de encriptação ou desencriptação estiver concluído.

Quando um cliente cria ou atualiza um blob usando uma chave fornecida pelo cliente na solicitação, as solicitações subsequentes de leitura e gravação para esse blob também devem fornecer a chave. Se a chave não for fornecida em uma solicitação para 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 objetos para blobs na conta de origem 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 passar com segurança informações de chave de criptografia em uma solicitação para o armazenamento de Blob:

Cabeçalho do Pedido 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. O SHA256 codificado em Base64 da chave de criptografia.
x-ms-encryption-algorithm Obrigatório para pedidos de escrita, opcional para pedidos de leitura. Especifica o algoritmo a ser usado ao criptografar dados usando a chave fornecida. 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 Blob que suportam chaves fornecidas pelo cliente

As seguintes operações de armazenamento de Blob oferecem 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 recarregue-o 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 criptografado com uma chave fornecida na solicitação.

Certifique-se de proteger a chave de criptografia que você fornece em uma solicitação para o armazenamento de Blob em um armazenamento de chaves seguro como o Azure Key Vault. Se você tentar 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 de funcionalidades

O suporte para esse recurso pode ser afetado pela habilitação do Data Lake Storage Gen2, do protocolo NFS (Network File System) 3.0 ou do SSH File Transfer Protocol (SFTP). Se você habilitou qualquer um desses recursos, consulte Suporte ao recurso de Armazenamento de Blob nas contas de Armazenamento do Azure para avaliar o suporte para esse recurso.

Próximos passos