Visão geral
Criptografar bancos de dados GaussDB(DWS)
No GaussDB(DWS), você pode habilitar a criptografia de banco de dados para um cluster para proteger dados estáticos. Depois de habilitar a criptografia, os dados do cluster e seus snapshots são criptografados. A criptografia é uma configuração opcional e imutável que pode ser configurada durante a criação do cluster. Para criptografar um cluster não criptografado (ou ao contrário), é necessário exportar todos os dados do cluster não criptografado e importá-los para um novo cluster que habilitou a criptografia de banco de dados. A criptografia do banco de dados é realizada quando os dados são gravados no GaussDB(DWS). Ou seja, o GaussDB(DWS) criptografa dados quando os dados são gravados no GaussDB(DWS). Se você quiser consultar os dados, o GaussDB(DWS) automaticamente os descriptografa e retorna o resultado para você.
Se a criptografia for necessária, ative-a durante a criação do cluster. Embora a criptografia seja uma configuração opcional do GaussDB(DWS), é aconselhável habilitar essa configuração para clusters para proteger dados.
- O cluster do GaussDB(DWS) 3.0 não suporta criptografia de banco de dados.
- A função de criptografia de banco de dados pode ser habilitada ou desabilitada somente quando um cluster é criado. Ela não pode ser habilitada após a criação de um cluster. Uma vez habilitada, ela não poderá ser desabilitada. Para obter detalhes, consulte Criptografia do banco de dados.
- Depois que Encrypt DataStore estiver ativado, a chave não poderá ser desativada, excluída ou congelada ao ser usada. Caso contrário, o cluster se torna anormal e o banco de dados fica indisponível.
- Os snapshots criados após a função de criptografia do banco de dados ser ativada não podem ser restaurados usando APIs abertas.
Exibir informações de criptografia do banco de dados
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Escolha Clusters no painel de navegação à esquerda.
- Clique no nome de um cluster. A página Cluster Information é exibida.
- Na área Data Encryption Information da página de informações do cluster, exiba as informações de criptografia do banco de dados, conforme mostrado em Informações de criptografia de dados.
Tabela 1 Informações de criptografia de dados Parâmetro
Descrição
Key Name
Indica a chave de criptografia do banco de dados do cluster quando Encrypt DataStore está ativada.
Last Key Rotation Time
Indica a hora em que a última chave de criptografia é rotacionada quando Encrypt DataStore está ativada.
Se a criptografia do banco de dados for desativada por padrão durante a criação do cluster, o módulo de criptografia não será exibido na página de detalhes do cluster.
Criptografar bancos de dados GaussDB(DWS) usando KMS
Quando você escolhe o KMS para gerenciar chaves do GaussDB(DWS), uma estrutura de gerenciamento de chaves de três camadas é adotada, incluindo a chave mestra de cluster (CMK), a chave de criptografia de cluster (CEK) e a chave de criptografia de banco de dados (DEK).
- A CMK é usada para criptografar a CEK e é armazenada no KMS.
- A CEK é usada para criptografar a DEK. O texto não criptografado da CEK é armazenado na memória do cluster do armazém de dados e o texto cifrado é armazenado em GaussDB(DWS).
- A DEK é usada para criptografar os dados do banco de dados. O texto não criptografado da DEK é armazenado na memória do cluster do armazém de dados e o texto cifrado é armazenado em GaussDB(DWS).
O procedimento de uso das chaves é o seguinte:
- Você escolhe uma CMK.
- GaussDB(DWS) gera aleatoriamente o texto não criptografado da CEK e DEK.
- O KMS usa a CMK escolhida para criptografar o texto não criptografado da CEK e importa o texto cifrado da CEK para o GaussDB(DWS).
- GaussDB(DWS) usa o texto não criptografado da CEK para criptografar o texto não criptografado da DEK e salva o texto cifrado da DEK.
- O GaussDB(DWS) transfere o texto não criptografado da DEK para o cluster e o carrega na memória do cluster.
Quando o cluster é reiniciado, ele solicita automaticamente o texto não criptografado da DEK do GaussDB(DWS) por meio de uma API. GaussDB(DWS) carrega o texto cifrado da CEK e DEK para a memória do cluster, invoca o KMS para descriptografar a CEK usando a CMK, carrega a CEK para a memória, descriptografa a DEK usando o texto não criptografado da CEK, carrega a DEK na memória e a retorna ao cluster.
Rotação de chaves de criptografia
A rotação da chave de criptografia é usada para atualizar o texto cifrado armazenado no GaussDB(DWS). No GaussDB(DWS), você pode girar a CEK criptografada de um cluster criptografado.
O procedimento de rotação das chaves é o seguinte:
- O cluster do GaussDB(DWS) inicia a rotação de chaves.
- GaussDB(DWS) descriptografa o texto cifrado da CEK armazenado em GaussDB(DWS) baseado na CMK para obter o texto não criptografado da CEK.
- Use o texto não criptografado da CEK obtido para descriptografar o texto cifrado da DEK em GaussDB(DWS) para obter o texto não criptografado da DEK.
- GaussDB(DWS) gera aleatoriamente novo texto não criptografado da CEK.
- O GaussDB(DWS) usa o novo texto não criptografado da CEK para criptografar a DEK e salva o texto cifrado da DEK.
- Use a CMK para criptografar o novo texto não criptografado da CEK e importar o texto cifrado da CEK para GaussDB(DWS).
Você pode planejar o intervalo de rotação da chave com base nos requisitos de serviço e nos tipos de dados. Para melhorar a segurança dos dados, é aconselhável girar periodicamente as chaves para evitar que as chaves sejam quebradas. Depois de descobrir que suas chaves podem ter sido divulgadas, gire as chaves a tempo.
- Quando o GaussDB(DWS) rotaciona a CEK do cluster, os snapshots do cluster não precisam de rotação da CEK, porque a CEK não é armazenada em snapshots. O texto não criptografado da CEK é armazenado na memória do cluster do GaussDB(DWS), e o texto cifrado é armazenado em GaussDB(DWS).
- A DEK não é atualizada durante a rotação de chaves, portanto, a criptografia e a descriptografia de dados não são afetadas.