Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
Referencia
/ / /

Proveedores KMS de CSFLE

Conozca los proveedores de Key Management Service que admite el cifrado a nivel de campo del lado del cliente (CSFLE).

Un Key Management Service es un sistema de gestión de claves proporcionado como servicio.

En CSFLE, tu Key Management Service realiza las siguientes tareas:

Para aprender más sobre Claves maestras de cliente y llaves de cifrado de datos, consulta Claves y bóvedas de claves.

Para crear una llave maestra de cliente, es necesario configurar tu proveedor de Key Management Service para generar la llave maestra de cliente de la siguiente manera:

Diagrama

Para ver un tutorial que demuestre cómo crear y almacenar tu CMK en tu Key Management Service preferido, consulta tutoriales.

Cuando cree una clave de cifrado de datos, debe realizar las siguientes acciones:

  • Instancie un ClientEncryption la instancia en tu aplicación con CSFLE habilitado:

    • Proporcione un objeto kmsProviders que especifique las credenciales que su aplicación con CSFLE habilitado utiliza para autenticarse con su KMS.

  • Crea una llave de cifrado de datos con el método CreateDataKey del objeto ClientEncryption en tu aplicación con CSFLE habilitado.

    • Proporciona un objeto dataKeyOpts que especifica con qué clave tu KMS debe cifrar tu nueva clave de cifrado de datos.

Para ver un tutorial que muestra cómo crear y cifrar una clave de cifrado de datos, consulta los siguientes recursos:

Para ver la estructura de los objetos kmsProviders y dataKeyOpts para todos los proveedores de KMS compatibles, consulta Servicios de gestión de claves compatibles.

Las siguientes secciones de esta página presentan la siguiente información para todos los proveedores del Key Management Service:

  • Arquitectura del cliente habilitado para CSFLE

  • Estructura de objetos kmsProviders

  • Estructura de objetos dataKeyOpts

CSFLE admite los siguientes proveedores de Key Management Service:

Esta sección proporciona información relacionada con el uso de AWS Key Management Service en su aplicación habilitada para CSFLE.

Para ver un tutorial que demuestre cómo utilizar AWS KMS en su aplicación habilitada para CSFLE, consulte Uso del cifrado automático a nivel de campo del lado del cliente con AWS.

El siguiente diagrama describe la arquitectura de una aplicación compatible con CSFLE que utiliza AWS KMS.

Diagrama KMS

Nota

El cliente no puede acceder a la llave maestra de cliente

Cuando se utiliza el Key Management Service anterior, la aplicación habilitada para CSFLE no tiene acceso a la clave maestra de cliente.

La siguiente tabla presenta la estructura de un objeto kmsProviders para AWS KMS:

Campo
Obligatorio para el usuario de IAM
Requerido para el rol de IAM
Descripción

ID de clave de acceso

Identifica al usuario de la cuenta.

Clave de acceso secreta

Contiene las credenciales de autenticación del usuario de la cuenta.

Session Token

No

Contiene un token obtenido del Servicio de token de seguridad de AWS (AWS STS).

La siguiente tabla presenta la estructura de un objeto dataKeyOpts para AWS KMS:

Campo
Requerido
Descripción

llave

region

No

Región de AWS de tu clave maestra, p. ej. "us-west-2"; requeridos solo si no se especifican en tu ARN.

endpoint

No

Nombre de host personalizado para el endpoint de AWS si está configurado para su cuenta.

Esta sección proporciona información relacionada con el uso de Azure Key Vault en tu aplicación habilitada para CSFLE.

Para ver un tutorial que muestre cómo usar Azure Key Vault en tu aplicación habilitada para CSFLE, consulta Usar cifrado automático a nivel de campo del lado del cliente con Azure.

El siguiente diagrama describe la arquitectura de una aplicación habilitada para CSFLE utilizando Azure Key Vault.

Diagrama KMS

Nota

El cliente no puede acceder a la llave maestra de cliente

Cuando se utiliza el Key Management Service anterior, la aplicación habilitada para CSFLE no tiene acceso a la clave maestra de cliente.

La siguiente tabla presenta la estructura de un objeto kmsProviders para Azure Key Vault:

Campo
Requerido
Descripción

azure.tenantId

Identifica la organización de la cuenta.

azure.clientId

Identifica el clientId para autenticar tu aplicación registrada.

azure.clientSecret

Se utiliza para autenticar la aplicación registrada.

azure.identityPlatformEndpoint

No

Especifica un nombre de host y un número de puerto para el servidor de autenticación. De forma predeterminada, se utiliza login.microsoftonline.com y solo es necesario para instancias de Azure no comerciales, como cuentas gubernamentales o de China.

La siguiente tabla presenta la estructura de un objeto dataKeyOpts para Azure Key Vault:

Campo
Requerido
Descripción

keyName

Nombre de la clave maestra

versión de la clave

No

Versión de la clave maestra

keyVaultEndpoint

URL de la bóveda de claves. P. ej. myVaultName.vault.azure.net

Esta sección proporciona información relacionada con el uso de Google Cloud Key Gestión en tu aplicación habilitada para CSFLE.

