Overview
Aprende sobre el sistema de gestión de claves (KMS) Proveedores que admiten el cifrado a nivel de campo del lado del cliente (CSFLE).
Tareas del sistema de gestión de claves
En CSFLE, su sistema de gestión de claves 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.
Crea y almacena tu llave maestra de cliente
Para crear una llave maestra de cliente, debe configurar su sistema de gestión de claves para generar la llave maestra de cliente de la siguiente manera:

Para ver un tutorial que te muestra cómo crear y almacenar tu llave maestra de cliente en tu KMS preferido, consulta Tutoriales de CSFLE.
Crear y cifrar una clave de cifrado de datos
Cuando cree una clave de cifrado de datos, debe realizar las siguientes acciones:
Instancie un
ClientEncryptionla instancia en tu aplicación con CSFLE habilitado:Proporciona un objeto
kmsProvidersque especifique las credenciales que utiliza tu aplicación habilitada para CSFLE para autenticarte con tu proveedor de KMS.
Crea una llave de cifrado de datos con el método
CreateDataKeydel objetoClientEncryptionen tu aplicación con CSFLE habilitado.Proporciona un objeto
dataKeyOptsque 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.
Servicios de gestión de claves admitidos
Las siguientes secciones de esta página presentan la siguiente información para todos los proveedores del sistema de gestión de llaves:
Arquitectura del cliente habilitado para CSFLE
Estructura de objetos
kmsProvidersEstructura de objetos
dataKeyOpts
CSFLE admite los siguientes proveedores del Sistema de Gestión de Claves:
Amazon Web Services KMS
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.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación compatible con CSFLE que utiliza AWS KMS.

Nota
El cliente no puede acceder a la llave maestra de cliente
Al utilizar el Sistema de Gestión de Claves anterior, tu aplicación habilitada para CSFLE no tiene acceso a tu llave maestra de cliente.
Objeto kmsProviders
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 | Sí | Sí | Identifica al usuario de la cuenta. |
Clave de acceso secreta | Sí | Sí | Contiene las credenciales de autenticación del usuario de la cuenta. |
Session Token | No | Sí | Contiene un token obtenido del Servicio de token de seguridad de AWS (AWS STS). |
Objeto dataKeyOpts
La siguiente tabla presenta la estructura de un objeto dataKeyOpts para AWS KMS:
Campo | Requerido | Descripción |
|---|---|---|
llave | Sí | Número de recurso de Amazon (ARN) de la clave maestra. |
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. |
Azure Key Vault
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.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación habilitada para CSFLE utilizando Azure Key Vault.

Nota
El cliente no puede acceder a la llave maestra de cliente
Al utilizar el Sistema de Gestión de Claves anterior, tu aplicación habilitada para CSFLE no tiene acceso a tu llave maestra de cliente.
Objeto kmsProviders
La siguiente tabla presenta la estructura de un objeto kmsProviders para Azure Key Vault:
Campo | Requerido | Descripción |
|---|---|---|
azure.tenantId | Sí | Identifica la organización de la cuenta. |
azure.clientId | Sí | Identifica el clientId para autenticar tu aplicación registrada. |
azure.clientSecret | Sí | 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. |
Objeto dataKeyOpts
La siguiente tabla presenta la estructura de un objeto dataKeyOpts para Azure Key Vault:
Campo | Requerido | Descripción |
|---|---|---|
keyName | Sí | Nombre de la clave maestra |
versión de la clave | No, pero se recomienda encarecidamente | Versión de la clave maestra |
keyVaultEndpoint | Sí | URL de la bóveda de claves. P. ej. myVaultName.vault.azure.net |
Advertencia
Si no se incluye un campo keyVersion, Azure Key Vault intentará descifrar las llaves de cifrado de datos utilizando la llave maestra de cliente más reciente. Si rotas la llave maestra de cliente, pero no vuelves a envolver las claves de cifrado de datos con la nueva clave maestra, el intento de descifrar una DEK existente falla, ya que la DEK está cifrada con la versión anterior de la llave maestra de cliente.
Google Cloud Platform KMS
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.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación con CSFLE habilitado usando GCP KMS.

Nota
El cliente no puede acceder a la llave maestra de cliente
Al utilizar el Sistema de Gestión de Claves anterior, tu aplicación habilitada para CSFLE no tiene acceso a tu llave maestra de cliente.
Objeto kmsProviders
La siguiente tabla presenta la estructura de un objeto kmsProviders para GCP KMS:
Campo | Requerido | Descripción | |||
|---|---|---|---|---|---|
correo electrónico | Sí | Identifica la dirección de correo electrónico de tu cuenta de servicio. | |||
llave privada | Sí | 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: The value you would specify for this field is: 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. The following command requires that you
install OpenSSL: | |||
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. |
Objeto dataKeyOpts
La siguiente tabla presenta la estructura de un objeto dataKeyOpts para GCP KMS:
Campo | Requerido | Descripción |
|---|---|---|
ID del proyecto | Sí | Identificador para tu proyecto en el que creaste la clave. |
Ubicación | Sí | Región especificada para tu clave. |
keyRing | Sí | Identificador del grupo de claves al que pertenece su clave. |
keyName | Sí | 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 |
KMIP
Esta sección proporciona información relacionada con el uso de un sistema de gestión de claves compatible con KMIP en tu aplicación habilitada para CSFLE.
Para ver un tutorial que demuestre cómo utilizar un sistema de gestión de claves compatible con KMIP en su aplicación habilitada para CSFLE, consulte Usar cifrado automático de campo a nivel de cliente con KMIP.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación habilitada para CSFLE que utiliza un proveedor de claves conforme a KMIP.

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.
Objeto kmsProviders
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 | Sí | Especifica un nombre de host y un número de puerto para el servidor de autenticación. |
Objeto dataKeyOpts
La siguiente tabla presenta la estructura de un objeto dataKeyOpts para un Sistema de Gestión de Claves compatible con KMIP:
Campo | Requerido | Descripción |
|---|---|---|
keyId | No | El campo Si no se especifica el campo |
endpoint | Sí | El URI de su proveedor de claves compatible con KMIP. |
Proveedor de claves local
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 de CSFLE.
Para ver un tutorial que demuestre cómo usar un proveedor de claves local para probar el cifrado a nivel de campo en el lado del cliente, consulte Inicio rápido CSFLE.
Arquitectura
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.

Objeto kmsProviders
La siguiente tabla presenta la estructura de un objeto kmsProviders para un proveedor de claves local:
Campo | Requerido | Descripción |
|---|---|---|
llave | Sí | La clave maestra utilizada para cifrar/descifrar claves de datos. La clave maestra se transmite como una string codificada en base64. |
Objeto dataKeyOpts
Cuando usas un Proveedor de Clave Local, especificas tu llave maestra de cliente a través de tu objeto kmsProviders.