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. 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.

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 mongosh

    Executar:

    mongosh --nodb

    --nodb significa não se conectar a um banco de dados de dados.

  2. Gerar uma string de chave

    Gere uma string base de 64 96bytes:

    const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
  3. 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)
    }
    }
    }
  4. Criar um objeto de cliente criptografado

    Para criar um objeto de cliente criptografado, use o construtor Mongo() . Substitua o mongodb://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
    )
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