6.2.2. JMX 管理アクセスの設定
デフォルトでは、セキュリティー上の理由から、ブローカーへのリモート JMX アクセスは無効になっています。しかし、AMQ Broker には JMX MBean へのリモートアクセスを可能にする JMX エージェントがあります。ブローカー management.xml
設定ファイルに connector 要素を設定して JMX アクセスを有効にします。
また、'com.sun.management.jmxremote ' JVM システムプロパティーを使用した JMX アクセスを有効にすることも可能ですが、その方法はサポートされておらず、安全ではありません。JVM システムプロパティーを変更すると、ブローカーの RBAC がバイパスされる可能性があります。セキュリティーリスクを最小限に抑えるために、ローカルホストへのアクセスが限定されることを検討してください。
リモート管理にブローカーの JMX エージェントを公開すると、セキュリティーに影響を及ぼします。
この手順で説明されているように設定のセキュリティーを保護するには、以下を実行します。
- すべての接続に SSL を使用します。
- コネクターホスト、つまりエージェントを公開するホストおよびポートを明示的に定義します。
- RMI (Remote Method Invocation) レジストリーがバインドするポートを明示的に定義します。
前提条件
- 稼働中のブローカーインスタンス
-
Javaの
jconsole
ユーティリティ
手順
-
<broker-instance-dir>/etc/management.xml
設定ファイルを開きます。 JMX エージェントのコネクターを定義します。connector-port 設定は、JMX コネクターサーバーの jconsole クエリーなどのクライアントが RMI レジストリーを確立します。たとえば、ポート 1099 でリモートアクセスを許可するには、次のコマンドを実行します。
<connector connector-port="1099"/>
jconsole
を使用して、JMX エージェントへの接続を確認します。service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
以下で説明されているように、コネクターに追加のプロパティーを定義します。
- connector-host
-
エージェントを公開するブローカーサーバーホスト。リモートアクセスを防ぐには、
connector-host
を127.0.0.1
(localhost) に設定します。 - rmi-registry-port
- JMX RMI コネクターサーバーがバインドするポート。設定されていない場合、ポートは常にランダムになります。リモート JMX 接続のトンネルがファイアウォール経由で行われるのを回避するには、このプロパティーを設定します。
- jmx-realm
-
認証に使用する JMX レルム。デフォルト値は、JAAS 設定に一致する
activemq
です。 - object-name
-
リモートコネクターを公開するためのオブジェクト名。デフォルト値は
connector:name=rmi
です。 - secured
-
コネクターが SSL を使用してセキュア化されるかどうかを指定します。デフォルト値は
false
です。通信をセキュアにするには、値をtrue
に設定します。 - key-store-path
-
キーストアの場所。
secured="true"
を設定している場合は必須です。 - key-store-password
-
キーストアパスワード。
secured="true"
を設定している場合は必須です。パスワードは暗号化できます。 - key-store-provider
-
キーストアプロバイダー。
secured="true"
を設定している場合は必須です。デフォルト値はJKS
です。 - trust-store-path
-
トラストストアの場所。
secured="true"
を設定している場合は必須です。 - trust-store-password
-
トラストストアのパスワード。
secured="true"
を設定している場合は必須です。パスワードは暗号化できます。 - trust-store-provider
-
truststore プロバイダー。
secured="true"
を設定している場合は必須です。デフォルト値はJKS
です。 - password-codec
- 使用するパスワード codec の完全修飾クラス名。これがどのように機能するかについての詳細は、パスワードマスクのドキュメント(以下にリンク)を参照してください。
-
Java Platform ドキュメント に記載されているように、
jdk.serialFilter
を使用してエンドポイントシリアライゼーションに適切な値を設定します。
関連情報
- 設定ファイルの暗号化されたパスワードの詳細は、設定ファイル の パスワードの暗号化 を参照してください。