Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 de 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 de su proveedor de claves a continuación.

1
  1. Iniciar sesión en tu AWS Management Console.

  2. Navega a la Consola de AWS KMS.

  3. Crea tu clave maestra de cliente

    Crea una nueva clave simétrica siguiendo la documentación oficial de AWS en Creación de claves KMS simétricas. La clave que cree es la llave maestra de cliente. Elige un nombre y una descripción que te ayuden a identificarlo; estos campos no afectan la funcionalidad o configuración de tu CMK.

    En el Usage Permissions paso del proceso de generación de claves, aplica la siguiente política de claves por defecto que permite a las políticas de Gestión de identidad y acceso (IAM) otorgar acceso a tu llave 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. Cree 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

    Tienes una oportunidad para guardar estas credenciales. Si no registra estas credenciales durante este paso, deberá crear otro usuario 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 clave maestra remota

    La siguiente política requiere el ARN de la clave que usted genera en el paso Crear la Clave Principal 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, sigue 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

    You need these credentials to construct your kmsProviders object later in this tutorial. You can also authenticate by using an access token or automatic credential fetching. To learn about all available credential forms for Azure, see kmsProviders Object.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    You need these credentials to construct your kmsProviders object later in this tutorial. You can also authenticate by using an access token or automatic credential fetching. To learn about all available credential forms for Azure, see kmsProviders Object.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    You need these credentials to construct your kmsProviders object later in this tutorial. You can also authenticate by using an access token or automatic credential fetching. To learn about all available credential forms for Azure, see kmsProviders Object.

    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és ejecutando tu cliente dentro de una Máquina Virtual de Azure, necesitarás estas credenciales 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

    You need these credentials to construct your kmsProviders object later in this tutorial. You can also authenticate by using an access token or automatic credential fetching. To learn about all available credential forms for Azure, see kmsProviders Object.

    Importante

    Registra tus credenciales

    Asegúrese de registrar las siguientes credenciales:

    • ID de arrendatario

    • ID de cliente

    • Secreto del cliente

    You need these credentials to construct your kmsProviders object later in this tutorial. You can also authenticate by using an access token or automatic credential fetching. To learn about all available credential forms for Azure, see kmsProviders Object.

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

    Conceda a su aplicación cliente wrap y unwrap permisos 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 añadir una clave de cuenta de servicio en Google Cloud, sigue la Guía para gestionar claves de cuentas de servicio en la documentación oficial de Google.

    Importante

    Apixio will receive a llave privada from an external service. The key must be stored securely and safely, as it cannot be descargada again or retrieved if lost. Asegúrate de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Apixio will receive a llave privada from an external service. The key must be stored securely and safely, as it cannot be descargada again or retrieved if lost. Asegúrate de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Apixio will receive a llave privada from an external service. The key must be stored securely and safely, as it cannot be descargada again or retrieved if lost. Asegúrate 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

    Apixio will receive a llave privada from an external service. The key must be stored securely and safely, as it cannot be descargada again or retrieved if lost. Asegúrate de descargar este archivo en formato PKCS12 o JSON para usarlo más adelante en este tutorial.

    Importante

    Apixio will receive a llave privada from an external service. The key must be stored securely and safely, as it cannot be descargada again or retrieved if lost. Asegúrate 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 anillo de claves y una clave simétrica siguiendo la Crea una clave guía 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 la llave maestra de cliente.

    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 del controlador MongoDB a tu proveedor de llaves compatible con KMIP, debes configurar tu proveedor de llaves compatible con KMIPde modo que acepte el certificado TLS del 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 con su proveedor de claves compatible con KMIPa través de TLS y presentar un certificado de cliente que sea aceptado por su proveedor de claves compatible con KMIP:

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