Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.6.3. 外部ソースからのキーストアパスワードの取得

Vault 設定で EXT、EXTC、CMD、CMDC、または CLASS メソッドを使用して、Java キーストアのパスワードを取得することもできます。
<vault-option name="KEYSTORE_PASSWORD" value="[here]"
この方法を以下で説明します。
  • これは、そのまま使えるコマンドを参照します。ここでの {EXT}... は、実際のコマンドです。例:{EXT}/usr/bin/getmypassword --section 1 --query company/usr/bin/getmypassword を実行すると、パスワードを標準出力に表示し、Security Vault のキーストアのパスワードとして使用します。この例では --section 1 と --query company のオプションを使用しています。
  • {EXTC[:expiration_in_millis]}...: 実際のコマンドを参照します。ここでの、... は、プラットフォームコマンドを実行するために Runtime.exec(String) メソッドに渡される、実際のコマンドラインです。コマンド出力の最初の行がパスワードとして使用されます。EXTC バリアントは expiration_in_millis ミリ秒のパスワードをキャッシュします。デフォルトのキャッシュ有効期限は 0 (ゼロ) です。これは、キャッシュ内のアイテムが期限切れにならないことを意味します。例:{EXTC:120000}/usr/bin/getmypassword --section 1 --query company/usr/bin/getmypassword の出力がキャッシュに含まれているかどうかを確認します。出力が含まれている場合はそれを使用します。出力がない場合は、コマンドを実行してこれをキャッシュに出力して使用します。この例では、キャッシュは 2 分 (120000 ミリ秒) で期限切れになります。
  • {CMD}... or {CMDC[:expiration_in_millis]}...: 一般的なコマンドは 「,」 (コンマ) で区切られた文字列です。最初の部分は実際のコマンドで、追加の部分はパラメーターを表します。コンマにバックスラッシュを付けることで、パラメーターの一部として維持することができます。例: {CMD}/usr/bin/getmypassword,--section,1,--query,company
  • {CLASS[@jboss_module_spec]}classname[:ctorargs]: [:ctorargs] は、クラス名から : (コロン) によって区切られるオプションの文字列です。これは、クラス名 ctor に渡されます。ctorargs は文字列のコンマ区切りの一覧です。例: {CLASS@org.test.passwd}org.test.passwd.ExternamPassworProvider.この例では、org.test.passwd モジュールからの org.test.passwd.ExternamPassworProvider クラスを読み込んで、 toCharArray() メソッドを使用し、パスワードを取得します。toCharArray() が利用できない場合は toString() メソッドを使用します。org.test.passwd.ExternamPassworProvider クラスにはデフォルトのコンストラクターが必要です。