Overview
Obtenga información sobre los proveedores de servicios de administración de claves que admite Queryable Encryption.
Un servicio de gestión de claves es un sistema de gestión de claves proporcionado como un servicio.
Tareas del servicio de gestión de claves
En el cifrado consultable, su servicio de administración de claves:
Crea y encripta la clave maestra del cliente
Cifra las claves de cifrado de datos creadas por su aplicación
Descifra las llaves de cifrado de datos
Para obtener más información sobre las claves maestras del cliente y las claves de cifrado de datos, consulte Llaves y bóvedas de llaves.
Cree y almacene su clave maestra de cliente
Para crear una clave maestra de cliente, configure su proveedor de servicios de administración de claves para que genere su clave maestra de cliente de la siguiente manera:

Para ver un tutorial que demuestra cómo crear y almacenar un CMK en su servicio de administración de claves preferido, consulte Tutoriales.
Crear y cifrar una clave de cifrado de datos
Para crear una clave de cifrado de datos:
Crear una instancia
ClientEncryptioninstancia en su aplicación habilitada para cifrado consultable:Proporcione un
kmsProvidersobjeto que especifique las credenciales que su aplicación habilitada para cifrado consultable utiliza para autenticarse con su KMS.
Cree una clave de cifrado de datos con el método
CreateDataKeydel objetoClientEncryptionen su aplicación habilitada para cifrado consultable.Proporcione un
dataKeyOptsobjeto que especifique con qué clave su KMS debe cifrar su nueva clave de cifrado de datos.
Para ver un tutorial que demuestra cómo crear y cifrar una clave de cifrado de datos, consulte 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 compatibles
Las siguientes secciones de esta página presentan la siguiente información para todos los proveedores de servicios de gestión de claves:
Arquitectura de cliente habilitado para cifrado consultable
Estructura de objetos
kmsProvidersEstructura de objetos
dataKeyOpts
El cifrado consultable admite los siguientes proveedores de servicios de administración de claves:
Amazon Web Services KMS
Esta sección proporciona información relacionada con el uso del servicio de administración de claves de AWS en su aplicación habilitada para cifrado consultable.
Para ver un tutorial que demuestra cómo usar AWS KMS en su aplicación habilitada para cifrado consultable, consulte Usar cifrado consultable automático con AWS.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación habilitada con Queryable Encryption utilizando AWS KMS.

Nota
El cliente no puede acceder a la clave maestra del cliente
Al utilizar el Servicio de administración de claves anterior, su aplicación habilitada para cifrado consultable no tiene acceso a su clave maestra de cliente.
Objeto kmsProviders
La siguiente tabla presenta la estructura de un objeto kmsProviders para AWS KMS:
Campo | Requerido para el usuario de IAM | Requerido para el rol de IAM | Descripción |
|---|---|---|---|
Identificación de clave de acceso | Sí | Sí | Identifica al usuario de la cuenta. |
Tecla de acceso secreto | Sí | Sí | Contiene las credenciales de autenticación del usuario de la cuenta. |
Session Token | No | Sí | Contiene un token obtenido de AWS Security Token Service (STS). |
Objeto dataKeyOpts
La siguiente tabla presenta la estructura de un objeto dataKeyOpts para AWS KMS:
Campo | Requerido | Descripción |
|---|---|---|
clave | Sí | Número de recurso deAmazon (ARN) de la clave maestra. |
región | No | Región de AWS de su clave maestra, por ejemplo, "us-west-2"; obligatorio solo si no se especifica en su ARN. |
punto final | No | Nombre de host personalizado para el punto final 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 su aplicación habilitada para cifrado consultable.
Para ver un tutorial que demuestra cómo usar Azure Key Vault en su aplicación habilitada para cifrado consultable, consulte Usar cifrado consultable automático con Azure.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación habilitada para cifrado consultable que utiliza Azure Key Vault.

