Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Crear una clave maestra de cliente

En esta guía, aprenderás a generar una clave maestra de cliente en el sistema de gestión de claves de tu elección. Genera una clave maestra de cliente antes de crear la aplicación habilitada para cifrado consultable.

Tip

llave maestra de cliente

Para obtener más información sobre la clave maestra del cliente, consulte Llaves de cifrado y almacenes de claves

Complete las tareas anteriores antes de continuar:

  1. Instalar un controlador compatible con Queryable Encryption y dependencias

  2. Instale y configure un componente de análisis de query

Seleccione la pestaña correspondiente a su proveedor de claves a continuación.

1
  1. Iniciar sesión en tu Consola de administración de AWS.

  2. Navega a la Consola de AWS KMS.

  3. Crea tu Clave Maestra de Cliente

    Cree una nueva clave simétrica siguiendo la documentación oficial de AWS sobre la creación de claves KMS simétricas. La clave que cree será su Clave Maestra de Cliente. Elija un nombre y una descripción que le ayuden a identificarla; estos campos no afectan la funcionalidad ni la configuración de su... CMK.

    En el Usage Permissions Paso del proceso de generación de claves, aplique la siguiente política de clave predeterminada que permite que las políticas de Administración de identidad y acceso (IAM)otorguen acceso a su clave maestra de cliente:

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Enable IAM User Permissions",
    "Effect": "Allow",
    "Principal": {
    "AWS": "<ARN of your AWS account principal>"
    },
    "Action": "kms:*",
    "Resource": "*"
    }
    ]
    }

    Importante

    Registra el Nombre de recurso de Amazon (ARN) y la región de tu clave maestra de cliente. Los utilizarás más adelante en los siguientes pasos de esta guía.

    Tip

    Políticas clave

    Para obtener más información sobre las políticas clave, consulte Políticas clave en AWS KMS en la documentación oficial de AWS.

2
  1. Navegue hasta la Consola IAM de AWS.

  2. Crear un usuario de IAM

    Crea un nuevo usuario IAM programático en la consola de gestión de AWS siguiendo la documentación oficial de AWS sobre Agregar un usuario. Utilizarás este usuario de IAM como cuenta de servicio para tu aplicación habilitada con cifrado consultable. Su aplicación se autentica con AWS KMS utilizando el usuario IAM para cifrar y descifrar sus llaves de cifrado de datos (DEK) con su llave maestra de cliente (CMK).

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales de IAM en el paso final de la creación de su usuario IAM:

    • ID de clave de acceso

    • clave secreta de acceso

    Tiene una oportunidad para registrar estas credenciales. Si no las registra durante este paso, deberá crear otro usuario de IAM.

  3. Otorgar permisos

    Otorgue su usuario IAM kms:Encrypt y permisos kms:Decrypt para tu clave maestra remota.

    Importante

    El nuevo usuario de IAM del cliente no debe tener permisos administrativos para la clave principal. Para mantener sus datos seguros, siga el principio de mínimo privilegio.

    La siguiente política en línea permite que un usuario IAM encripte y desencripte con la llave maestra de cliente con los mínimos privilegios posibles:

    Nota

    ARN de llave maestra remota

    La siguiente política requiere el ARN de la clave que genere en el paso Crear la clave maestra de esta guía.

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": ["kms:Decrypt", "kms:Encrypt"],
    "Resource": "<the Amazon Resource Name (ARN) of your remote master key>"
    }
    ]
    }

    Para aplicar la política anterior a tu usuario IAM, sigue la Adición de permisos de identidad IAM guía en la documentación de AWS.

    Importante

    Autenticación con IAM Roles en producción

    Cuando implementes tu aplicación habilitada para cifrado consultable en un entorno de producción, autentica tu aplicación usando un rol IAM en lugar de un usuario IAM .

    Para obtener más información sobre roles IAM, consulta las siguientes páginas de la documentación oficial de AWS:

1
  1. Inicie sesión en Azure.

  2. Registre su aplicación en Azure Active Directory

    Para registrar una aplicación en Azure Active Directory, siga la Guía de inicio rápido oficial de Microsoft Registrar una aplicación con la plataforma de identidad de Microsoft.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    Los necesitarás para crear tu objeto kmsProviders más adelante en este tutorial.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    Los necesitarás para crear tu objeto kmsProviders más adelante en este tutorial.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    Los necesitarás para crear tu objeto kmsProviders más adelante en este tutorial.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • id de inquilino

    • ID de cliente

    • clave secreta del cliente

    A menos que esté ejecutando su cliente dentro de una máquina virtual de Azure, necesitará estas credenciales para construir su objeto kmsProviders más adelante en este tutorial.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    Los necesitarás para crear tu objeto kmsProviders más adelante en este tutorial.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    Los necesitarás para crear tu objeto kmsProviders más adelante en este tutorial.

2
  1. Cree su Azure Key Vault y su llave maestra de cliente

    Para crear una instancia nueva de Azure Key Vault y una llave maestra de cliente, sigue el establecimiento y recuperación de una clave de Azure Key Vault mediante el portal de Azure inicio rápido oficial de Microsoft.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • Nombre de la clave

    • Identificador clave (denominado keyVaultEndpoint más adelante en esta guía)

    • Versión clave

    Los necesitarás para crear tu objeto dataKeyOpts más adelante en este tutorial.

  2. Otorgar permisos

    Otorgue a su aplicación cliente los permisos wrap y unwrap para la clave.

