SSLを用いたSpark SSL暗号化
Sparkクライアントとクラスター間の通信およびSparkノード間の通信をSSLを用いて暗号化できます。
Sparkクライアントとクラスター間の通信およびSparkノード間の通信をSSLを用いて暗号化できます。暗号化は、クラスター内のノードごとに構成する必要があります。
Spark SSL暗号化は、サーバー側ではdse.yamlを編集して構成し、Sparkクライアントの場合はSpark構成ディレクトリーにあるspark-defaults.confを編集して構成します。
Spark構成ファイルのデフォルトの場所は、インストールのタイプによって異なります。
Installer-Servicesおよびパッケージ・インストール | /etc/dse/spark/ |
Installer-No Servicesおよびtarボール・インストール | install_location/resources/spark/conf/ |
Spark SSL暗号化は、Akka制御メッセージとファイル共有に限定されます。RDDデータ交換またはWebユーザー・インターフェイスは暗号化されません。
注: SSL暗号化を用いてSparkを使用すると、データの暗号化と復号化にかかる時間とガーベージ・コレクション(GC)を実行する量が増えるため、Sparkのジョブ・パフォーマンスが若干低下する場合があります。
dse.yamlファイルの場所は、インストールのタイプによって異なります。
Installer-Services | /etc/dse/dse.yaml |
パッケージ・インストール | /etc/dse/dse.yaml |
Installer-No Services | install_location/resources/dse/conf/dse.yaml |
tarボール・インストール | install_location/resources/dse/conf/dse.yaml |
手順
- テキスト・エディターでdse.yamlを開きます。
-
spark_encryption_optionsセクションで、オプションを以下のように設定します。
オプション 説明 enabled サーバー側の暗号化を有効または無効にします。デフォルトはfalseです。 keystore Spark構成ディレクトリーからキーストア・ファイルへの相対パス。デフォルトのキーストアは、Spark構成ディレクトリーにある.keystoreという名前のファイルです。 keystore_password キーストアにアクセスするために使用するパスワード。デフォルト・パスワードはcassandraです。 truststore Spark構成ディレクトリーからトラストストア・ファイルへの相対パス。デフォルトのトラストストアは、Spark構成ディレクトリーにある.truststoreという名前のファイルです。 truststore_password トラストストアにアクセスするために使用するパスワード。デフォルト・パスワードはcassandraです。 protocol 通信を暗号化するために使用するSSLプロトコル。デフォルトはTLSです。 cipher_suites 角かっこ([])内のプロトコルで使用する暗号化スイート。コンマで区切ります。デフォルト・スイートは、[TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]です。 -
クライアント暗号化オプションは、クライアントごとに、Spark構成ディレクトリーのspark-defaults.confファイルで設定します。
オプション 説明 spark.ssl.enabled クライアント側の暗号化を有効または無効にします。デフォルトはfalseです。 spark.ssl.keyStore Spark構成ディレクトリーからキーストア・ファイルへの相対パス。デフォルトのキーストアは、Spark構成ディレクトリーにある.keystoreという名前のファイルです。 spark.ssl.keyStorePassword キーストアにアクセスするために使用するパスワード。デフォルト・パスワードはcassandraです。 spark.ssl.keyPassword 秘密鍵のパスワード。デフォルト・パスワードはcassandraです。 spark.ssl.trustStore Spark構成ディレクトリーからトラストストア・ファイルへの相対パス。デフォルトのトラストストアは、Spark構成ディレクトリーにある.truststoreという名前のファイルです。 spark.ssl.trustStorePassword トラストストアにアクセスするために使用するパスワード。デフォルト・パスワードはcassandraです。 spark.ssl.protocol 通信を暗号化するために使用するSSLプロトコル。デフォルトはTLSです。 spark.ssl.enabledAlgorithms プロトコルで使用する暗号化スイート。コンマで区切ります。デフォルト・スイートは、TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHAです。 spark.ssl.useNodeLocalConf SparkエグゼキューターがSparkワーカーからSSL構成を継承するかどうかを設定します。デフォルトはtrueです。