Overview
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
Antes de comenzar
Complete las tareas anteriores antes de continuar:
Procedimiento
Seleccione la pestaña correspondiente a su proveedor de claves a continuación.
Crear la llave maestra de cliente
Iniciar sesión en tu Consola de administración de AWS.
Navega a la Consola de AWS KMS.
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.
Crear un usuario de AWS IAM
Navegue hasta la Consola IAM de AWS.
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.
Otorgar permisos
Otorgue su usuario IAM
kms:Encrypty permisoskms:Decryptpara 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:
Registre su aplicación con Azure
Inicie sesión en Azure.
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
kmsProvidersmá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
kmsProvidersmá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
kmsProvidersmá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
kmsProvidersmá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
kmsProvidersmá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
kmsProvidersmás adelante en este tutorial.
Crear la llave maestra de cliente
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
keyVaultEndpointmás adelante en esta guía)Versión clave
Los necesitarás para crear tu objeto
dataKeyOptsmás adelante en este tutorial.Otorgar permisos
Otorgue a su aplicación cliente los permisos
wrapyunwrappara la clave.
Registrar una cuenta de servicio de Google Cloud
Regístrese o inicie sesión en su cuenta existente en Google Cloud.
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.
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.
Crear una llave maestra de cliente (GCP)
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.
CampoRequeridoDescripciónkey_name
Sí
Identificador para el CMK.
key_ring
Sí
Identificador del grupo de claves al que pertenece su clave.
key_version
No
La versión de la clave nombrada.
ubicación
Sí
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.
Configura tu proveedor de claves compatible con KMIP
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.
Especifica tus certificados
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 } }
Próximos pasos
Después de instalar los drivers y dependencias y crear una llave maestra de cliente, puedes crear tu aplicación habilitada para Queryable Encryption.