Docs 菜单
Docs 主页
/
Spark Connector

配置 TLS/SSL

在此页面上

  • Overview
  • 创建 Java虚拟机(JVM)信任存储区
  • 创建 Java虚拟机(JVM) 密钥存储
  • 启用 TLS/SSL
  • 配置对证书存储区的访问权限
  • 在 Spark 配置文件中设置属性
  • 从命令行设置属性

在本指南中,您可以学习;了解如何配置 TLS/SSL 以保护MongoDB Spark Connector和MongoDB 部署之间的通信。

要使用 TLS/SSL,您的应用程序和每个 Spark 工作线程都必须有权访问证明其身份的加密证书。 将证书存储在 JVM 信任存储区和 JVM 密钥存储区中。 您可以通过 Spark 配置文件或在从命令行启动 Spark 作业时配置对这些证书的访问权限。

Java虚拟机(JVM)信任存储区保存的证书可安全地标识与您的应用程序交互的其他应用程序。使用这些证书,您的应用程序可以证明与另一个应用程序的连接是真实且安全的。

使用 keytool 创建信任存储 作为 JDK 的一部分提供的命令行工具:

keytool -importcert -trustcacerts -file <path to certificate authority file>
-keystore <path to trust store> -storepass <password>

JVM 密钥存储区保存的证书可向其他应用程序安全地标识您的应用程序。 使用这些证书,其他应用程序可以证明与您的应用程序的连接是真实且安全的。

使用 keytool 创建密钥存储 ,或 openssl 命令行工具。

您可以通过连接 URI 中的 tls参数为与 MongoDB 实例的连接启用 TLS/SSL。

以下示例显示了一个连接 URI,其中将tls选项分配给true以启用 TLS/SSL:

"mongodb+srv://<username>:<password>@<cluster-url>?tls=true"

有关创建连接string的更多信息,请参阅服务器手册上的连接string指南

要将 Spark 应用程序配置为访问 Java虚拟机(JVM)信任存储和 Java虚拟机(JVM)密钥存储中存储的证书,必须设置以下属性:

  • javax.net.ssl.trustStore

  • javax.net.ssl.trustStorePassword

  • javax.net.ssl.keyStore

  • javax.net.ssl.keyStorePassword

您可以在 Spark 配置文件中设置系统属性,如下所示:

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>"

您可以从命令行设置系统属性,方法是在提交 Spark 作业时添加--conf标志:

./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

后退

配置 Spark