ページの先頭行へ戻る
Enterprise Postgres 15 セキュリティ運用ガイド

6.3 pgaudit設定ファイル

pgaudit設定ファイルには、pgauditの動作に必要な情報を指定します。pgaudit設定ファイルは、“outputセクション”、“optionセクション”、“ruleセクション”の3つのセクションから構成されています。

outputセクション

outputセクションは、以下の形式で指定します。

outputセクションで指定可能なパラメータを下表に示します。

LinuxLinuxの場合

パラメータ名

説明

備考

logger

監査ログの出力先について、専用ログファイル(auditlog)/サーバログ(serverlog)を指定します。

デフォルトは、“auditlog”(専用ログファイル)です。

専用ログファイルは、データベースの符号化方式と同じエンコードで出力されます。

log_directory

監査ログを作成するディレクトリを指定します。ディレクトリは、絶対パスまたはデータ格納先のディレクトリからの相対パスで指定します。

デフォルトは、“pgaudit_log”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_filename

監査ログのファイル名を指定します。postgresql.confファイルのlog_filenameと同様に、時刻によって変動するファイル名を指定します。

デフォルトは、“pgaudit-%Y-%m-%d_%H%M%S.log”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_file_mode

許可された人物だけに監査ログファイルへのアクセスを許可するために、監査ログファイルのパーミッションを指定します。パラメータの値はchmod、およびumaskシステムコールで許容されるフォーマットで指定される数値モードです。デフォルトは“0600”です。

監査ログファイルのパーミッションについては、“6.2 セットアップ”の“log_file_mode”を参照してください。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_rotation_age

監査ログファイルの最大寿命を指定します。ここで指定した時間(分単位)が経過すると、新しい監査ログファイルが生成されます。“0”を設定することで、時間に基づいた新しいログファイルの生成は無効になります。

指定可能な単位はmin(分)、h(時間)、d(日数)です。単位を省略した場合はmin(分)となります。

デフォルトは、“1d”(1日)です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_rotation_size

監査ログファイルの最大容量を指定します。ここで指定したキロバイト分のログがログファイルに出力された後、新しいログファイルが生成されます。“0”を設定することで、サイズに基づいた新しいログファイルの生成は無効になります。

指定可能な単位はkB(キロバイト)、MB(メガバイト)、GB(ギガバイト)です。単位を省略した場合はkB(キロバイト)となります。

デフォルトは、“10MB”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_truncate_on_rotation

監査ログファイルを時間を基にしてローテーションする場合に、監査ログを既存の同名のファイルに上書きする(on)/上書きしない(off)を指定します。例えば、“on”を指定し、log_filenameに“pgaudit-%H.log”を指定すると、24個の時別なログファイルが生成され、それらは周期的に上書きされることになります。

デフォルトは、“off”です。“off”を指定すると既存の監査ログファイルに追記します。

loggerパラメータに“auditlog”を指定した場合のみ有効

fifo_directory

監査ログファイルを出力するデーモンプロセスとバックエンドプロセスの間で使用するFIFO(名前付きパイプ)のディレクトリを指定します。p.PGAUDIT.nnnnという名前のFIFO(nnnnはpostmasterのPID)がfifo_directoriesディレクトリの中に作成されます。いずれのファイルも手作業で削除することはできません。

デフォルトは、“/tmp”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

audit_log_disconnection

Mirroring Controllerを利用する場合、切断ログの出力を有効(on)/無効(off)を指定します。デフォルトは、“off”(無効)です。本パラメータはpostgresql.confのlog_disconnectionsがoffの場合に有効となります。

Session Audit Loggingのみで使用するパラメータ

WindowsWindowsの場合

パラメータ名

説明

備考

logger

監査ログの出力先について、専用ログファイル(auditlog)/サーバログ(serverlog)を指定します。

デフォルトは、“auditlog”(専用ログファイル)です。

専用ログファイルは、データベースの符号化方式と同じエンコードで出力されます。

log_directory

監査ログを作成するディレクトリを指定します。ディレクトリは、絶対パスまたはデータ格納先のディレクトリからの相対パスで指定します。

デフォルトは、“pgaudit_log”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_filename

監査ログのファイル名を指定します。postgresql.confファイルのlog_filenameと同様に、時刻によって変動するファイル名を指定します。

デフォルトは、“pgaudit-%Y-%m-%d_%H%M%S.log”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_file_mode

Windowsではこのパラメータは無視されます。

log_rotation_age

監査ログファイルの最大寿命を指定します。ここで指定した時間(分単位)が経過すると、新しい監査ログファイルが生成されます。“0”を設定することで、時間に基づいた新しいログファイルの生成は無効になります。

指定可能な単位はmin(分)、h(時間)、d(日数)です。単位を省略した場合はmin(分)となります。

