昨天簡單介紹一下 RDS
相信對於 RDS 的基本操作大家應該不陌生
而今天就會以如何在 RDS PostgreSQL 實作資料庫稽核
讓大家更了解 RDS 資料庫的使用
無論是 aurora postgres 相容版本或是 posrgresql 資料庫都參考同樣設定
確定資料庫叢集或實體是否將 Log 輸出至 CloudWatch Log
登入到資料庫中
並執行下列指令
CREATE ROLE rds_pgaudit;
新增一個參數 shared_preload_libraries 值為 pgaudit
修改 pgaudit.role 這個參數的值為 rds_pgaudit
如果是使用 default 的參數群組可能無法修改值,需要另外建新的
有使用參數群組的資料庫修改完後要記得重啟
輸入下方的 sql 語法確認是否有出現 pgaudit 的字樣
show shared_preload_libraries;
輸入下列語法以便建立 pgaudit 的套件
CREATE EXTENSION pgaudit;
確定參數群組設定的稽核角色 pgaudit.role 是否有正確的載入 rds_pgaudit
show pgaudit.role;
資料庫在稽核現在使用狀況時會將 Log 寫到 pgaudit.log 中
而我們需要設定稽核層級
層級設定為何則需要按需決定
共有下列幾種
不確定該選甚麼建議可以先選擇 DDL
登入資料庫後輸入下列語法確認目前 log 參數設定狀態
show pgaudit.log;
將 test_database 替換成自己的資料庫名稱
ALTER DATABASE test_database set pgaudit.log='DDL';
因為是設定 DDL 的稽核
因此需要實際修改資料庫結構
才有辦法抓到相關的運作是否可正常執行
檢查 CloudWatch Log /aws/rds/cluster/資料庫名稱/postgresql
如果打算設定不同角色
以便做不同稽核
可以詳閱參考資料建立多個角色個別指定不同的參數
在 CloudWatch Log 中的 Metrics Filter
可以針對 Log 建立篩選反向建立指標
最後針對指標去做監控和告警
參考資料: