本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
稽核資料庫物件
在您的 Aurora PostgreSQL 資料庫叢集上設定 pgAudit,並針對您的要求進行設定後,會在 PostgreSQL 日誌中擷取更詳細的資訊。例如,雖然預設 PostgreSQL 記錄組態會識別在資料庫資料表中進行變更的日期和時間,但使用 pgAudit 擴充功能時,日誌項目可以包括結構描述、進行變更的使用者,以及其他詳細資訊,視擴充功能參數的設定方式而定。您可以將稽核設定為以下列方式追蹤變更。
對於每個工作階段,依使用者。對於工作階段層級,您可以擷取完整的命令文字。
對於每個物件,依使用者和資料庫。
在系統上建立 rds_pgaudit 角色,然後將此角色新增至自訂參數群組中的 pgaudit.role 參數時,便會啟用物件稽核功能。根據預設,未設定 pgaudit.role 參數,且唯一允許的值為 rds_pgaudit。下列步驟假設 pgaudit 已初始化,且您已遵循設定 pgAudit 擴充功能中的程序建立 pgaudit 擴充功能。
如此範例所示,「LOG: AUDIT: SESSION」一行提供資料表及其結構描述的相關資訊,以及其他詳細資訊。
設定物件稽核
使用
psql連線至 Aurora PostgreSQL 資料庫叢集的寫入器執行個體。。psql --host=your-instance-name.aws-region.rds.amazonaws.com --port=5432 --username=postgrespostgres --password --dbname=labdb-
使用下列命令建立名為
rds_pgaudit的資料庫角色。labdb=>CREATE ROLE rds_pgaudit;CREATE ROLElabdb=> 關閉
psql工作階段。labdb=>\q在接下來的幾個步驟中,使用 AWS CLI 修改自訂參數群組中的稽核日誌參數。
-
使用下列 AWS CLI 命令,將
pgaudit.role參數設定為rds_pgaudit。根據預設,此參數是空的,且rds_pgaudit是唯一允許的值。aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region -
使用下列 AWS CLI 命令,重新啟動 Aurora PostgreSQL 資料庫叢集的寫入器執行個體,以便您對參數所做的變更生效。
aws rds reboot-db-instance \ --db-instance-identifierwriter-instance\ --regionaws-region 執行下列命令來確認
pgaudit.role已設定為rds_pgaudit。SHOW pgaudit.role;pgaudit.role ------------------ rds_pgaudit
如要測試 pgAudit 記錄功能,您可以執行幾個要稽核的範例命令。例如,您可以執行下列命令。
CREATE TABLE t1 (id int); GRANT SELECT ON t1 TO rds_pgaudit; SELECT * FROM t1;id ---- (0 rows)
資料庫記錄應包含類似以下的項目。
...
2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT:
OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1;
...如需有關檢視日誌的資訊,請參閱 監控 Amazon Aurora 日誌檔案。
若要進一步了解 pgAudit 擴充功能,請參閱 GitHub 上的 pgAudit