プロパティファイルを暗号化する
前回の記事では、プロパティを使用してMuleフローから参照する方法について記載しました。プロパティの内容によっては、他システムとの接続情報であったり機密情報などを管理する場合も多く、プロパティを暗号化でセキュリティ対策をする必要があります。
今回はプロパティファイルの暗号化について、手順を記していきたいと思います。
プロパティを使用するための準備
プロパティファイルを暗号化するには、Secure Propertiesを使用します。
プロジェクトのManage ModulesからSecure Propertiesモジュールをインストールします。
Mule ProjectのModulesから+ボタンのform Exchangeを選択し、Secure Configuration Property Extensionを追加してください。
このように、Mule PaletteにSecure Propertiesが表示されます。
プロパティファイルを暗号化する
続いてプロパティファイルを暗号化してみましょう。前回作成したこちらのプロパティファイルを暗号化してみます。
プロパティファイルを暗号化するにはセキュアプロパティツールjarファイルを使用します。詳細はこちらのサイトに記載されており、ページ内のリンクからjarファイル(secure-properties-tool.jar)をダウンロードしておきます。
jarファイルをダウンロードしたら、任意の作業用フォルダにjarファイル(secure-properties-tool.jar)と暗号化するプロパティファイルを配置し、以下コマンドにてファイルの暗号化を実施します。オプションで暗号化のアルゴリズムやモードを指定できますが、今回は以下の設定で暗号化します。
オプション | 設定値 | 備考 |
---|---|---|
アルゴリズム | Blowfish | |
モード | CBC | |
キー | mulesoft | 暗号化/復号するためのキー 任意の文字列でOK |
任意の作業用フォルダにjarファイル(secure-properties-tool.jar)と暗号化するプロパティファイルを配置し、以下コマンドにてファイルの暗号化を実施します。
java -cp secure-properties-tool.jar com.mulesoft.tools.SecurePropertiesTool file encrypt Blowfish CBC mulesoft config-dev.yaml config-dev-out.yaml
上記コマンドを実行すると、config-dev-out.yamlファイルに暗号化されたものが出力されます。中身はこんな感じで、valueの部分が暗号化されるので、これをconfig-dev.yamlに置き換えます。
プロパティファイルの読み込みと復号
では、暗号化したプロパティファイルをSecure Propertiesを使って復号しながら読み込んでみましょう。
Global ElementsからSecure Properties Configを作成します。
Secure Properties Configには暗号化した時の情報をセットします。
項目 | 設定値 | 備考 |
---|---|---|
File | 暗号化したプロパティファイルを指定 | |
Key | 暗号化の際に設定したキー | Global Propertyに保持してもOK |
Algorithm | 暗号化の際に設定したアルゴリズム | |
Mode | 暗号化の際に設定したモード |
プロパティを参照する場合は、key名に「secure::」をつけることで参照可能です。
${secure::key名}
Dataweave式で参照する場合も「secure::」をつけることで参照可能です。
Mule::p('secure::{key名}')
secureで参照した場合でも、このように復号されて読み込まれることがわかります。
最後に
このようにSecure Propertiesモジュールを使うことで、プロパティファイルの暗号化を行うことができます。暗号化しない場合より、手間はかかりますが情報の秘匿性の手段としてよく使うことになります。暗号化・復号のオプションもしっかり確認しつつ、動作検証まで忘れないようにしていきましょう。
コメント