11.13.6. Java キーストアに暗号化された機密性の高い文字列の保存および読み出し
パスワードや、機密性の高いその他の文字列がプレーンテキストの設定ファイルに含まれるのはセキュアではありません。JBoss EAP 6 には、このような機密性の高い文字列をマスキングして暗号化されたキーストアに保存する機能や、設定ファイルでマスクされた値を使用する機能が含まれています。
要件
EAP_HOME/bin/vault.shアプリケーションはコマンドラインインターフェースからアクセスできなければなりません。
手順11.44 Java キーストアの設定
vault.shコマンドを実行します。EAP_HOME/bin/vault.shを実行します。0を入力して新しい対話セッションを開始します。暗号化されたファイルが保存されるディレクトリーを入力します。
「機密性が高い文字列を格納する Java キーストアの作成」 に従って作業を行った場合は、キーストアはホームディレクトリーのvault/というディレクトリーにあります。ほとんどの場合では、暗号化されたすべての情報をキーストアとして同じ場所に保存するのが普通です。この例では/home/USER/vault/ディレクトリーを使用します。注記
必ずディレクトリー名の最後にスラッシュが含まれるようにしてください。ご使用のオペレーティングシステムに応じて/または\を使用します。キーストアへのパスを入力します。
キーストアファイルへの完全パスを入力します。この例では/home/USER/vault/vault.keystoreを使用します。キーストアパスワード、vault 名、ソルト、繰り返す回数を入力します。
入力を促されたら、キーストアパスワード、vault 名、ソルト、繰り返す回数を入力します。ハンドシェイクが実行されます。パスワードを保存するオプションを選択します。
オプション0を選択して、パスワードや機密性の高い他の文字列を保存します。値を入力します。
入力を促されたら、値を 2 回入力します。値が一致しない場合は再度入力するよう要求されます。vault ブロックを入力します。
同じリソースに関連する属性のコンテナである vault ブロックを入力します。属性名の例としてはds_ExampleDSなどが挙げられます。データソースまたは他のサービス定義で、暗号化された文字列への参照の一部を形成します。属性名を入力します。
保存する属性の名前を入力します。passwordが属性名の例の 1 つになります。結果以下のようなメッセージによって、属性が保存されたことが示されます。
Secured attribute value has been stored in vault.
暗号化された文字列に関する情報を書き留めます。
メッセージは vault ブロック、属性名、共有キー、および設定で文字列を使用する場合のアドバイスを表示する標準出力を出力します。安全な場所にこの情報を書き留めておくようにしてください。出力例は次のとおりです。******************************************** Vault Block:ds_ExampleDS Attribute Name:password Configuration should be done as follows: VAULT::ds_ExampleDS::password::1 ********************************************
設定で暗号化された文字列を使用します。
プレーンテキストの文字列の代わりに、前の設定手順の文字列を使用します。以下は、上記の暗号化されたパスワードを使用するデータソースになります。... <subsystem xmlns="urn:jboss:domain:datasources:1.0"> <datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS"> <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> <driver>h2</driver> <pool></pool> <security> <user-name>sa</user-name> <password>${VAULT::ds_ExampleDS::password::1}</password> </security> </datasource> <drivers> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources> </subsystem> ...式が許可されるドメインまたはスタンドアロン設定ファイルであれば、どこでも暗号化された文字列を使用することができます。注記
特定のサブシステム内で式が許可されるかを確認するには、そのサブシステムに対して次の CLI コマンドを実行します。/host=master/core-service=management/security-realm=TestRealm:read-resource-description(recursive=true)
このコマンドの出力で、expressions-allowedパラメーターの値を探します。値が true であればこのサブシステムの設定内で式を使用できます。文字列をキーストアに格納した後、次の構文を使用してクリアテキストの文字列を暗号化された文字列に置き換えます。${VAULT::VAULT_BLOCK::ATTRIBUTE_NAME::ENCRYPTED_VALUE}実環境の値の例は次のとおりです。vault ブロックはds_ExampleDS、属性はpasswordです。<password>${VAULT::ds_ExampleDS::password::1}</password>

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.