忘れそうなのでメモ。
下記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/
#rdsに接続する。 psql -h [エンドポイント] -U postgres [パスワード] #ロールを作成する。 CREATE ROLE rds_pgaudit; #CREATE ROLE
■必須項目
名前 | 値 | 備考 |
---|---|---|
pgaudit.role | rds_pgaudit | |
shared_preload_libraries | pg_stat_statements,pgaudit |
■任意項目(お試し設定)
名前 | 値 | 備考 |
---|---|---|
pgaudit.log | role,all,-misc | 監査ログの種類 postgreに再接続しないと設定反映されなかった |
log_connections | 1 | セッションの開始ログを記録 |
log_disconnections | 1 | セッションの終了ログを記録 |
show shared_preload_libraries; # shared_preload_libraries #-------------------------- # rdsutils,pgaudit #(1 行)
CREATE EXTENSION pgaudit; # CREATE EXTENSION
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