DataStaxエージェントとDSEの間のJMX通信の暗号化

DataStaxエージェントとDSEの間のJMX通信の暗号化を有効にします。

DataStaxエージェントとDataStax Enterprise (DSE)の間のJMX通信を暗号化するには、次の手順を実行します。この暗号化を有効にすると、DataStaxエージェントでDSEへの接続時にSSL対応のソケットファクトリが使用されるようになりますが、DSE自体の暗号化は有効になりません。

デフォルトでは、JMXリモート接続が無効で、JMXセキュリティ認証は次のファイルのローカル接続とリモート接続の両方で無効になっています。cassandra-env.shファイルの次の行のコメントを解除して更新します。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"

DSEでJMX認証を構成する場合は、DSE Unified Authentication(DSE統合認証)を有効にする必要があります。

jvm.options

jvm.optionsファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/jvm.options
tarボール・インストール installation_location/resources/cassandra/conf/jvm.options

datastax-agent-env.sh

DataStaxエージェント環境のシェル・スクリプトdatastax-agent-env.shのデフォルトの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/datastax-agent/datastax-agent-env.sh
  • tarボール・インストール:install_location/agent/conf/datastax-agent-env.sh

cassandra-env.sh

cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra-env.sh
tarボール・インストール installation_location/resources/cassandra/conf/cassandra-env.sh

始める前に

SSL証明書を設定するためのすべての手順を完了します。

手順

  1. クラスター内の各ノードでDSEを停止します。
  2. 実行されている各ノードでDataStaxエージェントを停止します。
    • パッケージ・インストール:
      sudo service datastax-agent stop
    • tarボール・インストール:

      DataStaxエージェントを停止するには、DataStaxエージェントJavaプロセスID(PID)を確認し、そのPID番号を使用してプロセスを強制終了します。

      ps -ef | grep datastax-agent
      sudo kill pid
  3. 次に、 jvm.options ファイルに移動し、SSLの設定に関する次のセクションを追加します。
    # SSL settings
    -Dcom.sun.management.jmxremote.ssl=true
    -Dcom.sun.management.jmxremote.ssl.need.client.auth=true
    -Djavax.net.ssl.keyStore=/path_to_keyStore/keyStore_name.jks
    -Djavax.net.ssl.keyStorePassword=keyStore_password
    -Djavax.net.ssl.trustStore=/path_to_trustStore/trustStore_name.jks
    -Djavax.net.ssl.trustStorePassword=trustStore_password
    com.sun.management.jmxremote.ssl
    DSEとDataStaxエージェント間のJMX接続に対してSSLを有効にするには、trueに設定します。有効にした場合に、フル・セキュリティを有効にするには、com.sun.management.jmxremote.ssl.need.client.authtrueに設定する必要もあります。
    com.sun.management.jmxremote.ssl.need.client.auth
    双方向の証明書認証を有効にするには、trueに設定します。
    keyStore_name
    SSLキーストアの名前。
    keyStore_password
    javax.net.ssl.keyStoreによって指定されたキーストア用のパスワード。
    trustStore_name
    SSLトラストストアの名前。
    trustStore_password
    javax.net.ssl.trustStoreによって指定されたトラストストア用のパスワード。
  4. クラスターの各ノードでDSEを開始します。
    sudo service dse start

    続行する前に、ノードが使用可能になるまで待機します。

  5. SSL暗号化を使用してDataStaxエージェントを実行するには、次の設定をDataStaxエージェントが実行されているノードの datastax-agent-env.sh ファイルに追加します。
    重要: DSEのキーストロークは、DataStaxエージェントのトラストストアです (その逆の場合も同様です)。以下に例を示します。keyStore変数はトラストストアをポイントし、keyStorePassword変数はトラストストアのパスワードを使用します。trustStore変数の場合、その逆も同じです。
    JVM_OPTS="$JVM_OPTS -Xmx1024M"
    JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/path_to_trustStore/trustStore_name.jks"
    JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=trustStore_password"
    JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=/path_to_keyStore/keyStore_name.jks"
    JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=keyStore_password"
    JVM_OPTS="$JVM_OPTS -Ddatastax.agent.jmx.usessl=true"
    datastax.agent.jmx.usessl
    DataStaxエージェントのSSL暗号化を有効にするには、この設定を追加してtrueに設定します。
  6. 変更内容を適用するには、DataStaxエージェントを再起動します。
    • パッケージ・インストール:
      sudo service datastax-agent restart
    • tarボール・インストール:
      1. DataStaxエージェントを停止するには、DataStaxエージェントJavaプロセスID(PID)を確認し、そのPID番号を使用してプロセスを強制終了します。
        ps -ef | grep datastax-agent
        sudo kill pid
      2. エージェントを起動する:

        エージェントをフォアグラウンドで開始するには、-fオプションを使用します。

        install_location/bin/datastax-agent
  7. 実行されている各ノードのDataStaxエージェントを再起動したら、OpsCenterをチェックして、すべてのDataStaxエージェントが実行されており、すべてのノードが利用可能であることを確認します。