Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

ClientEncryption.createEncryptedCollection()

Nesta página

  • Sintaxe
  • Campos de comando
  • Comportamento
  • Exemplo
  • Saiba mais

Novidades na versão 7.0.

ClientEncryption.createEncryptedCollection(dbName, collName, clientEncOpts)

ClientEncryption.createEncryptedCollection cria uma collection criptografada especificada por collName no reconhecimento de data center especificado por dbName.

ClientEncryption.createEncryptedCollection tem a seguinte sintaxe:

clientEncryption = db.getMongo().getClientEncryption()
clientEncryption.createEncryptedCollection(
dbName,
collName,
{
provider: kmsProviderName,
createCollectionOptions: encryptedFieldsMap,
masterKey: customerMasterKeyCredentials
}
)

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. ConsulteEtapas do para 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.

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:

ou

O exemplo a seguir usa um KMS gerenciado localmente para a configuração de Queryable Encryption.

1
1

Inicie o cliente mongosh .

mongosh --nodb
2

Para configurar a criptografia no nível do campo do lado do cliente para uma chave managed localmente, gere uma cadeia de 96 bytes codificada em base64 sem quebras de linha.

const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
3

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)
}
}
}
4

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
)
2

Crie um encryptedFieldsMaps para especificar quais campos criptografar:

const encryptedFieldsMap = {
encryptedFields: {
fields: [
{
path: "secretField",
bsonType: "string",
queries: { queryType: "equality" },
},
],
},
};
3

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
}
)
4

createEncryptedCollection retorna um objeto de resultado grande com muitos campos. Verifique o valor de result.collection para confirmar que a collection foi criada no local desejado.

enc> result.collection
enc.users
  • 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.

Voltar

Criptografia no nível de campo do cliente