Aws:RDS:PostgreSQL-LogAcquisition
PostgreSQLログ取得
忘れそうなのでメモ。
下記2つの記事を組み合わせた内容になっています。マスキングは[PGAudit プラグインを使用する]を採用
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-postgresql-pgaudit/
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-postgresql-cleartext-logging/
監査(audit)ログの取得
①rdsに接続し、rds_pgaudit という専用のデータベースロールを作成します。
#rdsに接続する。 psql -h [エンドポイント] -U postgres [パスワード] #ロールを作成する。 CREATE ROLE rds_pgaudit; #CREATE ROLE
②DB インスタンスに関連付けられている DB パラメータグループを変更します。
■必須項目
名前 | 値 | 備考 |
---|---|---|
pgaudit.role | rds_pgaudit | |
shared_preload_libraries | pg_stat_statements,pgaudit |
■任意項目(お試し設定)
名前 | 値 | 備考 |
---|---|---|
pgaudit.log | role,all,-misc | 監査ログの種類 postgreに再接続しないと設定反映されなかった |
log_connections | 1 | セッションの開始ログを記録 |
log_disconnections | 1 | セッションの終了ログを記録 |
③DB インスタンスを再起動します。
④pgaudit が初期化されていることを確認します。
show shared_preload_libraries; # shared_preload_libraries #-------------------------- # rdsutils,pgaudit #(1 行)
⑤pgaudit 拡張機能を作成します。
CREATE EXTENSION pgaudit; # CREATE EXTENSION
⑥pgaudit.role が rds_pgaudit に設定されていることを確認します。
show pgaudit.role; # pgaudit.role #-------------- # rds_pgaudit #(1 行)
出力されるログの確認
今回はログ出力のお試しに[pgaudit.log=role,all,-misc]としていますので、必要に応じて値を変更してください。
#ロール作成 CREATE ROLE samplerole WITH PASSWORD 'test123'; #ロール変更 ALTER ROLE samplerole WITH PASSWORD 'test';
記録されていいますね、マスキングされていますね!
#データベース作成 CREATE DATABASE sampledb; #テーブル作成 CREATE TABLE sampletable ( id char(4) not null, name text not null, food text not null, PRIMARY KEY(id) );
記録されていますね。
#データ登録 INSERT INTO sampletable(id,name,food) VALUES (1,'mnz','ちゃんぽん'); #selectしてみる select * from sampletable;
記録されていますね。
#rdsに接続する。 psql -h [エンドポイント] -U postgres [パスワード] #rdsから切断する。 \q
記録されていますね。
Aws/RDS/PostgreSQL-LogAcquisition.txt · 最終更新: 2021/10/27 by 127.0.0.1