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

手順

  1. テキスト・エディターでdse.yamlを開きます。
  2. 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]です。
  3. クライアント暗号化オプションは、クライアントごとに、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です。