Criptografia do Armazenamento do Azure para dados em repouso

O Armazenamento do Microsoft Azure usa a SSE (criptografia no servidor) para criptografar automaticamente os dados quando eles são enviados para a nuvem. A criptografia do Armazenamento do Microsoft Azure protege seus dados e ajuda você a cumprir os compromissos de conformidade e de segurança da sua organização.

A Microsoft recomenda usar a criptografia do lado do serviço para proteger seus dados para a maioria dos cenários. No entanto, as bibliotecas de clientes do Armazenamento do Azure para Armazenamento de Blobs e Armazenamento de Filas também fornecem criptografia do lado do cliente para clientes que precisam criptografar dados no cliente. Para obter mais informações, consulte Criptografia do lado do cliente para blobs e filas.

Sobre a criptografia do lado do serviço do Armazenamento do Azure

Os dados do Armazenamento do Microsoft Azure são criptografados e descriptografados de maneira transparente com a criptografia AES de 256 bits, uma das codificações de bloco mais fortes disponíveis, além de estar em conformidade com o FIPS 140-2. A criptografia de Armazenamento do Microsoft Azure é semelhante à criptografia BitLocker no Windows.

A criptografia de Armazenamento do Microsoft Azure está habilitada para todas as contas de armazenamento, incluindo as contas de armazenamento clássico e do Resource Manager. A criptografia do Armazenamento do Azure não pode ser desabilitada. Como os dados são protegidos por padrão, você não precisa modificar o código nem os aplicativos para aproveitar a criptografia do Armazenamento do Microsoft Azure.

Os dados em uma conta de armazenamento são criptografados independentemente do nível de desempenho (Standard ou Premium), camada de acesso (quente ou frio) ou modelo de implantação (Azure Resource Manager ou clássico). Todos os blobs de blocos novos e existentes, blobs de acréscimo e blobs de página são criptografados, incluindo blobs na camada de arquivos. Todas as opções de redundância do Armazenamento do Microsoft Azure dão suporte à criptografia e todos os dados nas regiões primária e secundária são criptografados quando a replicação geográfica está habilitada. Todos os recursos de Armazenamento do Microsoft Azure são criptografados, incluindo blobs, discos, arquivos, filas e tabelas. Todos os metadados de objeto também são criptografados.

Não há nenhum custo adicional para a criptografia do Armazenamento do Microsoft Azure.

Para saber mais sobre os módulos criptográficos subjacentes à criptografia do Armazenamento do Microsoft Azure, confira API de Criptografia: Próxima geração.

Para saber mais sobre criptografia e gerenciamento de chaves para discos gerenciados pelo Azure, confira Criptografia do servidor para discos gerenciados pelo Azure.

Sobre o gerenciamento de chaves de criptografia

Por padrão, os dados na conta de armazenamento são criptografados com chaves gerenciadas pela Microsoft. Você pode contar com as chaves gerenciadas pela Microsoft para a criptografia dos seus dados ou gerenciar a criptografia com chaves próprias. Se você optar por gerenciar a criptografia com suas próprias chaves, terá duas opções. Você pode usar qualquer um dos dois tipos de gerenciamento de chaves, ou ambos:

  • Você pode especificar uma chave gerenciada pelo cliente a ser usada para criptografar e descriptografar dados no Armazenamento de blobs e nos Arquivos do Azure.1,2 As chaves gerenciadas pelo cliente devem ser armazenadas no Azure Key Vault ou em HSM (Modelo de Segurança de Hardware) gerenciado por Azure Key Vault. Para saber mais sobre chave gerenciada pelo cliente, confira Usar chaves gerenciadas pelo cliente para criptografia do Armazenamento do Microsoft Azure.
  • Você pode especificar uma chave fornecida pelo cliente em operações do Armazenamento de Blobs. Um cliente que faz uma solicitação de leitura ou gravação no Armazenamento de Blobs pode incluir uma chave de criptografia na solicitação de controle granular sobre como os dados de blob são criptografados e descriptografados. Para saber mais sobre chaves fornecidas pelo cliente, confira Fornecer uma chave de criptografia em uma solicitação para o Armazenamento de Blobs.