Para ver un tutorial que demuestre cómo utilizar GCP KMS en tu aplicación habilitada para CSFLE, consulta Utilizar cifrado de nivel de campo automático del lado del cliente con GCP.

El siguiente diagrama describe la arquitectura de una aplicación con CSFLE habilitado usando GCP KMS.

Diagrama KMS

Nota

El cliente no puede acceder a la llave maestra de cliente

Cuando se utiliza el Key Management Service anterior, la aplicación habilitada para CSFLE no tiene acceso a la clave maestra de cliente.

La siguiente tabla presenta la estructura de un objeto kmsProviders para GCP KMS:

Campo
Requerido
Descripción

correo electrónico

Identifica la dirección de correo electrónico de tu cuenta de servicio.

llave privada

Identifies your service account private key in either base64 string or Binary subtype 0 format without the prefix and suffix markers.

Suppose your service account private key value is as follows:
-----BEGIN PRIVATE KEY-----\nyour-private-key\n-----END PRIVATE KEY-----\n
The value you would specify for this field is:
your-private-key
If you have a user-key.json credential file, you can extract the string by executing the following command in a bash or similar shell:
cat user-key.json | jq -r .private_key | openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER | base64 -w 0

endpoint

No

Especifica un nombre de host y un número de puerto para el servidor de autenticación. Por defecto es oauth2.googleapis.com.

La siguiente tabla presenta la estructura de un objeto dataKeyOpts para GCP KMS:

Campo
Requerido
Descripción

ID del proyecto

Identificador para tu proyecto en el que creaste la clave.

Ubicación

Región especificada para tu clave.

keyRing

Identificador del grupo de claves al que pertenece su clave.

keyName

Identificador de la clave maestra simétrica.

versión de la clave

No

Especifica la versión de la clave nombrada. Si no se especifica, se utiliza la versión por defecto de la clave.

endpoint

No

Especifica el host y el puerto opcional de nube KMS. El valor por defecto es cloudkms.googleapis.com.

Esta sección proporciona información relacionada con el uso de un proveedor de KMIP compliant Key Management Service en su aplicación habilitada para CSFLE.

Para ver un tutorial que demuestre cómo usar un proveedor de Key Management Service compatible con KMIP en tu aplicación habilitada para CSFLE, consulta Usar cifrado automático a nivel de campo del lado del cliente con KMIP.

El siguiente diagrama describe la arquitectura de una aplicación habilitada para CSFLE que utiliza un proveedor de claves conforme a KMIP.

Diagrama

Importante

El cliente Accede a la llave maestra de cliente

Cuando tu aplicación habilitada para CSFLE utiliza un proveedor de claves compatible con KMIP, tu aplicación accede directamente a tu llave maestra de cliente.

La siguiente tabla presenta la estructura de un objeto kmsProviders para un proveedor de claves compatible con KMIP:

Nota

Autentícate a través de TLS/SSL

Tu aplicación habilitada para CSFLE se autentica a través de TLS/SSL cuando utilizas KMIP.

Campo
Requerido
Descripción

endpoint

Especifica un nombre de host y un número de puerto para el servidor de autenticación.

La siguiente tabla presenta la estructura de un objeto dataKeyOpts para un Key Management Service compatible con KMIP:

Campo
Requerido
Descripción

keyId

No

El campo keyId de un objeto gestionado de datos secretos de 96 bytes almacenado en tu proveedor de claves compatible con KMIP.

Si no se especifica el campo keyId en el documento masterKey que se envía al proveedor de claves compatible con KMIP, el driver creará un nuevo objeto gestionado de datos secretos de 96 bytes en su proveedor de claves compatible con KMIPpara que actúe como su clave maestra.

endpoint

El URI de su proveedor de claves compatible con KMIP.

Esta sección proporciona información relacionada con el uso de un proveedor de claves local (su sistema de archivos) en una aplicación compatible con CSFLE.

Advertencia

No utilizar el proveedor de clave local en producción

El proveedor de llaves locales es un método de almacenamiento inseguro y no se recomienda para producción. En su lugar, debe almacenar sus llaves maestras de cliente en un Sistema de Gestión de Claves remoto (KMS).

Para aprender a usar un KMS remoto en tu implementación de CSFLE, consulta la guía Tutoriales.

Para ver un tutorial que demuestre cómo utilizar un Proveedor de claves local para probar el cifrado a nivel de campo en el lado del cliente, consulte Inicio rápido.

Cuando utiliza un proveedor de claves local en su aplicación habilitada para CSFLE, su aplicación recupera su clave maestra de cliente del sistema de archivos de la computadora en la que se está ejecutando la aplicación.

El siguiente diagrama describe la arquitectura de una aplicación habilitada para CSFLE utilizando un proveedor de claves local.

Diagrama de arquitectura del proveedor de claves local.

La siguiente tabla presenta la estructura de un objeto kmsProviders para un proveedor de claves local:

Campo
Requerido
Descripción

llave

La clave maestra utilizada para cifrar/descifrar claves de datos. La clave maestra se transmite como una string codificada en base64.

Cuando usas un Proveedor de Clave Local, especificas tu llave maestra de cliente a través de tu objeto kmsProviders.

Volver

MongoClientOptions

En esta página