A Transparent Data Encryption (TDE) criptografa seus bancos de dados do ApsaraDB RDS for SQL Server em repouso. Ela protege arquivos de dados e backups contra acesso não autorizado, mesmo se o armazenamento subjacente for comprometido. Este tópico explica o funcionamento da TDE, como ativá-la e desativá-la e como restaurar backups criptografados com TDE em um SQL Server local. O conteúdo abrange cenários com chaves gerenciadas pela Alibaba Cloud e com Bring Your Own Key (BYOK).
Os arquivos de backup criados com a TDE ativa são criptografados com a Database Encryption Key (DEK). A DEK é protegida por um certificado armazenado no banco de dados master. Se o certificado da TDE não estiver presente no banco de dados master, a DEK não poderá ser descriptografada e você não conseguirá restaurar os arquivos de backup do banco de dados afetado. Faça backup do seu certificado e da chave privada após ativar a TDE.
Como a TDE funciona
A TDE protege os dados na camada de armazenamento sem exigir alterações no código da aplicação ou na lógica de conexão. Aplicações e usuários autenticados leem dados em texto simples normalmente. A criptografia e a descriptografia ocorrem de forma transparente no caminho de E/S do SQL Server.
A TDE utiliza uma hierarquia de chaves em camadas. Cada camada criptografa a camada abaixo dela:
OS layer
└── Data Protection API (DPAPI) — Windows built-in API; root of the hierarchy
└── Service Master Key (SMK) — root key for the SQL Server engine; generated at instance creation
└── Database Master Key (DMK) — symmetric key stored in the master database
└── Certificate — stored in the master database; created from the DMK
└── Database Encryption Key (DEK) — stored in the user database; encrypts data files
O banco de dados master armazena a DMK e o certificado. Os bancos de dados de usuário armazenam a DEK, criptografada pelo certificado. Quando o SQL Server lê ou grava dados, ele usa a chave privada do certificado para descriptografar a DEK na memória. Em seguida, utiliza a DEK para criptografar ou descriptografar arquivos de dados em tempo real.
Se o certificado estiver ausente no banco de dados master, a DEK não poderá ser descriptografada. Os arquivos de backup do banco de dados afetado tornar-se-ão inacessíveis.
Considerações sobre desempenho
A TDE reduz o desempenho geral do banco de dados em aproximadamente 3% a 5% sob cargas de trabalho típicas, com base em benchmarks oficiais da Microsoft. Sob alta utilização de CPU, o impacto pode chegar a cerca de 28%.
|
Fator |
Impacto |
|
Dados residentes na memória |
Mínimo: dados já presentes no buffer pool não são recriptografados a cada leitura |
|
CPU |
Alto: operações de criptografia e descriptografia adicionam sobrecarga a cada caminho de E/S |
|
Cargas com uso intensivo de E/S e baixo uso de CPU |
Impacto menor em comparação a cargas limitadas por CPU |
Pré-requisitos
Antes de ativar a TDE, certifique-se de que as seguintes condições sejam atendidas:
A instância RDS pertence à família de instâncias general-purpose ou dedicated. Instâncias compartilhadas não são suportadas. Consulte Famílias de instâncias.
O método de faturamento é subscription ou pay-as-you-go. Instâncias Serverless do ApsaraDB RDS não são suportadas. Consulte Instâncias Serverless do ApsaraDB RDS for SQL Server.
A instância executa uma das seguintes versões do SQL Server: SQL Server 2019 SE, SQL Server 2022 SE ou SQL Server EE.
Sua conta Alibaba Cloud autorizou a instância RDS a acessar o Key Management Service (KMS). Consulte Autorizar o ApsaraDB RDS a acessar o KMS.
(Apenas BYOK) Obtenha o arquivo de certificado, o arquivo de chave privada e a senha antes de começar.
Instâncias somente leitura não suportam TDE.
Limitações
|
Limitação |
Detalhes |
|
Restauração local com chave da Alibaba Cloud |
Não é possível usar arquivos de backup diretamente para restaurar dados em um dispositivo local. Consulte Restauração local: chave da Alibaba Cloud para a solução alternativa. |
|
Reconstrução da instância RDS |
Os arquivos de backup não podem ser usados para reconstruir a instância RDS enquanto a TDE estiver ativa. Consulte Reconstruir uma instância RDS. |
|
Atualizações de versão e atualizações menores do mecanismo |
Com a TDE ativa, não é possível atualizar uma instância RDS com discos locais do SQL Server 2008 R2 para o SQL Server 2012 ou SQL Server 2016, nem atualizar a versão menor do mecanismo. Consulte Atualizar SQL Server 2008 R2 e Atualizar a versão menor do mecanismo. |
Ativar ou desativar a TDE
Ativar TDE
Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância RDS reside. Localize a instância e clique em seu ID.
No painel de navegação à esquerda, clique em Data Security.
Na aba TDE, ative a chave ao lado de Disabled.
Na caixa de diálogo, selecione um tipo de chave e clique em OK.
Usar uma chave gerenciada pela Alibaba Cloud
Selecione os bancos de dados na seção Unselected Databases, clique no ícone
para movê-los para a seção Selected Databases e clique em Confirm.

Usar sua própria chave do SQL Server (BYOK)
-
Faça upload do arquivo de certificado e do arquivo de chave privada para um bucket do OSS. Consulte Upload objects.

-
Clique em Next step e configure os seguintes parâmetros.
Parâmetro
Descrição
OSS Bucket
Bucket do OSS onde os arquivos de certificado e chave privada estão armazenados.
Certificate
Arquivo de certificado enviado para o bucket do OSS.
Private key
Arquivo de chave privada enviado para o bucket do OSS.
Password
Senha da sua chave do SQL Server.

