Menu Close

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ユーティリティ

手順

  1. <broker-instance-dir>/etc/management.xml設定ファイルを開きます。
  2. JMX エージェントのコネクターを定義します。connector-port 設定は、JMX コネクターサーバーの jconsole クエリーなどのクライアントが RMI レジストリーを確立します。たとえば、ポート 1099 でリモートアクセスを許可するには、次のコマンドを実行します。

    <connector connector-port="1099"/>
  3. jconsole を使用して、JMX エージェントへの接続を確認します。

    service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
  4. 以下で説明されているように、コネクターに追加のプロパティーを定義します。

    connector-host
    エージェントを公開するブローカーサーバーホスト。リモートアクセスを防ぐには、connector-host127.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 の完全修飾クラス名。これがどのように機能するかについての詳細は、パスワードマスクのドキュメント(以下にリンク)を参照してください。
  5. Java Platform ドキュメント に記載されているように、jdk.serialFilter を使用してエンドポイントシリアライゼーションに適切な値を設定します。

関連情報