三歩あるけば物も忘れる

お腹のお肉がメタボックル

ユーザ用ツール

サイト用ツール


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