3.10. 管理監査ロギング
管理コンソール、管理 CLI、または管理 API を使用するカスタムアプリケーションを使用して実行されたすべての操作をログに記録する、管理インターフェイスの監査ロギングを有効にできます。監査ログエントリーは JSON 形式で保存されます。監査ロギングはデフォルトでは無効になっています。
監査ロギングを設定して ファイル または syslog サーバー へ出力できます。
JBoss EAP には認証されたセッションがないため、ログインおよびログアウトイベントは監査できません。その代わりに、ユーザーから操作を受信すると監査メッセージがログに記録されます。
スタンドアロンサーバーの監査ロギング
監査ロギングはデフォルトでは無効になっていますが、デフォルトの監査ロギング設定はファイルに書き込みします。
<audit-log> <formatters> <json-formatter name="json-formatter"/> </formatters> <handlers> <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> </handlers> <logger log-boot="true" log-read-only="false" enabled="false"> <handlers> <handler name="file"/> </handlers> </logger> </audit-log>
この設定は、以下の管理 CLI コマンドを使用して読み取ることができます。
/core-service=management/access=audit:read-resource(recursive=true)
スタンドアロンサーバーの監査ロギングを有効にする場合は、監査ロギングの有効化 を参照してください。
マネージドドメインの監査ロギング
監査ロギングはデフォルトでは無効になっていますが、デフォルトの監査ロギング設定は各ホストおよび各サーバーに対してファイルを書き込みします。
<audit-log> <formatters> <json-formatter name="json-formatter"/> </formatters> <handlers> <file-handler name="host-file" formatter="json-formatter" relative-to="jboss.domain.data.dir" path="audit-log.log"/> <file-handler name="server-file" formatter="json-formatter" relative-to="jboss.server.data.dir" path="audit-log.log"/> </handlers> <logger log-boot="true" log-read-only="false" enabled="false"> <handlers> <handler name="host-file"/> </handlers> </logger> <server-logger log-boot="true" log-read-only="false" enabled="false"> <handlers> <handler name="server-file"/> </handlers> </server-logger> </audit-log>
この設定は、以下の管理 CLI コマンドを使用して読み取ることができます。
/host=HOST_NAME/core-service=management/access=audit:read-resource(recursive=true)
マネージドドメインの監査ロギングを有効にする場合は、監査ロギングの有効化 を参照してください。
3.10.1. 管理監査ロギングの有効化
監査ロギングはデフォルトでは無効になっていますが、JBoss EAP には監査ロギングのファイルハンドラーが事前設定されています。監査ロギングを有効にする管理 CLI コマンドは、スタンドアロンサーバーとして実行しているかまたはマネージドドメインで実行しているかによって異なります。ファイルハンドラーの属性は 管理監査ロギング属性 を参照してください。
次の手順では、NATIVE
および HTTP
監査ロギングを有効にします。Jakarta Management 監査ロギングを設定する場合は Jakarta Management 監査ロギングの有効化 を参照してください。
syslog 監査ロギングを設定する場合は syslog サーバーへの管理監査ロギングの送信 を参照してください。
スタンドアロンサーバー監査ロギングの有効化
監査ロギングは以下のコマンドを使用して有効にできます。
/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
デフォルトでは、このコマンドによって監査ログが EAP_HOME/standalone/data/audit-log.log
に書き込まれます。
マネージドドメイン監査ロギングの有効化
マネージドドメインのデフォルトの監査ログ設定は、各ホストおよび各サーバーに対して監査ログを書き込むよう事前設定されています。
各ホストの監査ロギングは以下のコマンドを使用して有効にできます。
/host=HOST_NAME/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)
デフォルトでは、このコマンドによって監査ログが EAP_HOME/domain/data/audit-log.log
に書き込まれます。
各サーバーの監査ロギングは以下のコマンドを使用して有効にできます。
/host=HOST_NAME/core-service=management/access=audit/server-logger=audit-log:write-attribute(name=enabled,value=true)
デフォルトでは、このコマンドによって監査ログが EAP_HOME/domain/servers/SERVER_NAME/data/audit-log.log
に書き込まれます。
3.10.2. Jakarta Management 監査ロギングの有効化
JBoss EAP には、Jakarta Management 監査ロギングのファイルハンドラーが事前設定されていますが、これらのログはデフォルトで無効になっています。監査ロギングを有効にする管理 CLI コマンドは、スタンドアロンサーバーまたは管理対象ドメインとして実行しているかによって異なります。
NATIVE
または HTTP
監査ロギングを設定する場合は 管理監査ロギングの有効化 を参照してください。
スタンドアロンサーバーの Jakarta Management 監査ロギングの有効化
以下のコマンドを使用すると、スタンドアロンサーバーでの Jakarta Management 監査ロギングを有効にできます。
/subsystem=jmx/configuration=audit-log:add() /subsystem=jmx/configuration=audit-log/handler=file:add()
これにより、Jakarta Management 監査ロギングが有効になり、定義された file
ハンドラーを使用してこれらのログを EAP_HOME/standalone/data/audit-log.log
に書き込むことができるようになります。
マネージドドメインの Jakarta Management 監査ロギングの有効化
マネージドドメインの各ホストおよびプロファイルに Jakarta Management 監査ロギングを有効にすることができます。
ホストの Jakarta Management 監査ロギングの有効化
ホストの
jmx
サブシステムで監査ロギングを有効にします。/host=HOST_NAME/subsystem=jmx/configuration=audit-log:add()
jmx
サブシステムの監査ロギングが有効になったら、以下のコマンドでホストにハンドラーを定義することができます。/host=HOST_NAME/subsystem=jmx/configuration=audit-log/handler=host-file:add()
デフォルトでは、このコマンドによって Jakarta Management 監査ログが
EAP_HOME/domain/data/audit-log.log
に書き込まれます。
プロファイルの Jakarta Management 監査ロギングの有効化
プロファイルの
jmx
サブシステムで監査ロギングを有効にします。/profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log:add()
jmx
サブシステムの監査ロギングが有効になったら、以下のコマンドでプロファイルにハンドラーを定義することができます。/profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log/handler=server-file:add()
デフォルトでは、このコマンドによって Jakarta Management 監査ログが
EAP_HOME/domain/servers/SERVER_NAME/data/audit-log.log
に書き込まれます。
3.10.3. syslog サーバーへの管理監査ロギングの送信
syslog ハンドラーは、監査ログエントリーが syslog サーバーに送信されるときのパラメーター (syslog サーバーのホスト名および syslog サーバーがリッスンするポート) を指定します。監査ロギングを syslog サーバーへ送信すると、ローカルファイルまたはローカル syslog サーバーへロギングする場合よりも、セキュリティーオプションが多くなります。複数の syslog ハンドラーを同時に定義およびアクティブ化することができます。
デフォルトでは、監査ロギングが有効である場合にファイルへ出力するよう事前設定されています。以下の手順に従って、syslog サーバーへの監査ロギングを設定および有効化します。syslog ハンドラーの属性については 管理監査ロギング属性 を参照してください。
syslog ハンドラーを追加します。
syslog サーバーのホストとポートを指定して syslog ハンドラーを作成します。マネージドドメインでは、
/core-service
コマンドの前に/host=HOST_NAME
を追加する必要があります。batch /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME:add(formatter=json-formatter) /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=udp:add(host=HOST_NAME,port=PORT) run-batch
注記渡すパラメーターは指定されたプロトコルによって異なります。
TLS を使用して syslog サーバーとセキュアに通信するようハンドラーを設定するには、認証を設定する必要もあります。以下に例を示します。
/core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=tls/authentication=truststore:add(keystore-path=PATH_TO_TRUSTSTORE,keystore-password=TRUSTSTORE_PASSWORD)
syslog ハンドラーへの参照を追加します。
マネージドドメインでは、このコマンドの前に
/host=HOST_NAME
を追加する必要があります。/core-service=management/access=audit/logger=audit-log/handler=SYSLOG_HANDLER_NAME:add
監査ロギングを有効にします。
管理監査ロギングの有効化 を参照して監査ロギングを有効にします。
オペレーティングシステムでロギングが有効になっていないと、JBoss EAP で syslog サーバーへの監査ロギングを有効にしても動作しません。
Red Hat Enterprise Linux の rsyslog
設定の詳細は、https://access.redhat.com/documentation/ja/red-hat-enterprise-linux/ にてシステム管理者のガイドの Rsyslog の基本設定 の項を参照してください。
3.10.4. 監査ログエントリーの読み取り
ファイルに出力される監査ログエントリーは、テキストビューアーで参照することを推奨します。 syslog サーバーに出力される監査ログエントリーは syslog ビューアーアプリケーションで参照することを推奨します
ログファイルの参照にテキストエディターを使用することは推奨されません。 これは、追加のログエントリーがログファイルに書き込まれなくなることがあるためです。
監査ログエントリーは JSON 形式で保存されます。各ログエントリーは最初にオプションのタイムスタンプ、次に以下の表のフィールドが示されます。
表3.6 管理監査ログフィールド
フィールド名 | 説明 |
---|---|
access | 以下のいずれかの値を使用できます。
|
booting |
起動プロセス中に操作が実行された場合は、値が |
domainUUID | ドメインコントローラーからサーバー、スレーブホストコントローラー、およびスレーブホストコントローラーサーバーへ伝播されるすべての操作をリンクする ID。 |
ops | 実行される操作。JSON へシリアライズ化された操作のリストになります。起動時は、XML の解析で生じたすべての操作がリストされます。起動後は、通常 1 つのエントリーがリストされます。 |
r/o |
操作によって管理モデルが変更されない場合は、値が |
remote-address | この操作を実行するクライアントのアドレス。 |
success |
操作に成功した場合は値が |
type |
管理操作であることを示す |
user |
認証されたユーザーのユーザー名。稼働しているサーバーと同じマシンの管理 CLI を使用して操作を行った場合は、特別な |
version | JBoss EAP インスタンスのバージョン番号。 |