Por padrão, uma conta de armazenamento é criptografada com uma chave que tem como escopo toda a conta de armazenamento. Os escopos de criptografia permitem o gerenciamento da criptografia com uma chave que tem como escopo um contêiner ou um blob individual. É possível usar escopos de criptografia para criar limites seguros entre os dados que residem na mesma conta de armazenamento, mas pertencem a clientes diferentes. Os escopos de criptografia podem usar chaves gerenciadas pela Microsoft ou chaves gerenciadas pelo cliente. Para obter mais informações sobre escopos de criptografia, consulte Escopos de criptografia para armazenamento de blobs.

A tabela a seguir compara as opções de gerenciamento de chaves para criptografia do Armazenamento do Microsoft Azure.

Parâmetro de gerenciamento de chaves Chaves gerenciadas pela Microsoft Chaves gerenciadas pelo cliente Chaves fornecida pelo cliente
Operações de criptografia/descriptografia Azure Azure Azure
Serviços de Armazenamento do Microsoft Azure com suporte Tudo Armazenamento de Blobs, Arquivos do Azure1,2 Armazenamento de Blobs
Armazenamento de chave Repositório de chaves da Microsoft HSM do Key Vault ou Azure Key Vault Repositório de chaves próprio do cliente
Responsabilidade de rotação de chave Microsoft Cliente Cliente
Controle de chaves Microsoft Cliente Cliente
Escopo da chave Conta (padrão), contêiner ou blob Conta (padrão), contêiner ou blob N/D

1 Para saber mais sobre como criar uma conta que dá suporte ao uso de chaves gerenciadas pelo cliente com o armazenamento de Filas, confira Criar uma conta que dê suporte a chaves gerenciadas pelo cliente para filas.
2 Para saber mais sobre como criar uma conta que dá suporte ao uso de chaves gerenciadas pelo cliente com o armazenamento de Tabelas, confira Criar uma conta que dê suporte a chaves gerenciadas pelo cliente para tabelas.

Observação

As chaves gerenciadas pela Microsoft são giradas adequadamente de acordo com os requisitos de conformidade. Se você tiver requisitos específicos de rotação de chaves, a Microsoft recomenda que você mude para chaves gerenciadas pelo cliente para que você possa gerenciar e auditar a rotação por conta própria.

Criptografar dados duplamente com criptografia de infraestrutura

Os clientes que precisam de níveis mais altos de garantia de que seus dados estão seguros também podem habilitar a criptografia AES de 256 bits no nível de infraestrutura do Armazenamento do Microsoft Azure. Quando a criptografia dupla é habilitada, os dados da conta de armazenamento são criptografados duas vezes — uma vez no nível do serviço e outra no nível da infraestrutura — com dois algoritmos de criptografia diferentes e duas chaves distintas. A criptografia dupla de dados do Armazenamento do Azure oferece proteção contra um cenário em que pode haver comprometimento de um dos algoritmos ou de uma das chaves de criptografia. Nesse cenário, a camada adicional de criptografia continua a proteger seus dados.

A criptografia de nível de serviço dá suporte ao uso de chaves gerenciadas pela Microsoft ou chaves gerenciadas pelo cliente com Azure Key Vault. A criptografia no nível de infraestrutura depende de chaves gerenciadas pela Microsoft e sempre usa uma chave separada.

Para saber mais sobre como criar uma conta de armazenamento que habilita a criptografia de infraestrutura, confira Criar uma conta de armazenamento com criptografia de infraestrutura habilitada para criptografia dupla de dados.

Criptografia do lado do cliente para blobs e filas

As bibliotecas de cliente do Armazenamento de Blobs do Azure para .Net, Java e Python dão suporte à criptografia de dados em aplicativos cliente antes do upload no Armazenamento do Azure e à descriptografia de dados durante o download para o cliente. As bibliotecas de cliente do Armazenamento de Filas para .NET e Python também dão suporte à criptografia do lado do cliente.