デフォルトは、“1d”(1日)です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_rotation_size

監査ログファイルの最大容量を指定します。ここで指定したキロバイト分のログがログファイルに出力された後、新しいログファイルが生成されます。“0”を設定することで、サイズに基づいた新しいログファイルの生成は無効になります。

指定可能な単位はkB(キロバイト)、MB(メガバイト)、GB(ギガバイト)です。単位を省略した場合はkB(キロバイト)となります。

デフォルトは、“10MB”です。

loggerパラメータに“auditlog”を指定した場合のみ有効

log_truncate_on_rotation

監査ログファイルを時間を基にしてローテーションする場合に、監査ログを既存の同名のファイルに上書きする(on)/上書きしない(off)を指定します。例えば、“on”を指定し、log_filenameに“pgaudit-%H.log”を指定すると、24個の時別なログファイルが生成され、それらは周期的に上書きされることになります。

デフォルトは、“off”です。“off”を指定すると既存の監査ログファイルに追記します。

loggerパラメータに“auditlog”を指定した場合のみ有効

audit_log_disconnection

Mirroring Controllerを利用する場合、切断ログの出力を有効(on)/無効(off)を指定します。デフォルトは、“off”(無効)です。本パラメータはpostgresql.confのlog_disconnectionsがoffの場合に有効となります。

Session Audit Loggingのみで使用するパラメータ

参考

loggerパラメータに“serverlog”を指定した場合、監査ログはサーバログにログメッセージとして出力されるため、監査ログの先頭にpostgresql.confファイルのlog_line_prefixパラメータによるステータス情報とメッセージ深刻度レベルが出力されます。

loggerパラメータを省略、または“auditlog”を指定した場合、監査ログは専用ログとして専用ログファイルに出力されるため、postgresql.confファイルのlog_line_prefixパラメータによるステータス情報やメッセージ深刻度レベルは出力されません。

監査ログの出力形式については、“6.4 Session Audit Logging”の“出力形式”または“6.5 Object Audit Logging”の“出力形式”を参照してください。

Linux

ポイント

log_file_modeパラメータは、postgresql.confのlog_file_modeパラメータの設定およびinitdbコマンドの--allow-group-accessオプションによる影響は受けません。また、監査ログを専用ログファイルに出力する場合、log_directoryパラメータで指定するディレクトリのデフォルト値はデータ格納先のディレクトリ配下になります。そのため、log_file_modeパラメータで指定したパーミッションが、initdbコマンドの-—allow-group-accessオプションの対象となるデータ格納先のパーミッションと競合する場合には、log_directoryパラメータで指定するディレクトリはデータ格納先以外を指定してください。

Windows

ポイント

サーバログのファイル権限がシステムのセキュリティ要件を満たさない場合、監査ログの出力先に専用ログファイルを指定して、セキュリティ要件を満たすように出力先ディレクトリのアクセス権限を設定してください。その際、データベース管理者に対して、読み込みおよび書き込み権限を付与してください。


optionセクション

optionセクションは、以下の形式で指定します。

optionセクションで指定可能なパラメータを下表に示します。

パラメータ名

説明

備考

role

Object Audit Loggingで使用するroleの名前を指定します。

大文字、キーワード、マルチバイト文字およびカンマを指定する場合は、二重引用符で囲んでください。

Object Audit Loggingのみで使用するパラメータ

log_catalog

pg_catalogに対するログ出力の有効(on)/無効(off)を指定します。

pgAdminなど、pg_catalogにアクセスする監査ログを取得しない場合に“off”を指定します。

デフォルトは、“on”(有効)です。

log_parameter

SQL実行でパラメータで渡した値の出力について、有効(on)/無効(off)を指定します。

デフォルトは、“off”(無効)です。

log_statement_once

同じSQLがログの出力対象となる場合、2回目以降のSQLの出力について、抑止する(on)/抑止しない(off)を指定します。

デフォルトは、“off”(抑止しない)です。

log_level

監査ログのログレベルを指定します。

有効な値は、“DEBUG5”、“DEBUG4”、“DEBUG3”、“DEBUG2”、“DEBUG1”、“INFO”、“NOTICE”、“WARNING”、および“LOG”です。

デフォルトは、“LOG"です。

loggerパラメータに“serverlog”を指定した場合のみ有効

ruleセクション

ruleセクションは、Session Audit Loggingで使用されるセクションです。“6.4 Session Audit Logging”を参照してください。

注意

optionセクションにroleパラメータを指定した場合は、ruleセクションを指定しないでください。ruleセクションを指定すると、Object Audit LoggingとSession Audit Loggingの監査ログが混在して出力されるため、CSV形式で参照できなくなるためです。