getClientEncryption()
Nesta página
getClientEncryption()
Retorna o objeto
ClientEncryption
para a coleção de banco de dados de dados atual. O objetoClientEncryption
suporta criptografia e descriptografia explícitas (manual) de valores de campo para a criptografia de nível de campo do campo do cliente.Retorna: O objeto ClientEncryption
para a conexão de banco de dados atual.
Sintaxe
getClientEncryption()
tem a seguinte sintaxe:
db.getMongo().getClientEncryption();
Use o objeto ClientEncryption
para acessar os seguintes métodos de criptografia explícita:
Comportamento
Habilite criptografia no nível do campo do lado do cliente na conexão do banco de dados
Os métodos de criptografia de nível de campo do lado do cliente mongosh
exigem uma conexão de banco de dados com a criptografia de nível de campo do lado do cliente ativada. Se a conexão atual do banco de dados não tiver sido iniciada com a criptografia em nível de campo do lado do cliente ativada, faça o seguinte:
Use o construtor
Mongo()
domongosh
para estabelecer uma conexão com as opções necessárias de criptografia de nível de campo no lado do cliente. O métodoMongo()
é compatível com os seguintes provedores de serviço de gerenciamento de chaves (KMS) para o gerenciamento da chave mestra do cliente (CMK):ou
Utilize as
mongosh
opções da linha de comando para estabelecer uma conexão com as opções exigidas. As opções de linha de comando são compatíveis apenas com o provedor Amazon Web Services KMS para gerenciamento da chave mestra do cliente.
Exemplo
O método getKeyVault()
cria automaticamente um índice único no campo keyAltNames
com um filtro de índice parcial para somente documentos onde keyAltNames
existe. getKeyVault()
cria esse índice na collection de cofre de chaves. Isso impede que dois diretórios de dados no mesmo cofre de chaves tenham o mesmo nome alternativo de chave e, portanto, evita a ambiguidade em torno de qual diretório de dados é apropriado para criptografia/descriptografia.
Aviso
Não descarte o índice único criado por getKeyVault()
. As operações de criptografia do nível do campo no lado do cliente dependem da singularidade de keyAltNames
imposta pelo servidor. Remover o índice pode levar a comportamento inesperado ou imprevisível.
O exemplo a seguir usa um KMS managed localmente para a configuração de criptografia no nível do campo do lado do cliente.
Criar as opções de criptografia em nível de campo do lado do cliente
Crie as opções de criptografia no nível do campo do lado do cliente usando a string de chave local gerada:
var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } }
Crie seu cliente criptografado
Use o construtor Mongo()
com as opções de criptografia de nível de campo do lado do cliente configuradas para criar uma conexão com o reconhecimento de data center. Substitua o URI mongodb://myMongo.example.net
pelo URI da string de conexão do cluster de destino.
encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
Use o método getClientEncryption()
para recuperar o objeto de criptografia do cliente:
clientEncryption = encryptedClient.getClientEncryption()
Saiba mais
Para obter a documentação completa sobre como iniciar conexões do MongoDB com a criptografia no nível do campo do lado do cliente habilitada, consulte Mongo()
.