リモート・マシン上のアプリケーションをモニターする場合、状況によっては、ご使用のマシン上の Health Center クライアントとリモート・マシン上の Health Center エージェントとの間の接続を保護する必要があります。セキュリティー・テクノロジーは接続タイプによって異なりますが、単純なユーザー名とパスワード、MBean 認証、Secure Sockets Layer (SSL) などがあります。
IBM® Bluemix™ を使用している場合は、セキュリティー・オプションを使用できません。
このタスクについて
Health Center クライアントをエージェントに接続する場合、アプリケーションをモニターするために、以下のセキュリティー・オプションを選択することができます。
使用可能なオプションは、JMX または MQTT のどちらの接続を選択するかによって異なります。アプリケーションが Java™ アプリケーションではない場合は、MQTT 接続を使用する必要があります。- セキュリティーなし
- 接続は暗号化されません。ユーザー名やパスワードも不要です。
- MBean 認証 (JMX 接続のみ)
- このメソッドでは、JMX テクノロジーを使用します。クライアントとエージェントとの間で受け渡されるデータは暗号化されませんが、クライアントがエージェントに接続するにはユーザー名とパスワードが必要になります。ユーザー名とパスワードは、ユーザーが作成する認証ファイルに保管されます。
また、ユーザー名のアクセス権限を指定するための許可ファイルも作成します。各ファイルには、ユーザー名を複数追加できます。さらに、Health Center プロパティーを使用して、これらのファイルの場所を指定し、エージェントが各ファイルを見つけられるようにします。例:
java -Xhealthcenter -Dcom.ibm.java.diagnostics.healthcenter.agent.authentication.file=/home/user/authentication.txt -Dcom.ibm.java.diagnostics.healthcenter.agent.authorization.file=/home/user/authorization.txt HelloWorld
- 単純認証 (MQTT 接続のみ)
- この方式では、MQTT ブローカーのユーザー名とパスワードを使用します。
この方式を使用するには、ブローカーのユーザー名とパスワードを設定し、Health Center でそのユーザー名とパスワードを指定する必要があります。
クライアントでユーザー名とパスワードを指定するほかに、Health Center プロパティー・ファイルを使用して、エージェントのユーザー名とパスワードを設定する必要があります。
- SSL 接続 (JMX 接続のみ)
- クライアントがエージェントに接続する際のユーザー名とパスワードは不要ですが、接続間で受け渡されるデータを暗号化するために SSL プロトコルが使用されます。このメソッドを使用するには、クライアントとエージェントの両方について、鍵ストアおよび公開鍵/秘密鍵のペアを作成し、公開鍵証明書をスワップする必要があります。クライアントとエージェントは、それぞれの鍵ストアを見つけアクセスできる必要があります。クライアントでは、エージェントに接続するときに、ダイアログ・ボックスで鍵ストアの場所とパスワードを設定します。エージェントでは、Health Center プロパティーを使用して場所とパスワードを設定します。
- SSL 接続および MBean 認証 (JMX 接続のみ)
- SSL 接続上で MBean 認証を使用できます。それぞれのセキュリティー方式に必要なファイルを作成する必要があります。
手順
- 使用するセキュリティー・メソッドを決定します。
- オプション: MBean 認証を使用する場合は (JMX 接続のみ)、次の手順で行います。
- MBean 認証のユーザー名とパスワードを保管するファイルを作成します。 ファイル名、拡張子、および場所については、Health Center エージェントからアクセス可能なものであれば、どのような値でも使用できます。例えば、エージェントと同じマシン上にファイルが存在したほうがよい場合もあります。
ユーザー名とパスワードには、英数字のみを使用します。スペースや記号は使用しないでください。ファイルの許可を構成して、許可されたユーザーのみが内容を表示できるようにします。
例えば、次の内容が記述された
authentication.txt という名前のファイルを作成します。
myuser mypassw0rd
anotheruser theirpassw0rd
- 先ほど指定したユーザー名の読み取り権限と書き込み権限を指定するために、許可ファイルを作成します。
このファイルにも、Health Center エージェントからアクセス可能である必要があります。
ユーザー名の後に
readwrite を追加して、読み取り権限と書き込み権限を指定します。例えば、次の内容が記述された
authorization.txt という名前のファイルを作成します。
myuser readwrite
anotheruser readwrite
- 以下の Health Center プロパティーを使用して、これらのファイルの場所を指定し、エージェントが各ファイルを見つけられるようにします。
認証ファイル:
com.ibm.java.diagnostics.healthcenter.agent.authentication.file
許可ファイル:
com.ibm.java.diagnostics.healthcenter.agent.authorization.file
これらのプロパティーは、コマンド行で指定するか、Health Center システム・プロパティー・ファイルで指定します。コマンド行を使用する場合は、アプリケーションを開始するとき、または実行中のアプリケーションに Health Center エージェントを接続するときに指定してください。詳しくは、Health Center エージェントの構成を参照してください。
- オプション: SSL 接続を使用する場合は (JMX 接続のみ)、次の手順で行います。
- Health Center エージェントを実行しているマシン上で、エージェントの鍵ストアと鍵ペアを作成します。 IBM SDK and Runtime Environment, Java Technology Edition の keytool ユーティリティーを使用して、鍵ストアと鍵ペアを作成できます。
例えば、以下のコマンドを実行すると、次のオブジェクトが作成されます。
- HCAgentKeystore という名前の鍵ストア (作成場所は現行ディレクトリー)
- RSA アルゴリズムで生成される鍵ペア。鍵のビット長は 2048 ビットで、有効期間は 200 日です。この鍵ペアには、HCAgentKey という別名があります。
keytool -keystore HCAgentKeystore -genkeypair -keyalg RSA -keysize 2048 -validity 200 -alias HCAgentKey
注: 鍵ストアのパスワード、名前と場所、および鍵 (証明書) パスワードに関してプロンプトが出されます。 証明書パスワードの値を指定しない場合、証明書パスワードは、鍵ストアに使用されるパスワードと同じパスワードが設定されます。
keytool ユーティリティーおよび使用可能なコマンド・オプションについて詳しくは、ご使用のバージョンの IBM SDK and Runtime Environment Java Technology Edition の「
Documentation」で、keytool のユーザー・ガイドを参照してください。
- 鍵ペアから公開鍵証明書をエクスポートします。 例えば、以下のコマンドを実行すると、HCAgentKeystore 鍵ペアの公開証明書が HCAgentKey.pub ファイルにエクスポートされます。
keytool -keystore HCAgentKeystore -exportcert -alias HCAgentKey -rfc -file HCAgentKey.pub
-rfc パラメーターは、印刷可能なエンコード形式でファイルが生成されるように指定します。
- Health Center クライアントを実行しているマシンで、同じ手順に従いクライアントの鍵ストアと鍵ペアを作成してから、公開鍵証明書をエクスポートします。 例:
keytool -keystore HCClientKeystore -genkeypair -keyalg RSA -keysize 2048 -validity 200 -alias HCClientKey
keytool -keystore HCClientKeystore -exportcert -alias HCClientKey -rfc -file HCClientKey.pub
- エージェントの公開鍵証明書をクライアントの鍵ストアにインポートしてから、クライアントの公開鍵証明書をエージェントの鍵ストアにインポートすることで、公開鍵証明書をスワップします。
例えば、エージェントを実行しているマシンで、次のようにします。
keytool -keystore HCAgentKeystore -importcert -file HCClientKey.pub
クライアントを実行しているマシンで、次のようにします。
keytool -keystore HCClientKeystore -importcert -file HCAgentKey.pub
- Health Center エージェントの場合、以下の Health Center プロパティーを使用して、エージェント鍵ストアの場所とパスワードを指定し、エージェントが必要な鍵を見つけられるようにします。
鍵ストアの場所:
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStore
鍵ストアのパスワード:
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStorePassword
鍵ストア証明書のパスワード:
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStoreCertificatePassword
これらのプロパティーは、コマンド行で指定するか、Health Center システム・プロパティー・ファイルで指定します。コマンド行を使用する場合は、アプリケーションを開始するとき、または実行中のアプリケーションに Health Center エージェントを接続するとき (Java アプリケーションのみ) に指定してください。詳しくは、
Health Center エージェントの構成を参照してください。
Health Center クライアントの場合、エージェントに接続するときに、クライアント鍵ストアの場所とパスワードを指定します (次のタスクを参照)。
- 単純認証を使用する場合は (MQTT 接続のみ)、次の手順で行います。
- MQTT ブローカーのユーザー名とパスワードを設定します。 これらの資格情報の設定方法については、MQTT ブローカーの資料を参照してください。
- ブローカーのユーザー名およびパスワードと一致するように、Health Center エージェント・プロパティー・ファイルの com.ibm.diagnostics.healthcenter.mqtt.broker.user プロパティーと com.ibm.diagnostics.healthcenter.mqtt.broker.pass プロパティーを設定します。 構成プロパティーについて詳しくは、
Health Center の構成プロパティーを参照してください。
注: 資格情報は、プレーン・テキストとして Health Center プロパティー・ファイルに格納されます。
タスクの結果
Health Center 接続を保護するために必要なファイルを作成しました。
次のタスク
- サービス妨害アタックについて心配がある場合は、Health Center エージェント・プロパティー・ファイルの com.ibm.diagnostics.healthcenter.readonly プロパティーを on に設定してください。これにより、エージェントはモニター対象アプリケーションを混乱させる可能性があるアクションがクライアントから要求された場合に、要求を無視します。詳しくは、Health Center の構成プロパティーを参照してください。
- Health Center クライアントを開始してエージェントに接続し、手順 1 で選択したセキュリティー・オプションと、必要な資格情報を指定します。例えば、SSL を使用するように選択した場合は、クライアント鍵ストアの場所とパスワード。および鍵ストア証明書パスワードを指定する必要があります。詳しくは、Health Center クライアントを使用したアプリケーションへの接続を参照してください。