クライアントとノード間の暗号化

クライアントとノード間の暗号化は、クライアント・コンピューターからデータベース・クラスターに転送中のデータをSSL(Secure Sockets Layer)を使用して保護します。

クライアントとノード間の暗号化は、クライアント・コンピューターからデータベース・クラスターに転送中のデータをSSL(Secure Sockets Layer)を使用して保護します。それによって、クライアントとコーディネーター・ノード間にセキュアなチャネルが確立されます。

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/cassandra.yaml
tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml
Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra.yaml

始める前に

すべてのノードに、関連するすべてのSSL証明書が必要です。「サーバーの証明書の準備」を参照してください。

クライアントとノード間のSSLを有効にするには、cassandra.yamlファイルにclient_encryption_optionsを設定する必要があります。

手順

各ノードのclient_encryption_optionsに対して以下の設定を行います。

  • 暗号化を有効にします。
  • .keystoreファイルと.truststoreファイルへの適切なパスを設定します。
  • 必要なパスワードを指定します。パスワードは、キーストアおよびトラストストアの生成時に使用したパスワードと一致する必要があります。
  • 双方向のSSL暗号化でクライアントの証明書認証を有効にするには、require_client_authtrueに設定します。このオプションを有効にすると、cqlshなどのツールでリモート・ノードに接続できます。SSL暗号化を用いてローカル・ノードでcqlshを実行するなど、ローカル・アクセスのみが必要な場合は、このオプションは必要ありません。オプションがtrueに設定されている場合は、トラストストアとトラストストアのパスワードも含める必要があります。この例でキーストアとトラストストアの両方で使用されているパスワードは、cassandraです。

    この例では、「cassandra」というパスワードを使用しています。

    client_encryption_options:enabled:true # keystoreファイルへのパス。例:conf/keystore.node0 keystore:conf/keystore.node0 # keystoreファイル「keystore_password:cassandraのパスワード # 双方向のSSLが必要な場合、次の3行が含められます。require_client_auth:true # truststoreファイルへのパス。例:conf/truststore.node0 truststore:conf/truststore.node0 # truststoreファイル「truststore_password:cassandra」のパスワード
    注: Cassandraは、cassandra.yamlファイルに変更を加えた後、再起動する必要があります。
  • クライアント暗号化を有効にすると、native_transport_port(デフォルト:9042)のすべてのトラフィックが暗号化されます。暗号化されているトラフィックとされていないトラフィックの両方が必要な場合は、追加のcassandra.yaml設定を有効にする必要があります。native_transport_port_ssl(デフォルト:9142)では、暗号化送信を実行する追加の専用ポートを設定し、native_transport_portは暗号化されていない送信を実行します。このオプションが有効な場合は、Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policyファイルをインストールすると有益です。