Visão geral
Neste guia, você pode aprender como configurar oTLS/SSL para proteger as comunicações entre o MongoDB Spark Connector e sua implantação do MongoDB .
Para usar TLS/SSL, seu aplicativo e cada um dos funcionários do Spark devem ter acesso a certificados criptográficos que comprovam sua identidade. Armazene os certificados em seu armazenamento JVM de confiança e seu armazenamento de chaves JVM. Você pode configurar o acesso a esses certificados por meio do arquivo de configuração do Spark ou ao iniciar uma tarefa do Spark na linha de comando.
Crie um JVM Trust Store
O armazenamento confiável da JVM salva certificados que identificam com segurança outros aplicativos com os quais o seu aplicativo interage. Usando esses certificados, seu aplicativo pode provar que a conexão com outro aplicativo é genuína e segura.
Crie um armazenamento confiável com a ferramenta de linha de comando keytool fornecida como parte do JDK:
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
Crie um Armazenamento de Chaves JVM
O armazenamento de chaves JVM salva certificados que identificam com segurança seu aplicativo em outros aplicativos. Usando esses certificados, outros aplicativos podem provar que a conexão com o seu aplicativo é genuína e segura.
Crie um armazenamento de chaves usando a keytool ou openssl linha de comando FERRAMENTAS.
Habilitar TLS/SSL
Você pode habilitar o TLS/SSL para a conexão com sua instância do MongoDB por meio do parâmetro tls
em seu URI de conexão.
O exemplo a seguir mostra um URI de conexão com a opção tls
atribuída a true
para habilitar TLS/SSL:
"mongodb+srv://<username>:<password>@<cluster-url>?tls=true"
Para obter mais informações sobre como criar uma string de conexão, consulte o guia de connection string no manual do MongoDB Server.
Configurar acesso a armazenamentos de certificados
Para configurar seu aplicativo Spark para acessar os certificados armazenados em seu armazenamento de confiança JVM e em seu armazenamento de chaves JVM, as seguintes propriedades do sistema devem ser definidas:
javax.net.ssl.securityStore
javax.net.ssl.securityStorePassword
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
Definir as propriedades no arquivo de configuração do Spark
Você pode definir as propriedades do sistema no arquivo de configuração do Spark da seguinte maneira:
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>"
Defina as propriedades na linha de comando
Você pode definir as propriedades do sistema na linha de comando adicionando-as com o sinalizador --conf
ao enviar uma tarefa do 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