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

6.2 セットアップ

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

  1. pgaudit設定ファイルの作成

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

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

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

    注意

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

    pgaudit設定ファイル

    [output]
    logger = 'auditlog'
  2. 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文書”の“エラー報告とログ取得”を参照してください。

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

    postgresql.confの例

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

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

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

    LOG: pgaudit extension initialized
  4. 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)
  5. pgaudit設定ファイルのパラメータ設定

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

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

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

    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