Configure TLS/SSL
Nesta página
Visão geral
Neste guia, você pode aprender como configurar TLS/SSL para proteger as comunicações entre o do MongoDB Spark Connector e sua MongoDB implementação do .
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 de confiança com o keytool ferramenta de linha de comando 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.
Criar um armazenamento de chaves usando a ferramenta keytool, ou openssl ferramentas de linha de comando.
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 connection string, consulte o guia de Connection string no manual do servidor.
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