1.4. JBoss EAP 管理 CLI を使用したクレデンシャルストアの操作
実行中の JBoss EAP サーバーで JBoss EAP クレデンシャルを管理するには、提供されている管理 CLI 操作を使用します。PasswordCredential および SecretKeyCredential は、JBoss EAP 管理 CLI を使用して管理できます。
これらの操作は、変更可能なクレデンシャルストアに対してのみ行うことができます。デフォルトでは、クレデンシャルストアタイプはすべて変更可能です。
1.4.1. スタンドアロンサーバー用の credential-store の作成 リンクのコピーリンクがクリップボードにコピーされました!
ファイルシステムの任意のディレクトリーに、スタンドアロンサーバーとして動作する JBoss EAP 用の credential-store を作成します。セキュリティーの理由から、このストアを含むディレクトリーは、一部のユーザーのみがアクセスできるようにする必要があります。
前提条件
- 最低でも、JBoss EAP が実行されているユーザーアカウントの KeyStoreCredentialStore を含むディレクトリーへの読み取り/書き込みアクセスが割り当てられている。
credential-store と secret-key-credential-store は同じ Elytron 機能 (org.wildfly.security.credential-store) を実装しているため、同じ名前を指定できません。
手順
以下の管理用 CLI コマンドで KeyStoreCredentialStore を作成します。
構文
/subsystem=elytron/credential-store=<name_of_credential_store>:add(path="<path_to_store_file>", relative-to=<base_path_to_store_file>, credential-reference={clear-text=<store_password>}, create=true)例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:add(path="exampleKeyStoreCredentialStore.jceks", relative-to=jboss.server.data.dir, credential-reference={clear-text=password}, create=true) {"outcome" => "success"}
1.4.2. マネージドドメインでの credential-store の作成 リンクのコピーリンクがクリップボードにコピーされました!
マネージドドメインに credential-store を作成できますが、最初に WildFly Elytron ツールを使用して、KeyStoreCredentialStore を準備する必要があります。1 つのマネージドドメインに複数のホストコントローラーがある場合は、以下のいずれかのオプションを選択します。
-
各ホストコントローラーに
credential-storeを作成し、各credential-storeにクレデンシャルを追加します。 -
1 つのホストコントローラーから他のすべてのホストコントローラーに、入力された
credential-storeをコピーします。 -
credential-storeファイルをネットワークファイルシステム (NFS) に保存し、作成するすべてのcredential-storeリソースにそのファイルを使用します。
また、WildFly Elytron ツールを使用せずに、ホストコントローラー上でクレデンシャルを含む credential-store ファイルを作成することもできます。
同じプロファイルのすべてのサーバーには、credential-store ファイルが含まれているため、全サーバーに credential-store リソースを定義する必要はありません。credential-store ファイルは、サーバー data ディレクトリー relative-to=jboss.server.data.dir にあります。
credential-store と secret-key-credential-store は同じ Elytron 機能 (org.wildfly.security.credential-store) を実装しているため、同じ名前を指定できません。
次の手順では、NFS を使用してすべてのホストコントローラーに credential-store を提供する方法を説明します。
手順
-
WildFly Elytron ツールを使用して、
credential-storeストレージファイルを作成します。詳細は、WildFly Elytron toolcredential-storeoperations を参照してください。 ストレージファイルを配布します。たとえば、
scpコマンドを使用して各ホストコントローラーに割り当てたり、NFS に保存してすべてのcredential-storeリソースに使用したりします。注記複数のリソースとホストコントローラーが使用し、NFS に保存した
credential-storeファイルの一貫性を維持するには、credential-storeを読み取り専用モードで使用する必要があります。さらに、credential-storeファイルの絶対パスを必ず指定してください。構文
/profile=<profile_name>/subsystem=elytron/credential-store=<name_of_credential_store>:add(path=<absolute_path_to_store_keystore>,credential-reference={clear-text="<store_password>"},create=false,modifiable=false)例
/profile=full-ha/subsystem=elytron/credential-store=exampleCredentialStoreDomain:add(path=/usr/local/etc/example-cred-store.cs,credential-reference={clear-text="password"},create=false,modifiable=false)オプション: プロファイルに
credential-storeリソースを定義する必要がある場合は、ストレージファイルを使用してリソースを作成します。構文
/profile=<profile_name>/subsystem=elytron/credential-store=<name_of_credential_store>:add(path=<path_to_store_file>,credential-reference={clear-text="<store_password>"})例
/profile=full-ha/subsystem=elytron/credential-store=exampleCredentialStoreHA:add(path=/usr/local/etc/example-cred-store-ha.cs, credential-reference={clear-text="password"})オプション: ホストコントローラーの
credential-storeリソースを作成します。構文
/host=<host_controller_name>/subsystem=elytron/credential-store=<name_of_credential_store>:add(path=<path_to_store_file>,credential-reference={clear-text="<store_password>"})例
/host=master/subsystem=elytron/credential-store=exampleCredentialStoreHost:add(path=/usr/local/etc/example-cred-store-host.cs, credential-reference={clear-text="password"})
1.4.3. スタンドアロンサーバー用の secret-key-credential-store の作成 リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI を使用して secret-key-credential-store を作成します。secret-key-credential-store を作成すると、JBoss EAP はデフォルトでシークレットキーを生成します。生成された鍵の名前は key で、そのサイズは 256 ビットです。
前提条件
- JBoss EAP が実行されている。
-
少なくとも、JBoss EAP を実行しているユーザーアカウントの
secret-key-credential-storeを格納したディレクトリーへの読み取り/書き込みアクセスが割り当てられている。
手順
以下のコマンドで、管理 CLI を使用して
secret-key-credential-storeを作成します。構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}
1.4.4. credential-store への PasswordCredential の追加 リンクのコピーリンクがクリップボードにコピーされました!
PasswordCredential としてパスワードを必要とするリソースのプレインテキストパスワードを credential-store に追加し、そのパスワードを設定ファイルで非表示にします。この保存したクレデンシャルを参照して、パスワードを公開することなく、これらのリソースにアクセスできます。
前提条件
credential-storeを作成している。credential-storeの作成の詳細は、スタンドアロンサーバー用credential-storeの作成 を参照してください。
手順
新しい PasswordCredential を
credential-storeに追加します。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:add-alias(alias=<alias>, secret-value=<secret-value>)例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:add-alias(alias=passwordCredentialAlias, secret-value=StrongPassword) {"outcome" => "success"}
検証
次のコマンドを実行して、PasswordCredential が
credential-storeに追加されたことを確認します。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:read-aliases()例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:read-aliases() { "outcome" => "success", "result" => ["passwordcredentialalias"] }
1.4.5. credential-store での SecretKeyCredential の生成 リンクのコピーリンクがクリップボードにコピーされました!
credential-store で SecretKeyCredential を生成します。デフォルトでは、Elytron は 256 ビットの鍵を作成します。別のサイズにする場合は、key-size 属性に 128 ビットまたは 192 ビットの鍵を指定します。
前提条件
credential-storeを作成している。credential-storeの作成の詳細は、スタンドアロンサーバー用credential-storeの作成 を参照してください。
手順
以下の管理 CLI コマンドを使用して、
credential-storeに SecretKeyCredential を生成します。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:generate-secret-key(alias=<alias>, key-size=<128_or_192>)例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:generate-secret-key(alias=secretKeyCredentialAlias)
検証
以下のコマンドを実行して、Elytron が SecretKeyCredential を
credential-storeに保存したことを確認します。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:read-aliases()例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:read-aliases() { "outcome" => "success", "result" => [ "secretkeycredentialalias" ] }
1.4.6. secret-key-credential-store で SecretKeyCredential の生成 リンクのコピーリンクがクリップボードにコピーされました!
secret-key-credential-store で SecretKeyCredential を生成します。デフォルトでは、Elytron は 256 ビットの鍵を作成します。別のサイズにする場合は、key-size 属性に 128 ビットまたは 192 ビットの鍵を指定します。
SecretKeyCredential を生成すると、Elytron は新しいランダムな秘密鍵を生成して SecretKeyCredential として保存します。secret-key-credential-store でエクスポート操作を使用して、クレデンシャルの内容を表示できます。
JBoss EAP は失われた Elytron クレデンシャルを復号化または取得できないため、secret-key-credential-store か SecretKeyCredential、またはその両方のバックアップを必ず作成してください。
secret-key-credential-store で export 操作を使用して、SecretKeyCredential の値を取得できます。この値をバックアップとして保存できます。
前提条件
secret-key-credential-storeを作成している。secret-key-credential-storeの作成の詳細は、スタンドアロンサーバー用secret-key-credential-storeの作成 を参照してください。
手順
以下の管理 CLI コマンドを使用して、
secret-key-credential-storeに SecretKeyCredential を生成します。構文
/subsystem=elytron/secret-key-credential-store=<name_of_the_properties_credential_store>:generate-secret-key(alias=<alias>, key-size=<128_or_192>)例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:generate-secret-key(alias=secretKeyCredentialAlias) {"outcome" => "success"}
検証
以下のコマンドを実行して、Elytron が SecretKeyCredential を作成したことを確認します。
構文
/subsystem=elytron/secret-key-credential-store=<name_of_the_properties_credential_store>:read-aliases()例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:read-aliases() { "outcome" => "success", "result" => [ "secretkeycredentialalias", "key" ] }
1.4.7. secret-key-credential-store への SecretKeyCredential のインポート リンクのコピーリンクがクリップボードにコピーされました!
secret-key-credential-store 以外で作成された SecretKeyCredential を Elytron の secret-key-credential-store にインポートできます。たとえば別のクレデンシャルストア (例: credential-store) から SecretKeyCredential をエクスポートした場合、それを secret-key-credential-store にインポートできます。
前提条件
secret-key-credential-storeを作成している。secret-key-credential-storeの作成の詳細は、スタンドアロンサーバー用secret-key-credential-storeの作成 を参照してください。SecretKeyCredential がエクスポートされました。
SecretKeyCredential のエクスポートの詳細は、
secret-key-credential-storeからの SecretKeyCredential のエクスポート を参照してください。
手順
以下のコマンドを使用すると、管理 CLI でコマンドのキャッシュを無効にできます。
重要キャッシングを無効にしない場合は、管理 CLI の履歴ファイルにアクセスできるユーザーは誰でも、秘密鍵を確認できます。
history --disable次の管理 CLI コマンドを使用して、秘密鍵をインポートします。
構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:import-secret-key(alias=<alias>, key="<secret_key>")例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:import-secret-key(alias=imported, key="RUxZAUs+Y1CzEPw0g2AHHOZ+oTKhT9osSabWQtoxR+O+42o11g==")以下の管理 CLI コマンドを使用して、コマンドのキャッシングを再度有効にしてください。
history --enable
1.4.8. credential-store 内のクレデンシャルリスト リンクのコピーリンクがクリップボードにコピーされました!
credential-store に保存されているすべてのクレデンシャルを表示するには、管理 CLI を使用してリストを表示できます。
手順
以下の管理 CLI コマンドを使用して、
credential-storeに保存されているクレデンシャルをリスト表示します。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:read-aliases()例
{ "outcome" => "success", "result" => [ "passwordcredentialalias", "secretkeycredentialalias" ] }
1.4.9. credential-store からの SecretKeyCredential のエクスポート リンクのコピーリンクがクリップボードにコピーされました!
credential-store から既存の SecretKeyCredential をエクスポートして、SecretKeyCredential を使用したり、SecretKeyCredential のバックアップを作成したりできます。
前提条件
credential-storeに SecretKeyCredential を生成している。credential-storeで SecretKeyCredential を生成する方法の詳細は、credential-storeでの SecretKeyCredential の生成 を参照してください。
手順
以下の管理 CLI コマンドを使用して、
credential-storeから SecretKeyCredential をエクスポートします。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:export-secret-key(alias=<alias>)例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:export-secret-key(alias=secretKeyCredentialAlias) { "outcome" => "success", "result" => {"key" => "RUxZAUui+8JkoDCE6mFyA3cCIbSAZaXq5wgYejj1scYgdDqWiw=="} }
1.4.10. secret-key-credential-store からの SecretKeyCredential のエクスポート リンクのコピーリンクがクリップボードにコピーされました!
secret-key-credential-store から既存の SecretKeyCredential をエクスポートして、SecretKeyCredential を使用したり、SecretKeyCredential のバックアップを作成したりできます。
前提条件
secret-key-credential-storeで SecretKeyCredential を生成したか、インポートしている。secret-key-credential-storeで SecretKeyCredential を生成する方法の詳細は、secret-key-credential-storeでの SecretKeyCredential の生成 を参照してください。SecretKeyCredential を
secret-key-credential-storeにインポートする方法の詳細は、SecretKeyCredential をsecret-key-credential-storeにインポートする方法 を参照してください。
手順
以下の管理 CLI コマンドを使用して、
secret-key-credential-storeから SecretKeyCredential をエクスポートします。構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:export-secret-key(alias=<alias>)例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:export-secret-key(alias=secretkeycredentialalias) { "outcome" => "success", "result" => {"key" => "RUxZAUtxXcYvz0aukZu+odOynIr0ByLhC72iwzlJsi+ZPmONgA=="} }
1.4.11. credential-store からのクレデンシャルの削除 リンクのコピーリンクがクリップボードにコピーされました!
credential-store にすべてのクレデンシャルタイプを保存できますが、クレデンシャルを削除すると、デフォルトで Elytron は PasswordCredential であると想定します。別のクレデンシャルタイプを削除する場合は、entry-type 属性で指定します。
手順
以下の管理 CLI コマンドを使用して、
credential-storeからクレデンシャルを削除します。構文
/subsystem=elytron/credential-store=<name_of_credential_store>:remove-alias(alias=<alias>, entry-type=<credential_type>)PasswordCredential の削除例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:remove-alias(alias=passwordCredentialAlias) { "outcome" => "success", "response-headers" => {"warnings" => [{ "warning" => "Update dependent resources as alias 'passwordCredentialAlias' does not exist anymore", "level" => "WARNING", "operation" => { "address" => [ ("subsystem" => "elytron"), ("credential-store" => "exampleKeyStoreCredentialStore") ], "operation" => "remove-alias" } }]} }SecretKeyCredential の削除例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:remove-alias(alias=secretKeyCredentialAlias, entry-type=SecretKeyCredential) { "outcome" => "success", "response-headers" => {"warnings" => [{ "warning" => "Update dependent resources as alias 'secretKeyCredentialAl ias' does not exist anymore", "level" => "WARNING", "operation" => { "address" => [ ("subsystem" => "elytron"), ("credential-store" => "exampleKeyStoreCredentialStore") ], "operation" => "remove-alias" } }]} }
検証
次のコマンドを実行して、Elytron がクレデンシャルを削除したことを確認します。
構文
/subsystem=elytron/credential-store=<name_of_credential_store>:read-aliases()例
/subsystem=elytron/credential-store=exampleKeyStoreCredentialStore:read-aliases() { "outcome" => "success", "result" => [] }削除したクレデンシャルはリストにありません。
1.4.12. secret-key-credential-store からのクレデンシャルの削除 リンクのコピーリンクがクリップボードにコピーされました!
secret-key-credential-store には SecretKeyCredential タイプのみ保存できます。つまり、secret-key-credential-store からクレデンシャルを削除する時に、entry-type を指定する必要はありません。
手順
次のコマンドを使用して、
secret-key-credential-storeから SecretKeyCredential を削除します。構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:remove-alias(alias=<alias>)例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:remove-alias(alias=secretKeyCredentialAlias) { "outcome" => "success", "response-headers" => {"warnings" => [{ "warning" => "Update dependent resources as alias 'secretKeyCredentialAlias' does not exist anymore", "level" => "WARNING", "operation" => { "address" => [ ("subsystem" => "elytron"), ("secret-key-credential-store" => "examplePropertiesCredentialSt ore") ], "operation" => "remove-alias" } }]} }
検証
次のコマンドを実行して、Elytron がクレデンシャルを削除したことを確認します。
構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:read-aliases()例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:read-aliases() { "outcome" => "success", "result" => [] }削除したクレデンシャルはリストにありません。