設定 pgAudit 擴充功能 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 pgAudit 擴充功能

若要在 Postgre 資料庫執行個體 Aurora Postgre SQL 資料SQL庫叢集上設定 pgAudit 擴充功能,RDS請 資料庫執行個體新增 pgAudit 至自訂資料庫參數群組上的共用程式庫。RDS 如需建立自訂資料庫叢集參數群組的相關資訊,請參閱 的參數組 RDS接下來,安裝 pgAudit 擴展程序。最後,您會指定要稽核的資料庫和物件。本節中的程序展示做法。您可以使用 AWS Management Console 或 AWS CLI.

您必須具有做為 rds_superuser 角色的許可,才能執行所有這些任務。

以下步驟假設 RDS與自訂資料庫參數群組相關聯。

若要設定 pgAudit 擴充功能
  1. 登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在瀏覽窗格中,RDS為 Postgre 資料庫執行個體選擇 。SQL

  3. 開啟 的組態索引標籤。RDS對於後置SQL數據庫實例。在執行個體詳細資訊之間,尋找 Parameter group (參數群組) 連結。

  4. 選擇連結以開啟與您的 相關聯的自訂參數。RDS對於後置SQL數據庫實例。

  5. Parameters (參數) 搜尋欄位中,輸入 shared_pre 以尋找 shared_preload_libraries 參數。

  6. 選擇 Edit parameters (編輯參數) 以存取屬性值。

  7. Values (值) 欄位中,將 pgaudit 新增至清單。使用逗號區隔值清單中的項目。

    pgAudit 添加的shared_preload_libaries參數的圖像。
  8. 重新啟動RDS適用於 Postgre 入器執行個體,以便您對shared_preload_libraries參數的變更生效。

  9. 當執行個體可用時,請確認是否pgAudit已初始化。用RDS於連線psql至 Postgre SQL 資料庫執行個體,然後執行下列命令。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
  10. pgAudit 初始化後,您現在可以創建擴展名。您必須在初始化程式庫之後建立擴充功能,因為pgaudit擴充功能會安裝稽核資料定義語言 (DDL) 陳述式的事件觸發器。

    CREATE EXTENSION pgaudit;
  11. 關閉 psql 工作階段。

    labdb=> \q
  12. 登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  13. 在清單中尋找 pgaudit.log 參數,並設定為適合您使用案例的適當值。例如,將 pgaudit.log 參數設定為 write (如下圖所示) 會擷取日誌的插入、更新、刪除,以及其他一些類型的變更。

    pgaudit.log 參數與設定的影像。

    您也可以針對 pgaudit.log 參數選擇下列其中一個值。

    • none – 這是預設值。不會記錄任何資料庫變更。

    • all – 記錄一切 (read、write、function、role、ddl、misc)。

    • ddl — 記錄ROLE類別中未包含的所有資料定義語言 (DDL) 陳述式。

    • function – 記錄函數呼叫和 DO 區塊。

    • misc – 記錄其他命令,例如 DISCARDFETCHCHECKPOINTVACUUMSET

    • read – 來源為關聯 (例如資料表) 或查詢時,記錄 SELECTCOPY

    • role – 記錄與角色和權限相關的陳述式,例如 GRANTREVOKECREATE ROLEALTER ROLEDROP ROLE

    • write – 目的地為關聯 (資料表) 時,記錄 INSERTUPDATEDELETETRUNCATECOPY

  14. 選擇 Save changes (儲存變更)。

  15. 在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  16. 從資料庫清單中選擇適用於 入器執行個體

若要設定 pgAudit

若要 pgAudit 使用 AWS CLI,您可以呼叫modify-db-parameter-group作業來修改自訂參數群組中的稽核記錄參數,如下列程序所示。

  1. 使用以下內容 AWS CLI 要新增pgauditshared_preload_libraries參數的指令。

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --region aws-region
  2. 使用以下內容 AWS CLI 命令重新啟動適用於 Postgre 資料庫入器執行個體,以便初始化 pgaudit 程式庫。SQL

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. 當執行個體可用時,您可以驗證 pgaudit 是否已初始化。用RDS於連線psql至 Postgre SQL 資料庫執行個體,然後執行下列命令。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)

    pgAudit 初始化後,您現在可以創建擴展名。

    CREATE EXTENSION pgaudit;
  4. 關閉工psql作階段,以便您可以使用 AWS CLI.

    labdb=> \q
  5. 使用以下內容 AWS CLI 命令來指定要通過會話審核日誌記錄記錄的語句類。此範例會將 pgaudit.log 參數設定為 write,此參數會擷取日誌的插入、更新和刪除操作。

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \ --region aws-region

    您也可以針對 pgaudit.log 參數選擇下列其中一個值。

    • none – 這是預設值。不會記錄任何資料庫變更。

    • all – 記錄一切 (read、write、function、role、ddl、misc)。

    • ddl — 記錄ROLE類別中未包含的所有資料定義語言 (DDL) 陳述式。

    • function – 記錄函數呼叫和 DO 區塊。

    • misc – 記錄其他命令,例如 DISCARDFETCHCHECKPOINTVACUUMSET

    • read – 來源為關聯 (例如資料表) 或查詢時,記錄 SELECTCOPY

    • role – 記錄與角色和權限相關的陳述式,例如 GRANTREVOKECREATE ROLEALTER ROLEDROP ROLE

    • write – 目的地為關聯 (資料表) 時,記錄 INSERTUPDATEDELETETRUNCATECOPY

    使用以下方法重新啟動RDS適用於 Postgre SQL 資料庫執行個體的 Aurora Postgre SQL 資料庫 AWS CLI 指令。

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region