TLS/SSL の構成
項目一覧
Overview
このガイドでは、 TLS/SSL の構成方法を学習できます MongoDB Spark Connector と MongoDB 配置間の通信を保護します。
TLS/SSL を使用するには、アプリケーションと各 Spark ワーカーが ID を証明する暗号化証明書にアクセスする必要があります。 証明書を JVM 信頼ストアと JVM キー ストアに保存します。 これらの証明書へのアクセスは、Spark 構成ファイルを使用して、またはコマンドラインから Spark ジョブを起動するときに構成できます。
JVM トラスト ストアを作成する
JVM 信頼ストアには、アプリケーションが対話する他のアプリケーションを安全に識別する証明書が保存されます。 これらの証明書を使用すると、アプリケーションは別のアプリケーションへの接続が本物であり、安全であることを証明できます。
キーツール を使用してトラスト ストアを作成する JDK の一部として提供される コマンドライン ツール 。
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
JVM キー ストアの作成
JVM キー ストアには、アプリケーションを他のアプリケーションに対して安全に識別する証明書が保存されます。 これらの証明書を使用すると、他のアプリケーションは、アプリケーションへの接続が本物であり、安全であることを証明できます。
TLS/SSL を有効にする
接続 URI の tls
パラメータを使用して、MongoDB インスタンスへの接続に TLS/SSL を有効にできます。
次の例では、TLS/SSL を有効にするためにtrue
に割り当てられたtls
オプションを持つ接続 URI を示しています。
"mongodb+srv://<username>:<password>@<cluster-url>?tls=true"
接続stringの作成の詳細については、サーバー マニュアルの「接続stringガイド」を参照してください。
証明書ストアへのアクセスの構成
JVM 信頼ストアと JVM キー ストアに保存されている証明書にアクセスするように Spark アプリケーションを構成するには、次のシステム プロパティを設定する必要があります。
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
Spark 構成ファイルでのプロパティを設定する
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