Explorar a Transparent Data Encryption
O TDE (Transparent Data Encryption) do Microsoft SQL Server criptografa todos os dados em um banco de dados de destino no nível da página. Os dados são criptografados conforme são gravados na página de dados no disco e descriptografados quando lidos na memória, resultando em todas as páginas de dados no disco sendo criptografadas.
A TDE não criptografa dados no nível de tabela ou coluna. Qualquer pessoa com as permissões apropriadas pode ler, copiar e compartilhar os dados. A criptografia em repouso protege contra a restauração de um backup para um servidor não protegido ou a cópia de arquivos de log de banco de dados e transações para outro servidor não protegido. Não ocorre descriptografia durante a operação de backup.
O TDE protege os dados em repouso e está em conformidade com várias leis, regulamentos e diretrizes do setor. Ele permite que os desenvolvedores de software criptografem dados usando algoritmos de criptografia AES e 3DES sem alterar aplicativos existentes.
Os bancos de dados criados no Banco de Dados SQL do Azure após maio de 2017 têm o TDE habilitado automaticamente. Os bancos de dados criados antes de maio de 2017 precisam que o TDE seja habilitado manualmente. Para a Instância Gerenciada de SQL do Azure, o TDE é habilitado por padrão para bancos de dados criados após fevereiro de 2019. Os bancos de dados criados antes de fevereiro de 2019 precisam que o TDE seja habilitado manualmente.
Para habilitar o TDE em um Banco de Dados SQL do Azure, edite o banco de dados no portal do Azure. No painel Transparent Data Encryption, selecione a habilitação da criptografia de dados.
Por padrão, os bancos de dados no Banco de Dados SQL do Azure são criptografados usando um certificado fornecido pela Microsoft (chave gerenciada pelo serviço). O Azure também oferece uma opção BYOK (Bring Your Own Key), permitindo que você use uma chave gerenciada pelo cliente criada por sua empresa e carregada no Azure Key Vault. Se a chave gerenciada pelo cliente for removida do Azure, as conexões de banco de dados serão fechadas e o acesso ao banco de dados será negado.
Habilitar o TDE em um banco de dados do Microsoft SQL Server é um processo fácil, pois apenas alguns comandos T-SQL são necessários. Esse processo envolve as seguintes etapas:
- Defina uma chave mestra no banco de dados mestre usando o comando
CREATE MASTER KEY ENCRYPTION. - Crie um certificado no banco de dados mestre usando o
CREATE CERTIFICATEcomando. - Crie uma chave de criptografia de banco de dados no banco de dados usando o
CREATE DATABASE ENCRYPTION KEYcomando. - Habilite a chave de criptografia usando o
ALTER DATABASEcomando.
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-pwd>';
GO
CREATE CERTIFICATE MyServerCert
WITH SUBJECT = 'TDEDemo_Certificate';
GO
USE [TDE_Demo];
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO
Depois que o TDE estiver habilitado, levará tempo para criptografar o banco de dados, pois cada página deve ser lida, criptografada e gravada de volta no disco. Quanto maior o banco de dados, mais tempo esse processo leva. Esse processo em segundo plano é executado com baixa prioridade para evitar sobrecarga de E/S ou CPU do sistema.
O certificado usado pelo TDE deve ser feito backup manual e armazenado com segurança. O SQL Server integra-se aos EKMs (Enterprise Key Managers), como o Azure Key Vault, para gerenciar chaves de criptografia. O gerenciamento do certificado é crucial porque, se ele for perdido e o banco de dados precisar ser restaurado de um backup, a restauração falhará, pois o banco de dados não poderá ser lido.
Observação
Para usar a TDE com bancos de dados em um Grupo de Disponibilidade Always On, o certificado usado para criptografar o banco de dados precisará ser copiado em backup e restaurado nos outros servidores do Grupo de Disponibilidade que hospedará as cópias do banco de dados.
Chaves gerenciadas pelo cliente
Como alternativa, você pode usar o BYOK e tirar proveito de um Azure Key Vault. As vantagens de usar chaves gerenciadas pelo cliente são:
- Controle completo e granular sobre o uso e o gerenciamento do protetor de TDE
- Transparência do uso do protetor de TDE
- Capacidade de implementar a separação de tarefas no gerenciamento de chaves e dados na organização
- O administrador do cofre de chaves pode revogar as permissões de acesso à chave para tornar o banco de dados criptografado inacessível
- Gerenciamento central de chaves no AKV
- Maior confiança dos clientes finais, pois o AKV foi projetado de modo que a Microsoft não possa ver nem extrair as chaves de criptografia
Você também pode aproveitar o uso de uma UMI (identidade gerenciada atribuída pelo usuário) com chaves gerenciadas pelo cliente para TDE, que:
- Permite a capacidade de pré-autenticar o acesso ao cofre de chaves para servidores lógicos do SQL do Azure criando uma identidade gerenciada atribuída pelo usuário e concedendo-lhe acesso ao cofre de chaves, mesmo antes de o servidor ou banco de dados ser criado.
- Permite a criação de um servidor lógico do SQL do Azure com TDE e CMK habilitados.
- Permite que a mesma identidade gerenciada atribuída pelo usuário seja atribuída a diversos servidores, eliminando a necessidade de ativar individualmente a identidade gerenciada atribuída pelo sistema para cada servidor lógico de SQL do Azure e fornecendo acesso ao cofre de chaves.
- Fornece a capacidade de impor o CMK no momento da criação do servidor com uma política interna do Azure disponível.
A rotação automática de chaves é introduzida para chaves gerenciadas pelo cliente usando TDE. Quando habilitado, o servidor verifica continuamente o cofre de chaves em busca de novas versões da chave que está sendo usada como protetora de TDE. Se uma nova versão da chave for detectada, o protetor de TDE no servidor será automaticamente girado para a versão mais recente da chave dentro de 60 minutos.
Criptografia de disco do Azure
Além desses recursos de segurança do SQL Server, as VMs do Azure incluem uma camada extra de segurança, o Azure Disk Encryption, um recurso que ajuda a proteger os dados e a cumprir os compromissos da organização e de conformidade. Se você estiver usando a TDE, seus dados serão protegidos por várias camadas de criptografia com a Azure Disk Encryption.