🐘

pgAuditを使った監査ログから特定のユーザーを除外する設定と反映にはセッションの再接続のみでOKで再起動は不要

に公開

概要

タイトルの通りです。備忘として誰かの役に立てば幸いです。

背景としては、Aurora PostgreSQL で pgAudit を使って監査をログを出力している・したいケースはよくあるのかと思います。

セットアップについてはこちらを参照ください。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Appendix.PostgreSQL.CommonDBATasks.pgaudit.html

pgAudit をセットアップ完了した後、

  • ストレージやログ料金への影響を最小限に抑えたい
  • 監査対象でないユーザーのログは取得したくない

などの理由で、特定のユーザーを監査ログの設定から除外したいということもあるでしょう。
その設定方法、反映方法について備忘として記録したものになります。

設定

こちらが公式ドキュメントになります。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Appendix.PostgreSQL.CommonDBATasks.pgaudit.exclude-user-db.html

ドキュメントに記載の通り、以下のコマンドで myuser をログ対象から除外できます。

ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'none';

反映

既存のDBセッションへは即時反映されるわけではなく、コマンド実行後のセッションから設定が反映されます。例えば、 ECS などのサーバーが DB とのコネクションを持ち続けている状態でログ対象から除外したい場合は、ECS の再起動(更新)をすることでセッションが切り替わり、設定が反映されます。

つまり、DBの再起動は不要でした。ダウンタイムが発生しないのはいいですね。

まとめ

以上、pgAudit を使って監査ログを出力している環境で特定ユーザーを監査ログの対象から除外する方法の設定と反映についての紹介でした。どなたかのお役に立つと幸いです。

Discussion