Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

ClientEncryption.createEncryptedCollection() (método mongosh)

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.

Dica

No mongosh, você pode utilizar o assistente db.createEncryptedCollection(), que é executado no contexto do banco de dados atual e gera automaticamente chaves de dados quando os valores keyId não são especificados.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
  • 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

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 Etapas para detalhes sobre como configurar o objeto encryptedFieldsMap .

clientEncOpts.masterKey

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

Os métodos de nível do campo no lado do cliente e 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();
let 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 consultar uma collection criptografada, consulte Início Rápido da Queryable Encryption.