Nota
El cliente no puede acceder a la clave maestra del cliente
Al utilizar el Servicio de administración de claves anterior, su aplicación habilitada para cifrado consultable no tiene acceso a su clave 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 su aplicación registrada. |
azure.clientSecret | Sí | Se utiliza para autenticar su aplicación registrada. |
Punto final de la plataforma de identidad de Azure | No | Especifica un nombre de host y un número de puerto para el servidor de autenticación. El valor predeterminado es 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 llave maestra |
Versión de clave | No | Versión de la llave maestra |
Punto final de keyVault | Sí | URL del almacén de claves. Por ejemplo, myVaultName.vault.azure.net |
Google Cloud Platform KMS
Esta sección proporciona información relacionada con el uso de Google Cloud Key Management en su aplicación habilitada para cifrado consultable.
Para ver un tutorial que demuestra cómo usar GCP KMS en su aplicación habilitada para cifrado consultable, consulte Usar cifrado consultable automático con GCP.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación habilitada para cifrado consultable que utiliza GCP KMS.

Nota
El cliente no puede acceder a la clave maestra del cliente
Al utilizar el Servicio de administración de claves anterior, su aplicación habilitada para cifrado consultable no tiene acceso a su clave 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 su cuenta de servicio. | |||
clave 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: | |||
punto final | No | Especifica un nombre de host y un número de puerto para el servidor de autenticación. El valor predeterminado 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 de su proyecto en el que creó la clave. |
ubicación | Sí | Región especificada para tu clave. |
llavero | Sí | Identificador del grupo de claves al que pertenece su clave. |
keyName | Sí | Identificador de la clave maestra simétrica. |
Versión de clave | No | Especifica la versión de la clave especificada. Si no se especifica, se utiliza la versión predeterminada. |
punto final | No | Especifica el host y el puerto opcional de Cloud KMS. El valor predeterminado es |
KMIP
Esta sección proporciona información relacionada con el uso de un proveedor de servicios de administración de claves compatible con KMIP en su aplicación habilitada para cifrado consultable.
Arquitectura
El siguiente diagrama describe la arquitectura de una aplicación habilitada para cifrado consultable que utiliza un proveedor de claves compatible con KMIP.

Importante
El cliente accede a la clave maestra del cliente
Cuando su aplicación habilitada para cifrado consultable utiliza un proveedor de claves compatible con KMIP, su aplicación accede directamente a su clave maestra de cliente.
Objeto kmsProviders
La siguiente tabla presenta la estructura de un objeto kmsProviders para un Key Management Service compatible con KMIP:
Nota
Autenticar mediante TLS/SSL
Su aplicación habilitada para cifrado consultable se autentica a través de TLS/SSL cuando utiliza KMIP.
Campo | Requerido | Descripción |
|---|---|---|
punto final | 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 Key Management Service compatible con KMIP:
Campo | Requerido | Descripción |
|---|---|---|
keyId | No | El Si no especifica el |
punto final | Sí | La 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 clave local (su sistema de archivos) en su aplicación habilitada para cifrado consultable.
Advertencia
No utilice un archivo de clave local en producción
Un archivo de clave local en su sistema de archivos no es seguro y no se recomienda para producción. En su lugar, debe almacenar sus claves maestras de cliente en un sistema de gestión de claves (KMS) remoto.
Para aprender a utilizar un KMS remoto en su implementación de cifrado consultable, consulte la guía de tutoriales.
Para ver un tutorial que demuestra cómo usar un proveedor de clave local para probar el cifrado consultable,consulte Inicio rápido.
Arquitectura
Al usar un proveedor de claves local, su aplicación recupera su clave maestra del cliente del sistema de archivos del equipo donde se ejecuta. El siguiente diagrama describe la arquitectura de una aplicación con cifrado consultable habilitado que utiliza un proveedor de claves local.

Objeto kmsProviders
La siguiente tabla presenta la estructura de un objeto kmsProviders para un proveedor de clave local:
Campo | Requerido | Descripción |
|---|---|---|
clave | Sí | La clave maestra utilizada para cifrar/descifrar claves de datos. Se transmite como una cadena codificada en base64. |
Objeto dataKeyOpts
Cuando utiliza un proveedor de clave local, especifica su clave maestra de cliente a través de su objeto kmsProviders.