nodetool用にSSLを設定する
SSL暗号化を用いたnodetoolの使用
nodetool
でSSLを使用するには、JMXのセットアップが必要です。変更をcassandra-env.shに加えて、構成ファイル~/.cassandra/nodetool-ssl.properties
を作成します。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra-env.sh |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra-env.sh |
始める前に
手順
-
nodetool
でSSL暗号化を実行するには、追加の変更をcassandra-env.shに加える必要があります。以下の設定をファイルに追加する必要があります。キーストアとトラストストアに対するファイル・パス、および各ファイルごとに適切なパスワードを使用します。これらの変更は、クラスター内の各ノードで行う必要があります。実稼働環境:JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.protocols=<enabled-protocols>" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.cipher.suites=<enabled-cipher-suites>" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/usr/local/lib/cassandra/conf/server-keystore.jks" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=myKeyPass" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=/usr/local/lib/cassandra/conf/server-truststore.jks" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=truststorePass"
開発環境:JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.protocols=<enabled-protocols>" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.cipher.suites=<enabled-cipher-suites>" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=keystore.node0" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=cassandra" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=truststore.node0" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=cassandra"
com.sun.management.jmxremote.ssl
をtrue
に設定して、JMXのSSLを有効にします。双方向の証明書認証が必要な場合、com.sun.management.jmxremote.ssl.need.client.auth
をtrue
に設定します。com.sun.management.jmxremote.registry.ssl
をtrue
に設定した場合、Java VMが起動した時点でSSLで保護されたRMIレジストリーが作成され、そのまま使用できる管理エージェントによって構成されます。com.sun.management.jmxremote.registry.ssl
プロパティをtrue
に設定した場合、フル・セキュリティを確保するには、com.sun.management.jmxremote.ssl.need.client.auth
も有効にする必要があります。keystore
ファイルとtruststore
ファイルの適切なパスを設定します。これらのパスワードは、キーストアとトラストストアの生成時に設定したパスワードに設定します。 - DSEを再起動します。
-
nodetool
の実行でSSL暗号化を使用するには、以下の設定を使用して、nodetool
を実行するノードのホームまたはクライアント・プログラム・ディレクトリーに.cassandra/nodetool-ssl.properties
ファイルを作成します。実稼働環境:-Dcom.sun.management.jmxremote.ssl=true -Dcom.sun.management.jmxremote.ssl.need.client.auth=false -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.keyStore=/usr/local/lib/dse/resources/dse/conf/.keystore -Djavax.net.ssl.keyStorePassword=cassandra -Djavax.net.ssl.trustStore=/usr/local/lib/cassandra/conf/.truststore -Djavax.net.ssl.trustStorePassword=cassandra
開発環境:
-Djavax.net.ssl.keyStore=keystore.node0 -Djavax.net.ssl.keyStorePassword=cassandra -Djavax.net.ssl.trustStore=truststore.node0 -Djavax.net.ssl.trustStorePassword=cassandra -Dcom.sun.management.jmxremote.ssl.need.client.auth=true -Dcom.sun.management.jmxremote.registry.ssl=true
-
すべての
nodetool
操作で暗号化接続が行われるように、--sslオプションを指定してnodetool
を起動します。$ nodetool --ssl info ## Package installations $ installation_location/bin/nodetool -ssl info ## Tarball installations
-
すべての
nodetool
操作で暗号化接続が行われるように--sslオプションを指定し、認証と権限管理のためのユーザー名とパスワードを指定して、nodetool
を起動します。$ nodetool --ssl -u username -pw password status ## Package installations $ installation_location/bin/nodetool -ssl -u username -pw password status ## Tarball installations