A Criptografia Transparente de Dados (TDE) criptografa os dados antes da gravação em disco e os descriptografa ao carregá-los na memória, sem aumentar o tamanho dos arquivos nem exigir alterações nas aplicações. Ative a TDE no console do ApsaraDB for MongoDB para proteger os dados da instância.
Pré-requisitos
-
O tipo de armazenamento e a arquitetura da instância devem atender aos seguintes requisitos:
Instâncias com disco local: compatíveis com replica set e sharded cluster, versão 4,0 ou 4,2 do banco de dados.
Instâncias com disco cloud: compatíveis com replica set, versões 4,2 a 8,3 do banco de dados (todas as versões).
A instância usa o mecanismo de armazenamento WiredTiger.
-
A versão secundária de uma instância com disco cloud deve ser igual ou superior às versões listadas abaixo:
Versão principal
Versão secundária mínima
4.2
4.0.36
4.4
5.0.22
5.0
6.0.23
6.0
7.0.24
7.0
8.0.16
8.0
9.0.9
8.3
9.3.1
ImportanteSe a versão secundária da instância for anterior à versão exigida, atualize-a antes de ativar a TDE. Para mais informações, consulte Change instance configurations.
Se a instância não atender a esses requisitos, Change instance configurations.
Impactos
Ativar a TDE reinicia a instância e causa uma interrupção temporária de conexão. Execute essa operação fora dos horários de pico e verifique se a aplicação possui um mecanismo de reconexão.
A TDE aumenta a utilização da CPU.
Backups físicos não restauram coleções criptografadas em um banco de dados autogerenciado. Use um backup lógico: Restore data to a self-managed database by using a logical backup.
Considerações
Após ativada, a TDE não pode ser desativada.
Não é possível restaurar uma instância liberada com TDE ativada a partir da Recycle Bin.
-
A TDE opera no nível da instância e aplica-se apenas a coleções. Para criptografar campos específicos, use a Criptografia no Nível de Campo do Lado do Cliente (disponível apenas no MongoDB 4.2).
NotaPara ignorar a criptografia em coleções específicas, Exclude a collection from encryption.
A TDE criptografa somente novas coleções criadas após a ativação. As coleções existentes permanecem sem criptografia.
O Key Management Service (KMS) gera e gerencia as chaves da TDE. O ApsaraDB for MongoDB não fornece chaves de criptografia nem certificados. What is Key Management Service?.
Não é possível alterar a chave de criptografia depois que a TDE é ativada. Para usar uma chave diferente, migre os dados para uma nova instância configurada com a nova chave por meio do Data Transmission Service (DTS). Migrate data between ApsaraDB for MongoDB instances.
Garanta que a chave do KMS usada pela TDE esteja sempre disponível. Se a chave for desativada, excluída ou estiver com pagamento pendente, a instância será bloqueada e ficará indisponível, impedindo o uso de backups existentes para recuperação.
Procedimento
Acesse a página de Replica Set Instances ou Sharded Cluster Instances. Na barra de navegação superior, selecione um grupo de recursos e uma região e clique em ID da instância desejada.
No painel de navegação à esquerda, clique em .
Ative a chave ao lado de TDE Status:.
-
Na caixa de diálogo Enable TDE, selecione o método de geração de chave conforme a sua necessidade.
Use Automatically Generated Key: o sistema gera uma chave automaticamente.
Use Custom Key: selecione uma chave existente na lista suspensa. Caso a chave desejada não esteja disponível, crie uma nova primeiro. Para obter instruções, consulte Create a key.
-
Clique em OK.
A instância entra no estado Updating TDE. A operação é concluída quando o status muda para Running.
Excluir uma coleção da criptografia
Depois que a TDE é ativada, todas as novas coleções são criptografadas por padrão. Para criar uma coleção sem criptografia, especifique a configuração do mecanismo de armazenamento durante a criação.
Conecte-se ao banco de dados usando o mongo shell: Connect to a replica set instance ou Connect to a sharded cluster instance.
-
Execute o comando a seguir para criar uma coleção não criptografada.
-
Sintaxe:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })NotaNeste comando,
collection_namerepresenta o nome da coleção. -
Exemplo:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
-