Mule 3 のゲートウェイ起動暗号化

ゲートウェイ起動暗号化を使用すると、ポリシー、コントラクトや、Mule アプリケーションと Anypoint Platform 間の接続の設定に必要なログイン情報など、ランタイムにより保存される機密情報を暗号化できます。

暗号化を使用するためのランタイムの設定

16 文字の暗号化キーを使用して Anypoint Platform ログイン情報 (クライアント ID、クライアントシークレット、およびプロキシパスワード) を暗号化し、ランタイムが暗号化されたログイン報を復号化して使用できるように、​anypoint.platform.encryption_key​ プロパティを介して起動時にこの暗号化キーをランタイムに渡すことができます。

$MULE_HOME/bin/mule start -Danypoint.platform.encryption_key=MyEncryptionKey1

ランタイムは起動中に暗号化キーがあるかどうかを確認します。次にクライアント ID とクライアントシークレットの値をその ​wrapper.conf​ ファイルから取得します。

エージェントを使用したログイン情報の暗号化

ランタイムが暗号化を使用できるようにするには、暗号化キーを使用するエージェントに引数 ​encryption-key​ を値として渡す必要があります。これにより、エージェントはクライアント ID とシークレットを暗号化します。

ランタイムの起動時に、前述したように ​anypoint.platform.encryption_key​ プロパティを使用して暗号化キーを渡す必要があります。

ゲートウェイ暗号化ツール

ゲートウェイ暗号化ツールには、Mule Runtime Engine 3.9.3 以降で暗号化されるポリシーファイルを調べる方法が用意されています。また、オフラインポリシーを暗号化し、暗号化されたクライアントログイン情報をランタイムに渡す方法もあります。

このツールには、​policy​ と ​property​ の 2 つのモードがあります。

ポリシー

このモードは、ポリシー XML ファイルを暗号化および復号化します。

ポリシーファイルを暗号化する方法

java -jar gateway-encryption-tool.jar policy <encrypt|decrypt> <key> <input_policy_file> <output_policy_file>

このツールは、​<input_policy_file>​ で渡されるポリシーを取得し、​<key>​ で渡される暗号化キーを使用して暗号化し、​<output_policy_file>​ でその結果をファイルに保存します。

このツールはポリシーの有効性を検証しません。

最初に encryption tool jar​ ファイルをダウンロードする必要があります。

プロパティ

このモードは、​wrapper.conf​ ファイルで設定されたプロパティの値を暗号化および復号化します。

設定ファイルのプロパティを暗号化する方法

java -jar gateway-encryption-tool.jar property <encrypt|decrypt> <key> <input_value>

このツールは、​<key>​ で渡されるキーを取得し、それを使用して ​<input_value>​ で渡される値を暗号化します。

decrypt​ オプションを使用すると、ターミナルは暗号化された値の一部の文字のみを解釈する可能性があります。このシナリオを回避するには、暗号化された値を単一引用符で囲みます。

java -jar gateway-encryption-tool.jar property decrypt 1234567812345678 '![FefVUnvDJpbXnUvrGAEezg==]'

ポリシーの暗号化

一部のポリシーには機密データが含まれる可能性があります。ランタイムが暗号化キーを使用するように設定されている場合、ランタイムはすべてのオンラインポリシーを暗号化してからディスクに保存します。同じ理由で生成されるポリシーキャッシュの動作も同じです。暗号化されたポリシーを開いた場合、通常の XML ファイルが表示される代わりに、ファイルは次のようになります。

ポリシー設定のデバッグまたはトラブルシューティングを行う必要がある場合、ゲートウェイ暗号化ツールのポリシーモードを使用して、暗号化されていない XML を復旧できます。

ランタイムはオフラインポリシーを自動的に暗号化しません。ただし、すでに暗号化されているオフラインポリシーファイルを提供する場合、ランタイムはそれらを復号化して通常どおり使用できます。

クラスターでの実行時に、ポリシーの元のデプロイ先ノードが暗号化を使用するように設定されている場合、そのノードでオフラインポリシーは暗号化されたままになります。他のノードに伝播する場合、ポリシーはノードの設定に従います。暗号化を使用するようにノードが設定されている場合、ポリシーは暗号化されてそのノードに伝播されます。暗号化を使用するようにノードが設定されていない場合、ポリシーは暗号化されずにそのノードに伝播されます。