Compartilhar via


criptografia Armazenamento do Azure para dados em repouso

Armazenamento do Azure usa a SSE (criptografia do lado do serviço) para criptografar automaticamente seus dados quando eles são persistidos na nuvem. Armazenamento do Azure criptografia protege seus dados e ajuda você a cumprir seus compromissos de conformidade e segurança organizacional.

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 cliente do Armazenamento do Azure para Armazenamento de Blobs e Queue Storage também fornecem criptografia do lado do cliente para aqueles que precisam criptografar dados no cliente. Para obter mais informações, consulte Criptografia do lado do cliente para blobs e filas.

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

Os dados em Armazenamento do Azure são criptografados e descriptografados de forma transparente usando criptografia AES de 256 bits, uma das criptografias de bloco mais fortes disponíveis e compatível com FIPS 140-2. A criptografia do Armazenamento do Azure é semelhante à do BitLocker no Windows.

A criptografia no lado do servidor do Armazenamento do Azure utiliza 256 bits AES no modo Galois/Counter (AES-GCM) para criptografar objetos enviados. A criptografia do Armazenamento do Azure está habilitada para todas as contas de armazenamento, tanto do Resource Manager quanto as clássicas. Armazenamento do Azure criptografia 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 Armazenamento do Azure criptografia.

Os dados em uma conta de armazenamento são criptografados independentemente da camada de desempenho (standard ou premium), da camada de acesso (quente ou esporádica) ou do 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 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 Armazenamento do Azure são criptografados, incluindo blobs, discos, arquivos, filas e tabelas. Todos os metadados de objeto também são criptografados.

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

Para obter mais informações sobre os módulos criptográficos subjacentes à criptografia do Armazenamento do Azure, consulte Cryptography API: Next Generation.

Para obter informações sobre criptografia e gerenciamento de chaves para Azure discos gerenciados, consulte Server-side encryption of Azure managed disks.

Sobre o gerenciamento de chaves de criptografia

Os dados em uma nova conta de armazenamento são criptografados com chaves gerenciadas por Microsoft por padrão. Você pode continuar contando com chaves gerenciadas por Microsoft para a criptografia de seus dados ou pode gerenciar a criptografia com suas próprias chaves. 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 por customer para criptografar e descriptografar dados em Armazenamento de Blobs e em Arquivos do Azure.1,2 as chaves gerenciadas pelo cliente devem ser armazenadas em Azure Key Vault ou Azure Key Vault HSM (Managed Hardware Security Module). Para obter mais informações sobre chaves gerenciadas pelo cliente, consulte Use chaves gerenciadas pelo cliente para criptografia Armazenamento do Azure.
  • Você pode especificar uma chave fornecida pelo cliente em operações de Armazenamento de Blobs. Um cliente que faz uma solicitação de leitura ou gravação em 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 obter mais informações sobre chaves fornecidas pelo cliente, consulte Provide uma chave de criptografia em uma solicitação para 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 por 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 de Armazenamento do Azure.

Parâmetro de gerenciamento de chaves chaves gerenciadas por Microsoft Chaves gerenciadas pelo cliente Chaves fornecidas pelo cliente
As operações de criptografia/descriptografia Azure Azure Azure
Serviços com suporte do Armazenamento do Azure Tudo Armazenamento de Blobs, Arquivos do Azure1,2 Armazenamento de Blobs
Armazenamento de chave repositório de chaves Microsoft Azure Key Vault ou Key Vault HSM Repositório de chaves próprio do cliente
Responsabilidade de rotação de chave Microsoft Cliente Cliente
Controle de chaves Microsoft Cliente Cliente
Escopo principal 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 rotacionadas adequadamente de acordo com os requisitos de conformidade. Se você tiver requisitos específicos de rotação de chaves, Microsoft recomenda que você mude para chaves gerenciadas pelo cliente para que possa gerenciar e auditar a rotação por conta própria.

Criptografar dados duas vezes usando criptografia de infraestrutura

Os clientes que exigem altos níveis de garantia de que seus dados são seguros também podem habilitar a criptografia AES de 256 bits no nível de infraestrutura Armazenamento do 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 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 por Microsoft ou chaves gerenciadas pelo cliente com Azure Key Vault. A criptografia em nível de infraestrutura depende de chaves gerenciadas por 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 Armazenamento de Blobs do Azure para .NET, Java e Python dão suporte à criptografia de dados em aplicativos cliente antes de carregar em Armazenamento do Azure e descriptografar 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 de criptografia do lado do cliente.

As bibliotecas de cliente Armazenamento de Blobs e Armazenamento de Filas usam AES para criptografar os 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 Armazenamento de Filas dão suporte à criptografia do lado do cliente na versão v2.
  • A versão 1 usa o modo CBC (Encadeamento de Blocos de Criptografia) com o AES. Os SDKs Armazenamento de Blobs, Armazenamento de Filas e Armazenamento de Tabelas dão suporte à criptografia do lado do cliente com 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 obter mais informações sobre essa 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ê está usando a v1, recomendamos atualizar o aplicativo para usar a v2 da criptografia do lado do cliente e migrar seus dados.

O SDK do Armazenamento de Tabelas do Azure dá suporte apenas à criptografia do lado do cliente v1. 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 compatível da criptografia do lado do cliente Migração recomendada Diretriz adicional
Armazenamento de Blobs bibliotecas de clientes 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 para blobs no cliente
Armazenamento de Blobs biblioteca de clientes 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 do Armazenamento de Blobs que dá suporte à 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 para blobs no cliente
Biblioteca de clientes 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 clientes do Armazenamento de Tabelas para .NET, Java e Python 1.0 (não recomendado) Não disponível. N/D

Próximas etapas