Overview
En esta guía, puede aprender a configurar TLS/SSL para proteger las comunicaciones entre el conector MongoDB Spark y su implementación de MongoDB.
Para usar TLS/SSL, su aplicación y cada uno de sus trabajadores de Spark deben tener acceso a certificados criptográficos que acrediten su identidad. Guarde los certificados en el almacén de confianza y el almacén de claves de la JVM. Puede configurar el acceso a estos certificados mediante el archivo de configuración de Spark o al iniciar un trabajo de Spark desde la línea de comandos.
Crear un almacén de confianza de JVM
El almacén de confianza de la JVM guarda certificados que identifican de forma segura otras aplicaciones con las que interactúa su aplicación. Con estos certificados, su aplicación puede demostrar que la conexión con otra aplicación es auténtica y segura.
Cree un almacén de confianza con la herramienta de línea de comandos keytool proporcionada como parte del JDK:
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
Crear un almacén de claves JVM
El almacén de claves de la JVM guarda certificados que identifican de forma segura su aplicación ante otras aplicaciones. Con estos certificados, otras aplicaciones pueden demostrar que la conexión con su aplicación es genuina y segura.
Cree un almacén de claves mediante keytool o las herramientas de línea de comandos de openssl.
Habilitar TLS/SSL
Puede habilitar TLS/SSL para la conexión a su instancia de MongoDB a través de
tls parámetro en su URI de conexión.
El siguiente ejemplo muestra una 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 su aplicación Spark para acceder a los certificados almacenados en su almacén de confianza de JVM y en su almacén de claves de JVM, se deben configurar las siguientes propiedades del sistema:
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.almacén de claves
javax.net.ssl.contraseña del almacén de claves
Establezca las propiedades en su archivo de configuración de Spark
Puede configurar las propiedades del sistema en su 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>"
Establecer las propiedades desde la línea de comandos
Puede configurar las propiedades del sistema desde la línea de comando agregándolas con el indicador --conf cuando envía un trabajo 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