5.9. 設定ファイルのパスワードの暗号化
デフォルトでは、AMQ Broker はすべてのパスワードをプレーンテキストとして設定ファイルに保存します。承認されていないアクセスを防ぐために、適切なパーミッションですべての設定ファイルのセキュリティーを保護するようにしてください。また、プレーンテキストのパスワードを暗号化するか、マスク して、不要なビューアーが読み込まれないようにすることもできます。
5.9.1. 暗号化パスワードについて
暗号化 (マスクされた ) パスワードは、プレーンテキストのパスワードが暗号化されたバージョンです。暗号化バージョンは、AMQ Broker によって提供される mask
コマンドラインユーティリティーによって生成されます。mask
ユーティリティーの詳細は、コマンドラインのヘルプドキュメントを参照してください。
$ <broker_instance_dir>/bin/artemis help mask
パスワードをマスクするには、プレーンテキストの値を暗号化された値に置き換えます。マスクされたパスワードは、実際の値が必要になったときに復号化されるように、識別子 ENC()
でラップする必要があります。
以下の例では、<broker_instance_dir>/etc/bootstrap.xml
設定ファイルには、keyStorePassword
パラメーターおよび trustStorePassword
パラメーターのマスクされたパスワードが含まれます。
<web bind="https://localhost:8443" path="web" keyStorePassword="ENC(-342e71445830a32f95220e791dd51e82)" trustStorePassword="ENC(32f94e9a68c45d89d962ee7dc68cb9d1)"> <app url="activemq-branding" war="activemq-branding.war"/> </web>
以下の設定ファイルでは、マスクされたパスワードを使用できます。
- broker.xml
- bootstrap.xml
- management.xml
- artemis-users.properties
-
login.config(
LDAPLoginModule
で使用)
設定ファイルは <broker_instance_dir>/etc
にあります。
artemis-users.properties
は、ハッシュ化されたパスワードをマスクする場合のみサポートします。ブローカーの作成時にユーザーが作成されると、artemis-users.properties
にはデフォルトでハッシュ化されたパスワードが含まれます。デフォルトの PropertiesLoginModule
は artemis-users.properties
ファイルのパスワードを復号化しませんが、代わりに入力をハッシュ化してパスワード検証の 2 つのハッシュ値を比較します。ハッシュ化パスワードをマスクされたパスワードに変更しても、AMQ Broker 管理コンソールにはアクセスできません。
broker.xml
、bootstrap.xml
、management.xml
、および login.config
はマスクされているが、ハッシュ化されていないパスワードをサポートします。
5.9.2. 設定ファイルでのパスワードの暗号化
以下の例は、broker.xml
設定ファイルで cluster-password
の値をマスクする方法を示しています。
手順
コマンドプロンプトで、
mask
ユーティリティーを使用してパスワードを暗号化します。$ <broker_instance_dir>/bin/artemis mask <password>
result: 3a34fd21b82bf2a822fa49a8d8fa115d
マスクするプレーンテキストのパスワードが含まれる
<broker_instance_dir> /etc/broker.xml
設定ファイルを開きます。<cluster-password> <password> </cluster-password>
プレーンテキストのパスワードは、暗号化された値に置き換えます。
<cluster-password> 3a34fd21b82bf2a822fa49a8d8fa115d </cluster-password>
暗号化された値を識別子
ENC()
でラップします。<cluster-password> ENC(3a34fd21b82bf2a822fa49a8d8fa115d) </cluster-password>
設定ファイルには、暗号化されたパスワードが含まれるようになりました。パスワードは ENC()
識別子でラップされるため、AMQ Broker では使用前にこれを復号化します。
関連情報
- AMQ Broker に含まれる設定ファイルの詳細は、「AMQ Broker の設定ファイルおよび場所」 を参照してください。
5.9.3. パスワードを暗号化および復号化するためのコーデックキー設定
パスワードの暗号化と復号化にはコーデックが必要です。カスタムコーデックが設定されていない場合、mask
ユーティリティーはデフォルトのコーデックを使用してパスワードを暗号化し、AMQ Broker は同じデフォルトのコーデックを使用してパスワードを復号化します。コーデックは、パスワードを暗号化および復号化するために、基礎となる暗号化アルゴリズムに提供するデフォルトキーで設定されます。デフォルトキーを使用すると、悪意のあるアクターがそのキーを使用してパスワードを解読するリスクが生じます。
mask
ユーティリティーを使用してパスワードを暗号化する場合、独自のキー文字列を指定して、デフォルトコーデックキーの使用を回避できます。次に、同じキー文字列を ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
環境変数に設定して、ブローカーがパスワードを復号化できるようにする必要があります。環境変数にキーを設定すると、設定ファイルに保持されないため、よりセキュアになります。さらに、ブローカーを開始する直前にキーを設定し、ブローカーの開始直後に設定を解除できます。
手順
mask
ユーティリティーを使用して、設定ファイル内の各パスワードを暗号化します。key
パラメーターには、パスワードを暗号化する文字列を指定します。各パスワードの暗号化には同じキー文字列を使用してください。$ <broker_instance_dir>/bin/artemis mask --key <key> <password>
警告mask
ユーティリティーを実行してパスワードを暗号化するときに指定するキー文字列を記録しておいてください。ブローカーがパスワードを復号化できるようにするには、環境変数で同じキー値を設定する必要があります。設定ファイルでパスワードを暗号化する方法は、「設定ファイルでのパスワードの暗号化」 を参照してください。
コマンドプロンプトから、
ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
環境変数を、各パスワードを暗号化したときに指定したキー文字列に設定します。$ export ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY= <key>
ブローカーを起動します。
$ ./artemis run
ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
環境変数の設定を解除します。$ unset ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
注記ブローカの開始後に
ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
環境変数の設定を解除した場合は、その後毎回ブローカを起動する前に、同じキー文字列に再度設定する必要があります。