Azure Storage encryption for data at rest (Encriptação do Armazenamento do Azure para dados inativos)

O Armazenamento do Azure usa a criptografia do lado do serviço (SSE) para criptografar automaticamente seus dados quando eles persistem na nuvem. A encriptação do Armazenamento do Azure protege os seus dados e ajuda-o a cumprir os seus compromissos organizacionais de segurança e conformidade.

A Microsoft recomenda o uso de criptografia do lado do serviço para proteger seus dados na maioria dos cenários. No entanto, as bibliotecas de cliente do Armazenamento do Azure para Armazenamento de Blob 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 no Armazenamento do Azure são criptografados e descriptografados de forma transparente usando criptografia AES de 256 bits, uma das cifras de bloco mais fortes disponíveis, e são compatíveis com FIPS 140-2. A criptografia do Armazenamento do Azure é semelhante à criptografia BitLocker no Windows.

A criptografia do Armazenamento do Azure está habilitada para todas as contas de armazenamento, incluindo o Gerenciador de Recursos e as contas de armazenamento clássicas. A criptografia do Armazenamento do Azure não pode ser desabilitada. Como seus dados são protegidos por padrão, você não precisa modificar seu código ou aplicativos para aproveitar a criptografia do Armazenamento do Azure.

Os dados em uma conta de armazenamento são criptografados independentemente da camada de desempenho (padrão ou premium), da camada de acesso (hot ou cool) ou do modelo de implantação (Azure Resource Manager ou clássico). Todos os blobs de bloco, blobs de acréscimo e blobs de página novos e existentes são criptografados, incluindo blobs na camada de arquivamento. Todas as opções de redundância do Armazenamento do 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 do Armazenamento do Azure são criptografados, incluindo blobs, discos, arquivos, filas e tabelas. Todos os metadados do objeto também são criptografados.

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

Para obter mais informações sobre os módulos criptográficos subjacentes à criptografia do Armazenamento do Azure, consulte API de criptografia: próxima geração.

Para obter informações sobre criptografia e gerenciamento de chaves para discos gerenciados do Azure, consulte Criptografia do lado do servidor de discos gerenciados do Azure.

Sobre o gerenciamento de chaves de criptografia

Os dados em uma nova conta de armazenamento são criptografados com chaves gerenciadas pela Microsoft por padrão. Pode continuar a confiar em chaves geridas pela Microsoft para a encriptação dos seus dados ou pode gerir a encriptação com as suas próprias chaves. Se optar por gerir a encriptação com as suas próprias chaves, tem duas opções. Você pode usar qualquer tipo 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 no Azure Key Vault Managed Hardware Security Model (HSM). Para obter mais informações sobre chaves gerenciadas pelo cliente, consulte Usar chaves gerenciadas pelo cliente para criptografia do Armazenamento do Azure.
  • Você pode especificar uma chave fornecida pelo cliente em operações de Armazenamento de Blob. Um cliente que faz uma solicitação de leitura ou gravação no Armazenamento de Blob pode incluir uma chave de criptografia na solicitação de controle granular sobre como os dados de blob são criptografados e descriptografados. Para obter mais informações sobre chaves fornecidas pelo cliente, consulte Fornecer uma chave de criptografia em uma solicitação ao 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 que você gerencie a criptografia com uma chave que tem como escopo um contêiner ou um blob individual. Você pode usar escopos de criptografia para criar limites seguros entre 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 Blob.

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

Parâmetro de gerenciamento de chaves Chaves geridas pela Microsoft Chaves geridas pelo cliente Chaves fornecidas pelo cliente
Operações de encriptação/desencriptação Azure Azure Azure
Serviços de Armazenamento do Azure suportados Todos Armazenamento de Blob, Arquivosdo Azure 1,2 Armazenamento de Blobs
Armazenamento de chaves Armazenamento de chaves da Microsoft Azure Key Vault ou Key Vault HSM Loja de chaves do próprio cliente
Responsabilidade pela rotação de chaves Microsoft Cliente Cliente
Controlo de chaves Microsoft Cliente Cliente
Âmbito principal Conta (padrão), contêiner ou blob Conta (padrão), contêiner ou blob N/A

1 Para obter informações sobre como criar uma conta que ofereça suporte ao uso de chaves gerenciadas pelo cliente com armazenamento de filas, consulte Criar uma conta que ofereça suporte a chaves gerenciadas pelo cliente para filas.
2 Para obter informações sobre como criar uma conta que ofereça suporte ao uso de chaves gerenciadas pelo cliente com o armazenamento de tabelas, consulte Criar uma conta que ofereça suporte a chaves gerenciadas pelo cliente para tabelas.

