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

6.2 セットアップ

pgauditのセットアップ方法を説明します。

  1. pgauditのファイルコピー

    Linuxスーパーユーザーで以下のコマンドを実行します。“<x>”は、製品のバージョンを示します。

    $ su -
    Password:******
    # cp -r /opt/fsepv<x>server64/OSS/pgaudit/* /opt/fsepv<x>server64

    Windows管理者権限でコマンドプロンプトを開き、以下のコマンドを実行します。“<x>”は、製品のバージョンを示します。

    > xcopy /E "c:\Program Files\Fujitsu\fsepv<x>server64\OSS\pgaudit\*"  "c:\Program Files\Fujitsu\fsepv<x>server64"
  2. pgaudit設定ファイルの作成

    pgauditの動作に必要な情報を記述するpgaudit設定ファイルを任意のファイル名で作成します。pgaudit設定ファイルは、データベースの符号化方式と同じエンコードで作成してください。

    また、監査ログに関するポリシーを意図しないユーザーに参照されないようにするために、pgaudit設定ファイルにはデータベース管理者にのみ読み込み権限を設定してください。

    pgaudit設定ファイルの詳細については、“6.3 pgaudit設定ファイル”を参照してください。

    注意

    この時点では、pgaudit設定ファイルのruleセクションは定義しないでください。

    pgaudit設定ファイルの例

    [output]
    logger = 'auditlog'
  3. postgresql.confの設定

    postgresql.confに、監査ログを利用するための以下のパラメータを設定します。

    shared_preload_libraries

    “pgaudit”を指定します。

    pgaudit.config_file

    pgaudit設定ファイルの配置先パス名を指定します。

    相対パスで指定した場合は、データ格納先のディレクトリからの相対パスとなります。

    log_replication_commands

    “on”を指定します。

    log_min_messages

    ERROR以上が指定されていることを確認します。


    監査ログをサーバログに出力する場合(pgaudit設定ファイルのloggerパラメータに“serverlog”を指定)は、サーバログに関する以下のパラメータを確認します。

    logging_collector

    “on”が指定されていることを確認します。

    log_destination

    “stderr”が指定されていることを確認します。

    Linuxlog_file_mode

    許可された人物だけにサーバログへのアクセスを許可するために、サーバログのパーミッションが適切であることを確認します。

    参考

    log_file_modeパラメータのデフォルトは0600であり、データベース管理者のみアクセス可能です。

    たとえば、データベース管理者のグループにも参照を許可する場合は、log_file_modeに0640を指定します。

    log_file_mode = 0640

    0000を指定することで、データベース管理者も参照不可にすることができます。ただし、ログ出力を行うため、書き込み権限は付与された状態となります。


    監査ログを専用ログファイルに出力する場合(pgaudit設定ファイルのloggerパラメータに“auditlog”を指定)は、以下のパラメータを確認します。

    max_worker_processes

    max_worker_processesパラメータを設定している場合は、指定されている値に1を追加します。

    参照

    サーバログの詳細は“PostgreSQL Documentation”の“Error Reporting and Logging”を参照してください。

    データベース多重化運用を使用する場合は、“6.6 データベース多重化運用の場合”を参照してください。

    postgresql.confの例

    下記の例では、監査ログ機能利用時に設定が必要なパラメータのみ記載しています。

    shared_preload_libraries = 'pgaudit'
    pgaudit.config_file = 'pgaudit.conf'
    log_replication_commands = on
    log_min_messages = WARNING
  4. インスタンスの起動

    インスタンスを起動し、以下のメッセージが出力されることを確認してください。

    LOG: pgaudit extension initialized
  5. pgauditエクステンションの作成

    CREATE EXTENSIONを使用し、pgauditエクステンションを作成します。

    $ psql
    =# CREATE EXTENSION pgaudit;
    =# \dx
                      List of installed extensions
    Name    | Version |   Schema   |     Description
    --------+---------+------------+---------------------------------
    pgaudit | 1.0     | public     | provides auditing functionality
    plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
    (2 rows)
  6. pgaudit設定ファイルのパラメータ設定

    pgaudit設定ファイルのパラメータを追加/変更します。

    pgaudit設定ファイルの詳細は“6.3 pgaudit設定ファイル”を参照してください。

  7. インスタンスの再起動

    pgaudit設定ファイルの変更を適用するため、インスタンスを再起動します。再起動後、変更内容が正しく反映されていることを確認してください。

    LinuxLinuxの場合

    LOG:  log_catalog = 1
    LOG:  log_level_string =
    LOG:  log_level = 15
    LOG:  log_parameter = 0
    LOG:  log_statement_once = 0
    LOG:  role =
    LOG:  logger = auditlog
    LOG:  log_directory = pgaudit_log
    LOG:  log_filename = pgaudit-%Y-%m-%d_%H%M%S.log
    LOG:  log_file_mode = 0600
    LOG:  log_rotation_age = 1440
    LOG:  log_rotation_size = 10240
    LOG:  log_truncate_on_rotation = 0
    LOG:  fifo_directory = /tmp
    LOG:  Rule 0
    LOG:  pgaudit extension initialized

    WindowsWindowsの場合

    LOG:  log_catalog = 1
    LOG:  log_level_string =
    LOG:  log_level = 15
    LOG:  log_parameter = 0
    LOG:  log_statement_once = 0
    LOG:  role =
    LOG:  logger = auditlog
    LOG:  log_directory = pgaudit_log
    LOG:  log_filename = pgaudit-%Y-%m-%d_%H%M%S.log
    LOG:  log_file_mode = 0600
    LOG:  log_rotation_age = 1440
    LOG:  log_rotation_size = 10240
    LOG:  log_truncate_on_rotation = 0
    LOG:  Rule 0
    LOG:  pgaudit extension initialized