Docs Menu
Docs Home
/ /

ClientEncryption.createEncryptedCollection() (método mongosh)

Nuevo en la versión 7.0.

ClientEncryption.createEncryptedCollection(dbName, collName, clientEncOpts)

ClientEncryption.createEncryptedCollection crea una colección cifrada especificada por collName en la base de datos especificada por dbName.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

ClientEncryption.createEncryptedCollection tiene la siguiente sintaxis:

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

createEncryptedCollection toma estos campos:

Campo
Tipo
Necesidad
Descripción

dbName

string

Requerido

Nombre de la base de datos a cifrar.

collName

string

Requerido

Nombre de la colección a cifrar.

clientEncOpts

Documento

Requerido

Opciones para configurar la colección encriptada.

clientEncOpts.provider

string

Requerido

KMS que está utilizando para almacenar su clave maestra de cliente.

clientEncOpts.createCollectionOptions

Documento

Requerido

Campos para cifrar. Consulte los pasos para obtener más información sobre cómo configurar el encryptedFieldsMap objeto.

clientEncOpts.masterKey

Documento

Opcional

Cómo obtener la clave maestra cuando el proveedor de KMS es AWS, GCP o Azure.

Los métodos de cifrado de campo y consulta del lado del cliente requieren una conexión a la base de datos configurada para el cifrado del lado del cliente. Si la conexión a la base de datos actual no se inició con el cifrado de campo del lado del cliente habilitado, puede ocurrir lo mongosh siguiente:

or

El siguiente ejemplo utiliza un KMS administrado localmente para la configuración de cifrado consultable.

1
  1. Iniciar mongosh

    Ejecuta:

    mongosh --nodb

    --nodb significa no conectarse a una base de datos.

  2. Generar un String

    Genera una cadena base de 64 96bytes:

    const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
  3. Crear un objeto de opciones de cifrado

    Para crear un objeto de opciones de cifrado a nivel de campo del lado del cliente, utilice la cadena TEST_LOCAL_KEY del paso anterior:

    var autoEncryptionOpts = {
    "keyVaultNamespace" : "encryption.__dataKeys",
    "kmsProviders" : {
    "local" : {
    "key" : BinData(0, TEST_LOCAL_KEY)
    }
    }
    }
  4. Crear un objeto de cliente cifrado

    Para crear un objeto cliente cifrado, utilice el constructor. Reemplace Mongo() el mongodb://myMongo.example.net URI con el URI de la cadena de conexión del clúster de destino. Por ejemplo:

    encryptedClient = Mongo(
    "mongodb://myMongo.example.net:27017/?replSetName=myMongo",
    autoEncryptionOpts
    )
2

Cree un encryptedFieldsMaps para especificar qué campos cifrar:

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

Crear una colección cifrada enc.users:

clientEncryption = encryptedClient.getClientEncryption();
var result = clientEncryption.createEncryptedCollection(
"enc",
"users",
{
provider: "local",
createCollectionOptions: encryptedFieldsMap,
masterKey: {} // masterKey is optional when provider is local
}
)
4

createEncryptedCollection Devuelve un objeto de resultado grande con muchos campos. Verifique el valor de result.collection para confirmar que la colección se creó en la ubicación deseada.

enc> result.collection
enc.users
  • Para obtener documentación completa sobre cómo iniciar conexiones MongoDB con el cifrado de nivel de campo del lado del cliente habilitado,Mongo() consulte.

  • Para obtener un ejemplo completo de cómo crear y consultar una colección cifrada, consulte Inicio rápido de cifrado consultable.

Volver

SessionOptions

En esta página