11.13.6. Java キーストアに暗号化された機密性の高い文字列の保存および読み出し
概要
パスワードや、機密性の高いその他の文字列がプレーンテキストの設定ファイルに含まれるのはセキュアではありません。JBoss EAP 6 には、このような機密性の高い文字列をマスキングして暗号化されたキーストアに保存する機能や、設定ファイルでマスクされた値を使用する機能が含まれています。
前提条件
EAP_HOME/bin/vault.shアプリケーションはコマンドラインインターフェースからアクセスできなければなりません。
手順11.44 Java キーストアの設定
vault.shコマンドを実行します。EAP_HOME/bin/vault.shを実行します。0を入力して新しい対話セッションを開始します。暗号化されたファイルが保存されるディレクトリーを入力します。
「機密性が高い文字列を格納する Java キーストアの作成」 に従ってキーストアを作成した場合、キーストアはEAP_HOME/vault/というディレクトリーにあります。ほとんどの場合、暗号化した情報をキーストアと同じ場所に保存することは適切です。このディレクトリーには機密性の高い情報が含まれるため、アクセスできるユーザーを制限する必要があります。最低でも、JBoss EAP を実行するユーザーアカウントには読み書き権限が必要です。注記
必ずディレクトリー名の最後にスラッシュが含まれるようにしてください。ご使用のオペレーティングシステムに応じて/または\を使用します。キーストアへのパスを入力します。
キーストアファイルへのフルパスを入力します。この例ではEAP_HOME/vault/vault.keystoreを使用します。キーストアパスワード、vault 名、ソルト、繰り返す回数を入力します。
入力を促されたら、キーストアパスワード、vault 名、ソルト、繰り返す回数を入力します。ハンドシェイクが実行されます。パスワードを保存するオプションを選択します。
オプション0を選択して、パスワードや機密性の高い他の文字列を保存します。値を入力します。
入力を促されたら、値を 2 回入力します。値が一致しない場合は再度入力するよう要求されます。vault ブロックを入力します。
同じリソースに関連する属性のコンテナである vault ブロックを入力します。属性名の例としてはds_ExampleDSなどが挙げられます。データソースまたは他のサービス定義で、暗号化された文字列への参照の一部を形成します。属性名を入力します。
保存する属性の名前を入力します。passwordが属性名の例の 1 つになります。結果以下のようなメッセージによって、属性が保存されたことが示されます。
Secured attribute value has been stored in vault.
Secured attribute value has been stored in vault.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 暗号化された文字列に関する情報を書き留めます。
メッセージは vault ブロック、属性名、共有キー、および設定で文字列を使用する場合のアドバイスを表示する標準出力を出力します。安全な場所にこの情報を書き留めておくようにしてください。出力例は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定で暗号化された文字列を使用します。
プレーンテキストの文字列の代わりに、前の設定手順の文字列を使用します。以下は、上記の暗号化されたパスワードを使用するデータソースになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 式が許可されるドメインまたはスタンドアロン設定ファイルであれば、どこでも暗号化された文字列を使用することができます。注記
特定のサブシステム内で式が許可されるかを確認するには、そのサブシステムに対して次の CLI コマンドを実行します。/host=master/core-service=management/security-realm=TestRealm:read-resource-description(recursive=true)
/host=master/core-service=management/security-realm=TestRealm:read-resource-description(recursive=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの出力で、expressions-allowedパラメーターの値を探します。値が true であればこのサブシステムの設定内で式を使用できます。文字列をキーストアに格納した後、次の構文を使用してクリアテキストの文字列を暗号化された文字列に置き換えます。${VAULT::VAULT_BLOCK::ATTRIBUTE_NAME::ENCRYPTED_VALUE}${VAULT::VAULT_BLOCK::ATTRIBUTE_NAME::ENCRYPTED_VALUE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 実環境の値の例は次のとおりです。vault ブロックはds_ExampleDS、属性はpasswordです。<password>${VAULT::ds_ExampleDS::password::1}</password><password>${VAULT::ds_ExampleDS::password::1}</password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow