JMX認証の構成
ローカルホストまたはリモート・ホストからの接続にJMX認証を有効にします。
cassandra-env.sh
cassandra-env.shファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-env.sh |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-env.sh |
JMX(Java Management Extensions)テクノロジーは、Java仮想マシン(JVM)のインスタンスに関連するリソースを管理および監視する単純で標準的な方法を提供します。そのためには、MBeanサーバーに登録される、マネージドBean(MBean)と呼ばれるJavaオブジェクトでリソースをインストルメント化します。DataStax Enterprise(DSE)は、MBeanに対するJMXユーザーの認証とロール・ベース・アクセス制御をサポートしています。「DSE Unified Authentication(DSE統合認証)について」を参照してください。DSEは、nodetoolと、JConsoleなどの外部監視ツールのJMX認証を提供します。
JMXクライアント・アクセスを管理するには、「JMX MBeansへのアクセスの制御」を参照してください。
デフォルト設定
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
DSE Unified Authentication(DSE統合認証)の有効化
JMX接続用のDSE統合認証を有効にします。
DSEは、dsetoolやnodetoolなどのユーティリティからの統合認証と、Java Management Extensions(JMX)MBeanを使用してデータベースとやり取りするJConsoleなどの外部監視ツールを提供しています。
アクセスを許可するには、「JMX MBeansへのアクセスの制御」を参照してください。
始める前に
手順
-
アクセスを許可するDSEノードで、リモートまたはローカルのJMXリモート認証をtrueに設定します。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
注: 接続がローカルかどうかを確認するテストが行われます。最初のインスタンスを変更してローカル接続で認証を有効にし、他の文で2番目のインスタンスを変更してリモートを有効にします。 -
以下の行をコメントアウトして、ローカル認証を無効にします。
#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file=/etc/cassandra/jmxremote.access"
-
DSE Authenticatorを使用して外部認証を有効にするには、以下の行をコメント解除します。
JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.login.config=CassandraLogin"' JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config=$CASSANDRA_HOME/conf/cassandra-jaas.config" JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.authorizer=org.apache.cassandra.auth.jmx.AuthorizationProxy"
- DSEを再起動します。
JMXネイティブ認証の有効化
ローカルまたはリモートのユーティリティ接続で、組み込みのJava Management Extensionsネイティブ認証方法を有効にします。
cassandra -Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password
cassandra-env.sh
cassandra-env.shファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-env.sh |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-env.sh |
手順
-
リモートおよび/またはローカルのJMXリモート認証をtrueに設定します。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
注: 接続がローカルかどうかを確認するテストが行われます。最初のインスタンスを変更してローカル接続で認証を有効にし、他の文で2番目のインスタンスを変更してリモートを有効にします。 -
アクセスを無効にするDSEノードで、リモートまたはローカルのJMXリモート認証をfalseに設定します。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
警告: ローカルを無効にすると、ノードでdsetoolを実行できないなど予期しない動作が発生する場合があります。 -
アクセスを許可するノードで、認証情報ファイルのパスを設定します。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/dse/cassandra/jmxremote.password"
注: cassandraを実行するユーザーがそのパスにアクセスできることを確認します。 -
各行にユーザー名とパスワードを含むファイルを作成し、前の手順で入力した場所に保存します。
sallyjones 123DSEadmin
-
ユーザーが実行できるアクションの種類を制限するには、jmxremote.accessファイルを作成し、リモート・アクセス・オプションをコメント解除し、以下の設定でパスを指定します。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file=/etc/dse/cassandra/jmxremote.access
- クラスター上のすべてのノードが更新された場合は、ローリング再起動を実行します。それ以外の場合は、影響を受けるノードのみを再起動します。
-
以下の認証情報で
nodetool
コマンドを実行して、認証が機能していることを確認します。nodetool -u sallyjones -pw 123DSEadmin status
結果が表示されます。Datacenter: DataStax ===================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN 10.200.182.180 316.76 KiB 1 ? 5ca115f6-250a-4964-9a52-c10926031f1b rack1 UN 10.200.182.181 446.76 KiB 1 ? 74a44407-5e26-43d4-83dc-aae9fe35c2f4 rack1 Datacenter: Solr ================ Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN 10.200.182.183 368.38 KiB 1 ? d59d912c-dcc9-469f-8ae1-1c14313e16b1 rack1 Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
- クラスター内のノードごとに構成を繰り返します。