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

ClientEncryption.createEncryptedCollection()

Nesta página

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

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

Como obter a chave mestra quando o fornecedor de KMS é Amazon Web Services, GCP ou Azure.

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();
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