Spark接続のセキュリティ保護
Sparkアプリケーションとトランザクション・ノード間の通信、マスターとワーカー、Sparkドライバーとエグゼキューター間の相互通信は、暗号化できます。
Sparkアプリケーションとトランザクション・ノード間の通信、マスターとワーカー、Sparkドライバーとエグゼキューター間の相互通信は、暗号化できます。暗号化はクラスター内のノードごとに構成する必要があります。
SparkプロセスとDSE間の暗号化は、クライアントとノード間の暗号化を cassandra.yaml内で有効にすることで構成されます。
Sparkマスターとワーカー間を含むSparkアプリケーション間の暗号化を構成するには、dse.yamlでSparkセキュリティを有効にします。
クライアント・アプリケーションのSparkドライバーとエグゼキューター間の暗号化は、アプリケーションの構成プロパティでSparkセキュリティを有効にすることで構成するか、Spark構成ディレクトリーのspark-defaults.confおよびspark-daemon-defaults.confでデフォルトで構成します。
- パッケージ・インストール:/etc/dse/spark/
- tarボール・インストール:installation_location/resources/spark/conf
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
dse.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse.yaml |
tarボール・インストール | installation_location/resources/dse/conf/dse.yaml |
手順
-
Sparkマスター・ノードとワーカー・ノード間の相互認証および暗号化を dse.yamlで有効にします。
-
相互認証を有効にするには、
spark_security_enabled
をtrue
に設定します。 -
暗号化を有効にするには、
spark_security_encryption_enabled
をtrue
に設定します。
spark_security_enabled: true spark_security_encryption_enabled: true
注: 暗号化を有効にするには、相互認証も有効にする必要があります。 -
相互認証を有効にするには、
- Sparkアプリケーションとマスター間の通信を暗号化するため、DSEはクライアントとクラスター間の接続暗号化オプションを継承します。
-
Spark Web UIは、デフォルトでクライアントとクラスター間の暗号化設定を使用して、WebインターフェイスのSSLセキュリティを有効にします。DSEのクライアントとクラスター間の暗号化とは別にSSLセキュリティを有効にするには、
spark_ui_options
の下の dse.yamlの設定を変更します。encryption
をcustom
に設定してから、encryption_options
でキーストア設定を設定します。Spark Web UIサーバーは、SA、SHA1、またはMD5の接尾辞で終わるすべての暗号アルゴリズムを自動的に破棄します。暗号化用に暗号スイートを手動で指定する場合は、指定した暗号スイートがサーバーによって無視されず、Spark Web UIへのアクセスに使用されるWebブラウザーによってサポートされていることを確認します。たとえば、サーバーと現在のWebブラウザーの両方でサポートされている2つの256ビットの暗号スイートはTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
とTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
です。 - AlwaysOn SQLサーバーは、オプションでSSLを使用してクライアント接続を暗号化できます。
- 変更を認識させるため、ノードを再起動します。
-
Sparkアプリケーションごとに、以下のクライアントの暗号化オプションをspark-defaults.confファイル内でtrueに設定して、Sparkドライバーとエグゼキューター間の暗号化を有効にします。
オプション 説明 spark.authenticate
秘密鍵を使用して相互認証を有効または無効にします。デフォルトはfalseです。 spark.authenticate.enableSaslEncryption
Sparkドライバーとそのエグゼキューター間のSASL暗号化を有効または無効にします。デフォルトはfalseです。 spark.io.encryption.enabled
ドライバーがディスクに直接格納するデータの暗号化を有効または無効にします。 デフォルトですべてのSparkアプリケーションの暗号化を有効にするには、Spark構成ディレクトリーのspark-defaults.confファイルのオプションを変更します。サーバーに格納されているデータをデフォルトで暗号化するには、spark-daemon-defaults.confファイルのオプションを変更します。
オプション 説明 spark.io.encryption.enabled
エグゼキューターおよびシャッフル・サービスによりディスクに直接格納されているデータの暗号化を有効または無効にします。