Observação

Considere usar os recursos de criptografia do lado do serviço fornecidos pelo Armazenamento do Azure para proteger seus dados, em vez da criptografia do lado do cliente.

As bibliotecas de cliente de Armazenamento de Blobs e do Armazenamento de Filas usam o AES para criptografar dados do usuário. Duas versões da criptografia do lado do cliente estão disponíveis nas bibliotecas de clientes:

  • A versão 2 usa o GCM (Modo de Galois/Contador) com o AES. Os SDKs de Armazenamento de Blobs e de Armazenamento de Filas dão suporte à criptografia do lado do cliente com a v2.
  • A versão 1 usa o modo CBC (Encadeamento de Blocos de Criptografia) com o AES. Os SDKs de Armazenamento de Blobs, Armazenamento de Filas e Armazenamento de Tabelas dão suporte à criptografia do lado do cliente com a v1.

Aviso

O uso da v1 da criptografia do lado do cliente não é mais recomendado devido a uma vulnerabilidade de segurança na implementação do modo CBC da biblioteca de clientes. Para saber mais sobre essa vulnerabilidade de segurança, confira Armazenamento do Azure atualiza a criptografia do lado do cliente no SDK para resolver a vulnerabilidade de segurança. Se você está usando a v1, recomendamos atualizar o aplicativo para usar a v2 da criptografia do lado do cliente e migrar seus dados.

O SDK de Armazenamento de Tabelas do Azure dá suporte apenas à v1 da criptografia do lado do cliente. Não é recomendável usar a criptografia do lado do cliente com o Armazenamento de Tabelas.

A tabela a seguir mostra quais bibliotecas de cliente dão suporte a quais versões de criptografia do lado do cliente e fornece diretrizes para migrar para a criptografia do lado do cliente v2.

Biblioteca do cliente Versão da criptografia do lado do cliente com suporte Migração recomendada Diretriz adicional
Bibliotecas de cliente do Armazenamento de Blobs para .NET (versão 12.13.0 e superior), Java (versão 12.18.0 e superior) e Python (versão 12.13.0 e superior) 2,0

1.0 (somente para compatibilidade com versões anteriores)
Atualize seu código para usar a criptografia do lado do cliente v2.

Baixe todos os dados criptografados para descriptografá-los e criptografe-os novamente usando a criptografia do lado do cliente v2.
Criptografia do lado do cliente para blobs
Biblioteca de cliente do Armazenamento de Blobs para .NET (versão 12.12.0 e abaixo), Java (versão 12.17.0 e abaixo) e Python (versão 12.12.0 e abaixo) 1.0 (não recomendado) Atualize o aplicativo para usar uma versão do SDK do Armazenamento de Blobs com suporte para a criptografia do lado do cliente v2. Confira os detalhes em Matriz de suporte do SDK para criptografia do lado do cliente.

Atualize seu código para usar a criptografia do lado do cliente v2.

Baixe todos os dados criptografados para descriptografá-los e criptografe-os novamente usando a criptografia do lado do cliente v2.
Criptografia do lado do cliente para blobs
Biblioteca de cliente do Armazenamento de Filas para .NET (versão 12.11.0 e superior) e Python (versão 12.4 e superior) 2,0

1.0 (somente para compatibilidade com versões anteriores)
Atualize seu código para usar a criptografia do lado do cliente v2. Criptografia do lado do cliente para filas
Biblioteca de cliente do Armazenamento de Filas para .NET (versão 12.10.0 e abaixo) e Python (versão 12.3.0 e abaixo) 1.0 (não recomendado) Atualize o aplicativo para usar uma versão do SDK do Armazenamento de Filas com suporte para a criptografia do lado do cliente v2. Confira Matriz de suporte do SDK para criptografia do lado do cliente

Atualize seu código para usar a criptografia do lado do cliente v2.
Criptografia do lado do cliente para filas
Biblioteca de cliente do Armazenamento de Tabelas para .NET, Java e Python 1.0 (não recomendado) Não disponível. N/D

Próximas etapas