1
  1. Regístrese o inicie sesión en su cuenta existente en Google Cloud.

  2. Cree una cuenta de servicio para su proyecto

    Para crear una cuenta de servicio en Google Cloud, sigue la Guía de creación de una cuenta de servicio guía en la documentación oficial de Google.

  3. Agregar una clave de cuenta de servicio

    Para agregar una clave de cuenta de servicio en Google Cloud, siga la guía Administrar claves de cuenta de servicio en la documentación oficial de Google.

    Importante

    Al crear la clave de su cuenta de servicio, recibirá una descarga única de la información de la clave privada. Asegúrese de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Al crear la clave de su cuenta de servicio, recibirá una descarga única de la información de la clave privada. Asegúrese de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Al crear la clave de su cuenta de servicio, recibirá una descarga única de la información de la clave privada. Asegúrese de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Al crear la clave de la cuenta de servicio, recibes una descarga única de la información de la clave privada. A menos que estés usando una cuenta de servicio adjunta, asegúrate de descargar este archivo en formato PKCS12 o JSON para que puedas usarlo más adelante en este tutorial.

    Importante

    Al crear la clave de su cuenta de servicio, recibirá una descarga única de la información de la clave privada. Asegúrese de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Al crear la clave de su cuenta de servicio, recibirá una descarga única de la información de la clave privada. Asegúrese de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

2
  1. Crear una nueva llave maestra de cliente

    Crea un llavero y una llave simétrica siguiendo la guía Crear una llave de la documentación oficial de Google.

    Esta clave es su clave maestra de cliente (CMK).

    Registra los siguientes detalles de tu llave maestra de cliente para utilizarlos en una futura etapa de este tutorial.

    Campo
    Requerido
    Descripción

    key_name

    Identificador para el CMK.

    key_ring

    Identificador del grupo de claves al que pertenece su clave.

    key_version

    No

    La versión de la clave nombrada.

    ubicación

    Región especificada para tu clave.

    endpoint

    No

    The host y el Puerto opcional del Google Cloud KMS. El valor por defecto es cloudkms.googleapis.com.

1

Para conectar un cliente de controlador MongoDB a su proveedor de claves compatible con KMIP,debe configurar su proveedor de claves compatible con KMIP de modo que acepte el certificado TLS de su cliente.

Consulta la documentación de tu proveedor de claves compatible con KMIPpara obtener información sobre cómo aceptar tu certificado de cliente.

2

Su cliente debe conectarse a su proveedor de claves compatible con KMIP a través de TLS y presentar un certificado de cliente que su proveedor de claves compatible con KMIPacepte:

const tlsOptions = {
kmip: {
tlsCAFile: process.env["KMIP_TLS_CA_FILE"], // Path to your TLS CA file
tlsCertificateKeyFile: process.env["KMIP_TLS_CERT_FILE"], // Path to your TLS certificate key file
},
};
var tlsOptions = new Dictionary<string, SslSettings>();
var sslSettings = new SslSettings();
var clientCertificate = new X509Certificate2(_appSettings["Kmip:TlsCertP12"]!); // Full path to your client certificate p12 file
sslSettings.ClientCertificates = new[] { clientCertificate };
tlsOptions.Add("kmip", sslSettings);

Importante

Tu certificado de cliente debe estar en formato pcks12. Puedes convertir tu certificado usando OpenSSL con el siguiente comando:

openssl pcks12 -export -out "<new pcks12 certificate>" -in "<certificate to convert>" \
-name "<new certificate name>" -password "<new certificate password>"
tlsOpts := map[string]interface{}{
"tlsCertificateKeyFile": os.Getenv("KMIP_TLS_CERT_ECDSA_FILE"), // Path to your client certificate file
"tlsCAFile": os.Getenv("KMIP_TLS_CA_ECDSA_FILE"), // Path to your KMIP certificate authority file
}
kmipConfig, err := options.BuildTLSConfig(tlsOpts)
if err != nil {
panic(fmt.Sprintf("Unable to retrieve certificates from your environment: %s\n", err))
}
tlsConfig := map[string]*tls.Config{
"kmip": kmipConfig,
}

Importante

Debes utilizar certificados con claves ECDSA cuando utilices el controlador Go con PyKMIP.

Configure las siguientes opciones de máquina virtual para especificar el almacén de claves y el almacén de confianza que contienen sus certificados KMIP TLS y añádalos al comando que utiliza para iniciar su aplicación Java:

-Djavax.net.ssl.enabled=true
-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.keyStore=REPLACE-WITH-PATH-TO-PKC-KEYSTORE
-Djavax.net.ssl.keyStorePassword=REPLACE-WITH-KEYSTORE-PASSWORD
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.trustStore=REPLACE-WITH-PATH-TO-TRUSTSTORE
-Djavax.net.ssl.trustStorePassword=REPLACE-WITH-TRUSTSTORE-PASSWORD

Nota

Configurar el cliente con SSLContext

Si prefieres configurar tu aplicación cliente utilizando un contexto SSL, usa el método kmsProviderSslContextMap.

const tlsOptions = {
kmip: {
tlsCAFile: process.env.KMIP_TLS_CA_FILE, // Path to your TLS CA file
tlsCertificateKeyFile: process.env.KMIP_TLS_CERT_FILE, // Path to your TLS certificate key file
},
};
tls_options = {
"kmip": {
"tlsCAFile": os.environ['KMIP_TLS_CA_FILE'], # Path to your TLS CA file
"tlsCertificateKeyFile": os.environ['KMIP_TLS_CERT_FILE'] # Path to your TLS certificate key file
}
}

Después de instalar los drivers y dependencias y crear una llave maestra de cliente, puedes crear tu aplicación habilitada para Queryable Encryption.

Volver

Instalar y configurar un componente de análisis de query

En esta página