-
Clique em Next step para prosseguir para a etapa Authorization database. Selecione os bancos de dados na seção Unselected Databases, clique no ícone
para movê-los para a seção Selected Databases e clique em Confirm.
Desativar TDE
Desativar a TDE descriptografa todos os dados nos bancos de dados selecionados. A descriptografia consome muitos recursos (CPU, memória e E/S) e o tempo necessário é proporcional ao volume de dados. Para um banco de dados com aproximadamente 200 GB, desativar a TDE pode levar mais de 40 minutos.
Para desativar a TDE de um ou mais bancos de dados, remova-os da seção Selected Databases . Para desativar a TDE de toda a instância RDS, remova todos os bancos de dados da seção Selected Databases .
Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância RDS reside. Localize a instância e clique em seu ID.
No painel de navegação à esquerda, clique em Data Security.
Na aba TDE, clique em TDE Settings.
-
Selecione os bancos de dados na seção Selected Databases, clique no ícone
para movê-los para a seção Unselected Databases e clique em OK.
Monitorar o progresso da descriptografia
Após desativar a TDE, execute a seguinte consulta para verificar o progresso da descriptografia:
SELECT
db_name(database_id) AS DatabaseName,
encryption_state,
percent_complete
FROM
sys.dm_database_encryption_keys;
Restauração local: chave da Alibaba Cloud
Utilize este procedimento se a TDE foi ativada com uma chave de serviço gerenciada pela Alibaba Cloud. Como a chave de serviço é gerenciada pela Alibaba Cloud e não pode ser exportada, os arquivos de backup criptografados não podem ser usados diretamente. A solução alternativa consiste em desativar a TDE primeiro e, depois, realizar um novo backup completo.
Etapa 1: Desativar a TDE
Siga as etapas em Desativar TDE para remover todos os bancos de dados da seção Selected Databases.
Após desativar a TDE, alguns logs de transação criptografados ainda podem existir. Baixe o backup somente após concluir o backup completo na próxima etapa.
Etapa 2: Realizar um backup completo
Depois que a TDE for desativada, realize um backup completo. Para obter detalhes, consulte Configurar backups manuais.
Ao criar um backup manual, você pode fazer backup de toda a instância RDS ou de bancos de dados específicos. Fazer backup de bancos de dados específicos requer o método de backup físico.
Etapa 3: Baixar o backup e restaurar dados
Na página Backup and Restoration, baixe o arquivo de backup completo mais recente. Use o arquivo .bak no pacote baixado para restaurar dados no seu SQL Server local. Consulte Baixar arquivos de backup de dados e arquivos de backup de log.
Restauração local: BYOK
Se a TDE foi ativada com sua própria chave do SQL Server (BYOK), você pode restaurar o backup criptografado em um SQL Server local usando seu próprio certificado e chave privada.
Você também pode usar o procedimento com chave da Alibaba Cloud como alternativa, utilizando a abordagem de desativar e depois fazer backup.
Conecte-se à sua instância RDS usando um cliente SQL Server antes de executar as instruções a seguir. Consulte Conectar-se a uma instância do ApsaraDB RDS for SQL Server .
Etapa 1: Criar uma chave mestra de criptografia
Execute a seguinte instrução no banco de dados master da sua instância RDS para criar uma chave mestra de criptografia (MEK). Se já existir uma MEK, pule para a Etapa 2.
USE master;
GO
IF NOT EXISTS (
SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101
)
BEGIN
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-mek-password>'; -- Replace with your custom password.
END;
A senha pode ser diferente daquela usada para criar a MEK no servidor onde seu banco de dados SQL Server auto-gerenciado foi criado.
Etapa 2: Criar um certificado a partir dos seus arquivos BYOK
Importe o certificado e a chave privada que foram usados ao ativar a TDE na instância RDS.
USE master;
GO
CREATE CERTIFICATE TDE_Certificate
FROM FILE = 'C:\cert\tde_cert.cer' -- Replace with the actual path to your certificate file.
WITH PRIVATE KEY (
FILE = 'C:\cert\tde_privatekey.pvk', -- Replace with the actual path to your private key file.
DECRYPTION BY PASSWORD = '<your-tde-password>' -- Replace with the password used when enabling TDE.
);
|
Espaço reservado |
Descrição |
|
|
Senha para proteger a MEK no servidor local. |
|
|
Caminho para o arquivo de certificado usado ao ativar a TDE. |
|
|
Caminho para o arquivo de chave privada usado ao ativar a TDE. |
|
|
Senha especificada quando você ativou a TDE com BYOK. |
Etapa 3: Baixar o backup e restaurar dados
Na página Backup and Restoration da instância RDS, localize o conjunto de backup necessário, faça o download e use o arquivo .bak para restaurar dados no SQL Server local. Consulte Baixar arquivos de backup de dados e arquivos de backup de log.
Compatibilidade de versão: Se a restauração falhar com o erro The media family on device '<backup file name>' is incorrectly formed. SQL Server cannot process this media family., a versão menor do mecanismo do SQL Server local é mais antiga que a versão da instância RDS. Para resolver isso, certifique-se de que as versões principal e menor do mecanismo do banco de dados local correspondam às da instância RDS. Verifique a versão do mecanismo na página Basic Information da instância no console. Consulte KB5014298 para obter detalhes.
Próximos passos
Para outras opções de criptografia de dados disponíveis no ApsaraDB RDS for SQL Server, consulte Segurança e criptografia de dados.