Nota

As chaves gerenciadas pela Microsoft são alternadas 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ê mesmo possa gerenciar e auditar a rotação.

Criptografe duplamente os dados com criptografia de infraestrutura

Os clientes que exigem altos níveis de garantia de que seus dados estão seguros também podem habilitar a criptografia AES de 256 bits no nível da infraestrutura de Armazenamento do Azure. Quando a criptografia de infraestrutura é habilitada, os dados em uma conta de armazenamento são criptografados duas vezes — uma no nível de serviço e outra no nível de infraestrutura — com dois algoritmos de criptografia diferentes e duas chaves diferentes. A criptografia dupla dos dados do Armazenamento do Azure protege contra um cenário em que um dos algoritmos ou chaves de criptografia pode ser comprometido. 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 o Cofre de Chaves do Azure. A criptografia no nível da infraestrutura depende de chaves gerenciadas pela Microsoft e sempre usa uma chave separada.

Para obter mais informações sobre como criar uma conta de armazenamento que permita a criptografia de infraestrutura, consulte 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 de carregar no Armazenamento do Azure e descriptografar dados durante o download para o cliente. As bibliotecas de cliente de armazenamento em fila para .NET e Python também suportam criptografia do lado do cliente.

Nota

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 Blob e Armazenamento em Fila usam AES para criptografar dados do usuário. Há duas versões de criptografia do lado do cliente disponíveis nas bibliotecas do cliente:

  • A versão 2 usa o modo Galois/Counter Mode (GCM) com AES. Os SDKs de armazenamento de Blob e armazenamento em fila oferecem suporte à criptografia do lado do cliente com v2.
  • A versão 1 usa o modo Cipher Block Chaining (CBC) com AES. Os SDKs de Armazenamento de Blob, Armazenamento de Filas e Armazenamento de Tabela oferecem suporte à criptografia do lado do cliente com v1.

Aviso

O uso da criptografia do lado do cliente v1 não é mais recomendado devido a uma vulnerabilidade de segurança na implementação do modo CBC da biblioteca do cliente. Para obter mais informações sobre esta vulnerabilidade de segurança, consulte Armazenamento do Azure atualizando a criptografia do lado do cliente no SDK para resolver a vulnerabilidade de segurança. Se você estiver usando a v1, recomendamos que atualize seu aplicativo para usar a criptografia do lado do cliente v2 e migrar seus dados.

O SDK do Armazenamento de Tabela do Azure suporta apenas a encriptação do lado do cliente v1. O uso da criptografia do lado do cliente com o Armazenamento de Tabela não é recomendado.

A tabela a seguir mostra quais bibliotecas de cliente oferecem 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 de cliente Versão da criptografia do lado do cliente suportada Migração recomendada Orientações adicionais
Bibliotecas de cliente de armazenamento de Blob 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 (apenas para compatibilidade com versões anteriores)
Atualize seu código para usar a criptografia do lado do cliente v2.

Transfira todos os dados encriptados para os desencriptar e, em seguida, volte a encriptar com a encriptação do lado do cliente v2.
Criptografia do lado do cliente para blobs
Biblioteca de cliente de armazenamento de Blob para .NET (versão 12.12.0 e inferior), Java (versão 12.17.0 e inferior) e Python (versão 12.12.0 e inferior) 1.0 (não recomendado) Atualize seu aplicativo para usar uma versão do SDK de armazenamento de Blob que ofereça suporte à criptografia do lado do cliente v2. Consulte Matriz de suporte do SDK para criptografia do lado do cliente para obter detalhes.

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

Transfira todos os dados encriptados para os desencriptar e, em seguida, volte a encriptar com a encriptação do lado do cliente v2.
Criptografia do lado do cliente para blobs
Biblioteca de cliente de armazenamento em fila para .NET (versão 12.11.0 e superior) e Python (versão 12.4 e superior) 2.0

1.0 (apenas 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 de armazenamento em fila para .NET (versão 12.10.0 e inferior) e Python (versão 12.3.0 e inferior) 1.0 (não recomendado) Atualize seu aplicativo para usar uma versão do SDK de armazenamento em fila que ofereça suporte à criptografia do lado do cliente v2. Consulte a 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 de armazenamento de tabela para .NET, Java e Python 1.0 (não recomendado) Não disponível. N/A

Próximos passos