Girar e retrair chaves de criptografia
Nesta página
Neste guia, você pode aprender como managed sua chave de criptografia com um Sistema de Gerenciamento de Chaves (KMS) em sua aplicação.
Visão geral
Este procedimento mostra como girar chaves de encriptação para Queryable Encryption usando mongosh
. A rotação de DEKs consiste em envolvê-las com uma nova chave mestra do cliente, portanto, os termos "rotação" e "reembrulhar" às vezes são usados como sinônimos.
Depois de concluir este guia, você deverá ser capaz de girar sua chave mestra do cliente (chave mestra do cliente) em seu Sistema de Gerenciamento de Chaves e, em seguida, envolver novamente os DEKs existentes na sua collection de cofre de chaves com sua nova chave mestra do cliente.
Aviso
Ao girar as chaves, confirme se elas não são usadas para criptografar chaves ou dados antes de excluí-los. Se você excluir uma DEK, todos os campos criptografados com essa DEK se tornarão permanentemente ilegíveis. Se você excluir uma chave mestra do cliente, todos os campo criptografados com uma DEK usando essa chave mestra do cliente ficarão permanentemente ilegíveis.
Informações relacionadas
Para obter uma explicação detalhada dos conceitos incluídos neste procedimento, consulte os tópicos abaixo.
Para saber mais sobre chaves e cofres de chaves, consulte Chaves e Cofres de Chaves. Para ver uma lista de provedores de KMS suportados, consulte a página Provedores de KMS .
Para obter tutoriais detalhando como configurar um aplicativo habilitado para Queryable Encryption com cada um dos provedores de KMS compatíveis, consulte as seguintes páginas:
Procedimento
Alterne sua chave mestra do cliente em seu sistema de gerenciamento de chaves
O processo de rotação do CMK depende do seu provedor de KMS . Para obter detalhes, consulte a documentação do seu fornecedor de chaves:
Amazon Web Services: Rotação das chaves do Amazon Web Services KMS
Azure: configurar a rotação automática da chave criptográfica no Azure Key Vault
GCP: girar uma chave
Depois de girar a chave mestra do cliente, o MongoDB a usará para envolver todos os novos DEKs. Para envolver DEKs existentes, continue com as etapas a seguir.
Alterne seu diretório de dados usando KeyVault.rewrapManyDataKey()
O método KeyVault.rewrapManyDataKey()
descriptografa automaticamente diversas diretório de dados e as criptografa novamente usando a chave mestra do cliente especificada. Em seguida, ele atualiza as chaves na collection de cofre de chaves.
O método tem a seguinte sintaxe:
let keyVault = db.getMongo().getKeyVault() keyVault.rewrapManyDataKey( { "<Query filter document>" }, { provider: "<KMS provider>", masterKey: { "<dataKeyOpts Key>" : "<dataKeyOpts Value>" } } )
Especifique um documento de filtro de query para selecionar as chaves para girar ou omita o argumento para girar todas as chaves na coleção Key Vault
Se você especificar um documento de filtro de query, mas nenhuma chave corresponder, nenhuma chave será rotacionada.
Especifique o provedor de KMS
Especifique o
masterKey
utilizando a nova chave mestra do cliente ou omita o argumento para girar chaves utilizando sua chave mestra do clienteexistente
Seus próprios DEKs são deixados inalterados após re-embrulhá-los com a nova chave mestra do cliente. O processo de rotação de chaves é contínuo e não interrompe seu aplicativo.