Novidades na versão 7.0.
ClientEncryption.createEncryptedCollection(dbName, collName, clientEncOpts)ClientEncryption.createEncryptedCollectioncria uma collection criptografada especificada porcollNameno reconhecimento de data center especificado pordbName.
Dica
In mongosh, you can use the helper db.createEncryptedCollection(), which runs in the context of the current database and automatically generates data keys when keyId values are not specified.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
ClientEncryption.createEncryptedCollection tem a seguinte sintaxe:
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.createEncryptedCollection( dbName, collName, { provider: kmsProviderName, createCollectionOptions: encryptedFieldsMap, masterKey: customerMasterKeyCredentials } )
Campos de comando
createEncryptedCollection usa estes campos:
Campo | Tipo | necessidade | Descrição |
|---|---|---|---|
| string | Obrigatório | Nome do reconhecimento de data center a ser criptografado. |
| string | Obrigatório | Nome da collection a ser criptografada. |
| documento | Obrigatório | Opções para configurar a collection criptografada. |
| string | Obrigatório | KMS que você está usando para armazenar sua chave mestra do cliente. |
| documento | Obrigatório | Campos para criptografar. Consulte Especificar campos para criptografia para detalhes sobre como configurar o objeto |
| documento | Opcional | Especifica as credenciais e os campos de identificação de chave necessários para acessar a chave mestre quando o provedor de KMS é AWS, GCP ou Azure. Opcional quando o provedor de KMS é |
Comportamento
The mongosh client-side field level and queryable encryption methods require a database connection configured for client-side encryption. If the current database connection was not initiated with client-side field level encryption enabled, either:
Utilize o construtor
Mongo()domongoshpara estabelecer uma conexão com as opções de criptografia do nível do campo do lado do cliente exigido. O métodoMongo()suporta os seguintes fornecedores de serviço de gerenciamento de chaves (KMS) para gerenciamento da chave mestra do cliente (CMK):
ou
- Use the
mongoshcommand line options to establish a connection with the required options. The command line options only support the Amazon Web Services KMS provider for CMK management.
Exemplo
O exemplo a seguir usa um KMS gerenciado localmente para a configuração de Queryable Encryption.
Crie sua conexão criptografada
Inicie o mongosh
Executar:
mongosh --nodb --nodbsignifica não se conectar a um banco de dados de dados.Gerar uma string de chave
Gere uma string base de 64 96bytes:
const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64") Criar um objeto de opções de criptografia
Para criar um objeto de opções de criptografia no nível do campo do lado do cliente , use a string
TEST_LOCAL_KEYda etapa anterior:var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } } Criar um objeto de cliente criptografado
Para criar um objeto de cliente criptografado, use o construtor
Mongo(). Substitua omongodb://myMongo.example.netURI pelo URI da string de conexão para o cluster de destino. Por exemplo:encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
Crie sua coleção criptografada
Criar uma collection enc.users criptografada:
clientEncryption = encryptedClient.getClientEncryption(); let result = clientEncryption.createEncryptedCollection( "enc", "users", { provider: "local", createCollectionOptions: encryptedFieldsMap, masterKey: {} // masterKey is optional when provider is local } )
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().Para obter um exemplo completo de como criar e consultar uma collection criptografada, consulte Início Rápido da Queryable Encryption.