本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 pgAudit 擴充功能
若要在 RDS for PostgreSQL 資料庫執行個體上設定 PgAudit 擴充功能,您必須先將 PgAudit 新增至 RDS for PostgreSQL 資料庫執行個體的自訂資料庫參數群組上的共用程式庫。如需建立自訂資料庫叢集參數群組的相關資訊,請參閱 Amazon RDS 的參數群組。接下來,您會安裝 pgAudit 擴充功能。最後,您會指定要稽核的資料庫和物件。本節中的程序展示做法。您可以使用 AWS Management Console 或 AWS CLI。
您必須具有做為 rds_superuser 角色的許可,才能執行所有這些任務。
以下步驟假設您的 RDS for PostgreSQL 資料庫執行個體與自訂資料庫參數群組相關聯。
設定 pgAudit 擴充功能
登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/rds/
的 Amazon RDS 主控台。 -
在導覽窗格中,選擇您的 RDS for PostgreSQL 資料庫執行個體。
-
針對您的 開啟 Configuration (組態) 索引標籤。RDS for PostgreSQL 資料庫執行個體。在執行個體詳細資訊之間,尋找 Parameter group (參數群組) 連結。
-
選擇連結以開啟與 相關聯的自訂參數。RDS for PostgreSQL 資料庫執行個體。
-
在 Parameters (參數) 搜尋欄位中,輸入
shared_pre以尋找shared_preload_libraries參數。 -
選擇 Edit parameters (編輯參數) 以存取屬性值。
-
在 Values (值) 欄位中,將
pgaudit新增至清單。使用逗號區隔值清單中的項目。
重新啟動 RDS for PostgreSQL 資料庫執行個體,以便您對
shared_preload_libraries參數所做的變更生效。當執行個體可用時,請驗證 pgAudit 是否已初始化。使用
psql連線至 RDS for PostgreSQL 資料庫執行個體,然後執行下列命令。SHOW shared_preload_libraries;shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)在初始化 pgAudit 之後,您現在可以建立擴充功能。您必須在初始化程式庫之後建立擴充功能,因為
pgaudit擴充功能會安裝事件觸發條件,以稽核資料定義語言 (DDL) 陳述式。CREATE EXTENSION pgaudit;關閉
psql工作階段。labdb=>\q登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/rds/
的 Amazon RDS 主控台。 在清單中尋找
pgaudit.log參數,並設定為適合您使用案例的適當值。例如,將pgaudit.log參數設定為write(如下圖所示) 會擷取日誌的插入、更新、刪除,以及其他一些類型的變更。
您也可以針對
pgaudit.log參數選擇下列其中一個值。none – 這是預設值。不會記錄任何資料庫變更。
all – 記錄一切 (read、write、function、role、ddl、misc)。
ddl – 記錄未包含在
ROLE類別中的所有資料定義語言 (DDL) 陳述式。function – 記錄函數呼叫和
DO區塊。misc – 記錄其他命令,例如
DISCARD、FETCH、CHECKPOINT、VACUUM和SET。read – 來源為關聯 (例如資料表) 或查詢時,記錄
SELECT和COPY。role – 記錄與角色和權限相關的陳述式,例如
GRANT、REVOKE、CREATE ROLE、ALTER ROLE和DROP ROLE。write – 目的地為關聯 (資料表) 時,記錄
INSERT、UPDATE、DELETE、TRUNCATE和COPY。
選擇儲存變更。
前往 https://console.aws.amazon.com/rds/
,開啟 Amazon RDS 主控台。 在資料庫清單中,選擇您的 RDS for PostgreSQL 資料庫執行個體。
設定 pgAudit
若要使用 AWS CLI 設定 pgAudit,請呼叫 modify-db-parameter-group 操作,來修改自訂參數群組中的稽核日誌參數,如下列程序所示。
使用下列 AWS CLI 命令,將
pgaudit新增至shared_preload_libraries參數。aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region-
使用下列 AWS CLI 命令重新啟動 RDS for PostgreSQL 資料庫執行個體,以便初始化 pgaudit 程式庫。
aws rds reboot-db-instance \ --db-instance-identifieryour-instance\ --regionaws-region 當執行個體可用時,您可以驗證
pgaudit是否已初始化。使用psql連線至 RDS for PostgreSQL 資料庫執行個體,然後執行下列命令。SHOW shared_preload_libraries;shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)在初始化 PgAudit 之後,您現在可以建立擴充功能。
CREATE EXTENSION pgaudit;關閉
psql工作階段,以便您可以使用 AWS CLI。labdb=>\q使用下列 AWS CLI 命令,來指定要由工作階段稽核記錄所記錄的陳述式類別。此範例會將
pgaudit.log參數設定為write,此參數會擷取日誌的插入、更新和刪除操作。aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \ --regionaws-region您也可以針對
pgaudit.log參數選擇下列其中一個值。none – 這是預設值。不會記錄任何資料庫變更。
all – 記錄一切 (read、write、function、role、ddl、misc)。
ddl – 記錄未包含在
ROLE類別中的所有資料定義語言 (DDL) 陳述式。function – 記錄函數呼叫和
DO區塊。misc – 記錄其他命令,例如
DISCARD、FETCH、CHECKPOINT、VACUUM和SET。read – 來源為關聯 (例如資料表) 或查詢時,記錄
SELECT和COPY。role – 記錄與角色和權限相關的陳述式,例如
GRANT、REVOKE、CREATE ROLE、ALTER ROLE和DROP ROLE。write – 目的地為關聯 (資料表) 時,記錄
INSERT、UPDATE、DELETE、TRUNCATE和COPY。
使用下列 AWS CLI 命令,重新啟動 RDS for PostgreSQL 資料庫執行個體。
aws rds reboot-db-instance \ --db-instance-identifieryour-instance\ --regionaws-region