ClientEncryption.createEncryptedCollection()
Novidades na versão 7.0.
ClientEncryption.createEncryptedCollection(dbName, collName, clientEncOpts)
ClientEncryption.createEncryptedCollection
cria uma collection criptografada especificada porcollName
no reconhecimento de data center especificado pordbName
.
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 |
---|---|---|---|
dbName | string | Obrigatório | Nome do reconhecimento de data center a ser criptografado. |
collName | string | Obrigatório | Nome da collection a ser criptografada. |
clientEncOpts | documento | Obrigatório | Opções para configurar a collection criptografada. |
clientEncOpts.provider | string | Obrigatório | KMS que você está usando para armazenar sua chave mestra do cliente. |
clientEncOpts.createCollectionOptions | documento | Obrigatório | Campos a serem criptografados. Consulte Especificar campos para criptografia para obter detalhes sobre como configurar o objeto encryptedFieldsMap . |
clientEncOpts.masterKey | documento | Opcional | Como obter a chave mestra quando o fornecedor de KMS é Amazon Web Services, GCP ou Azure. |
Comportamento
O nível do campo no lado do cliente e os métodos de Queryable Encryption do mongosh
exigem uma conexão de banco de dados configurada para criptografia do lado do cliente. 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:
Utilize o construtor
Mongo()
domongosh
para 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
Utilize as opções da linha de comando do
mongosh
para estabelecer uma conexão com as opções exigidas. As opções de linha de comando são compatíveis apenas com o fornecedor Amazon Web Services KMS para gerenciamento da chave mestra do cliente.
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 --nodb
significa 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_KEY
da 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.net
URI 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(); var 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 query uma collection criptografada, consulte Início Rápido.