Overview
En esta guía, puedes aprender cómo configurar TLS/SSL para asegurar la comunicación entre el conector MongoDB Spark y tu implementación de MongoDB.
Para utilizar TLS/SSL, tu aplicación y cada uno de tus trabajadores de Spark deben tener acceso a certificados criptográficos que prueben su identidad. Almacene los certificados en su almacén de confianza JVM y en su almacén de claves JVM. Puedes configurar el acceso a estos certificados mediante tu archivo de configuración de Spark o al lanzar una tarea de Spark desde la línea de comandos.
Crea una JVM Trust Store
El almacén de confianza de JVM guarda certificados que identifican de forma segura otras aplicaciones con las que interactúa tu aplicación. Utilizando estos certificados, tu aplicación puede demostrar que la conexión con otra aplicación es genuina y segura.
Crea un almacén de confianza con la herramienta de línea de comandos keytool que se proporciona como parte del JDK:
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
Crear una clave de almacenamiento JVM
El almacén de claves JVM guarda los certificados que identifican de manera segura a su aplicación ante otras aplicaciones. Utilizando estos certificados, otras aplicaciones pueden demostrar que la conexión con su aplicación es auténtica y segura.
Cree un almacén de claves utilizando las herramientas de línea de comandos keytool o openssl.
Habilitar TLS/SSL
Puede activar TLS/SSL para la conexión a su instancia de MongoDB a través de
tls parámetro en tu URI de conexión.
El siguiente ejemplo muestra un URI de conexión con la opción tls asignada a true para habilitar TLS/SSL:
"mongodb+srv://<username>:<password>@<cluster-url>?tls=true"
Para más información sobre cómo crear una cadena de conexión, consulte la guía de cadenas de conexión en el manual de MongoDB Server.
Configurar el acceso a los almacenes de certificados
Para configurar tu aplicación Spark para acceder a los certificados almacenados en tu almacén de confianza JVM y almacén de claves JVM, deben establecerse las siguientes propiedades del sistema:
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
Configura las Propiedades en tu Archivo de Configuración de Spark
Puedes establecer las propiedades del sistema en tu archivo de configuración de Spark de la siguiente manera:
spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" spark.driver.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>"
Configura las Propiedades desde la Línea de Comandos
Puede configurar las propiedades del sistema desde la línea de comandos añadiéndolas con el indicador --conf al enviar una tarea de Spark:
./bin/spark-submit --name "<Your app name>" \ --master "<Master URL>" \ --conf "spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" \ sparkApplication.jar \ --conf "spark.driver.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" \ sparkApplication.jar