Fornecer uma chave de encriptação num pedido 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.

Encriptação de operações de leitura e escrita

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 com uma chave fornecida pelo cliente no pedido, os pedidos subsequentes de leitura e escrita desse blob também têm de fornecer a chave. Se a chave não for fornecida num pedido para um blob que já foi encriptado com uma chave fornecida pelo cliente, então o pedido falha 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 para encriptação e desencriptação.

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 a sua própria chave de criptografia.

A replicação de objetos não é suportada para blobs na conta de origem que estejam 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 da chave de encriptação num pedido para o 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. 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 especificar um dos cabeçalhos listados acima para uma operação de gravação, terá de especificar todos eles.

Se estiveres a usar um SAS de delegação de utilizador e o signedVersion (sv) estiver definido para 06-04-2026 ou posterior, podes usar os parâmetros de consulta srh e srq para exigir cabeçalhos e parâmetros de consulta específicos em qualquer pedido que utilize o SAS, com o Armazenamento do Azure a validar os seus valores contra strings canonizadas incluídas na string-to-sign. Para obter mais informações, consulte Criar uma SAS de delegação de usuário.

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 num pedido:

Rodar chaves fornecidas pelo cliente

Para rodar uma chave de encriptação que foi usada para encriptar um blob, baixe o blob e recarregue-o com a nova chave de encriptação.

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 fornece num pedido para o armazenamento de Blob num 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 da funcionalidade Armazenamento de Blobs nas contas do Armazenamento do Azure para avaliar o suporte para esse recurso.

Próximos passos