使用進階稽核與 Amazon Aurora MySQL 資料庫叢集搭配 - Amazon Aurora

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

使用進階稽核與 Amazon Aurora MySQL 資料庫叢集搭配

您可以使用 Amazon Aurora MySQL 的高效能「進階稽核」功能來稽核資料庫活動。若要這麼做,您需要設定幾個資料庫叢集參數以便收集稽核日誌。進階稽核啟用時,您可將它用來記錄任意組合的支援事件。

您可以檢視或下載稽核日誌,一次檢閱一個資料庫執行個體的稽核資訊。若要執行此操作,您可以使用監控 Amazon Aurora 日誌檔案中說明的程序。

提示

如果 Aurora 資料庫叢集包含多個資料庫執行個體,您可能會發現檢查叢集中所有執行個體的稽核日誌更為方便。若要這麼做,您可以使用 CloudWatch 記錄檔。您可以在叢集層級開啟設定,將 Aurora MySQL 稽核記錄資料發佈到中的記錄群組 CloudWatch。然後,您可以通過 CloudWatch 界面查看,過濾和搜索審計日誌。如需詳細資訊,請參閱 將 Amazon Aurora MySQL 日誌發佈到 Amazon CloudWatch 日誌

啟用進階稽核

使用本節所述的參數來啟用和設定資料庫叢集的進階稽核。

使用 server_audit_logging 參數來啟用或停用進階日誌。

使用 server_audit_events 參數來指定要記錄的事件。

使用 server_audit_incl_usersserver_audit_excl_users 參數來指定要受到稽核的使用者。預設情況下,所有使用者會受到稽核。如需當一或兩個參數保留空白,或在兩者中指定了相同的使用者名稱時,這些參數如何運作的詳細資訊,請參閱 server_audit_incl_usersserver_audit_excl_users

在資料庫叢集使用的參數群組中設定這些參數,以設定進階稽核。您可以依照修改資料庫參數群組中的參數所示的程序,使用 AWS Management Console修改資料庫叢集參數。您可以使用修改-db-叢集參數群組 AWS CLI 命令或修改資料庫群組 Amazon RDS API 操作,以程式設計方式修改資料庫叢ClusterParameter參數。

如果參數群組已與您的叢集建立關聯,不需要重新啟動資料庫叢集即可修改這些參數。首次為參數群組與叢集建立關聯時,需要重新啟動叢集。

server_audit_logging

啟用或停用進階稽核。此參數預設為 OFF;設為 ON 即可啟用進階稽核。

日誌中不會顯示任何稽核資料,除非您使用 server_audit_events 參數定義了一或多個要稽核的事件類型。

若要確認已為資料庫執行個體記錄稽核資料,請檢查該執行個體的部分日誌檔案的名稱格式是否為 audit/audit.log.other_identifying_information。若要查看日誌檔案的名稱,請依照檢視並列出資料庫日誌檔案中的程序操作。

server_audit_events

包含要記錄之事件的逗號分隔清單。事件必須以全部大寫指定,且清單元素之間不能有空格,例如:CONNECT,QUERY_DDL。此參數預設為空字串。

您可以記錄下列事件的任意組合:

  • CONNECT – 記錄成功與失敗連線,還有中斷連線。此事件包含使用者資訊。

  • QUERY – 以純文字記錄所有查詢,包括因為語法或許可錯誤而失敗的查詢。

    提示

    開啟此事件類型後,稽核資料中會包括 Aurora 自動執行的持續監控的相關資訊和運作狀態檢查資訊。如果您只對特定類型的操作感興趣,可以使用更具體的事件類型。您也可以使用 CloudWatch介面在記錄檔中搜尋與特定資料庫、表格或使用者相關的事件。

  • QUERY_DCL – 類似於 QUERY 事件,但只傳回資料控制語言 (DCL) 查詢 (GRANT、REVOKE 等)。

  • QUERY_DDL – 類似於 QUERY 事件,但只傳回資料定義語言 (DDL) 查詢 (CREATE、ALTER 等)。

  • QUERY_DML – 類似於 QUERY 事件,但只傳回資料操作語言 (DML) 查詢 (INSERT、UPDATE 和 SELECT 等)。

  • TABLE – 記錄因為執行查詢而受影響的資料表。

注意

Aurora 中沒有從稽核記錄中排除特定查詢的篩選器。若要排除SELECT查詢,您必須排除所有 DML 陳述式。

如果特定使用者在稽核記錄中報告這些內部SELECT查詢,您可以透過設定 server_audit_excl_ users 資料庫叢集參數來排除該使用者。不過,如果該使用者也用於其他活動且無法省略,則沒有其他選項可排除SELECT查詢。

server_audit_incl_users

包含其活動受到記錄之使用者的使用者名稱之逗號分隔清單。清單元素之間不能有空格,例如:user_3,user_4。此參數預設為空字串。長度上限為 1024 個字元。指定的使用者名稱必須符合 User 資料表的 mysql.user 欄的對應值。如需使用者名稱的詳細資訊,請參閱 MySQL 文件中的帳戶使用者名稱和密碼

如果 server_audit_incl_usersserver_audit_excl_users 都空白 (預設值),則所有使用者都會受到稽核。

如果您將使用者新增至 server_audit_incl_users,並將 server_audit_excl_users 保留空白,則只有那些使用者會受到稽核。

如果您使用者新增至 server_audit_excl_users,並將 server_audit_incl_users 保留空白,則除了 server_audit_excl_users 中列出的使用者以外,其餘所有使用者都會受到稽核。

如果將相同的使用者同時新增至 server_audit_excl_usersserver_audit_incl_users,則這些使用者會受到稽核。當同一個使用者在兩個設定中都有列出時,server_audit_incl_users 的優先順序較高。

連接和中斷連接事件不受此變數所影響;只要指定就一定會加以記錄。即使 server_audit_excl_users 參數中有指定某個使用者,還是會記錄該使用者,因為 server_audit_incl_users 的優先順序較高。

server_audit_excl_users

包含其活動不受記錄之使用者的使用者名稱之逗號分隔清單。清單元素之間不能有空格,例如:rdsadmin,user_1,user_2。此參數預設為空字串。長度上限為 1024 個字元。指定的使用者名稱必須符合 User 資料表的 mysql.user 欄的對應值。如需使用者名稱的詳細資訊,請參閱 MySQL 文件中的帳戶使用者名稱和密碼

如果 server_audit_incl_usersserver_audit_excl_users 都空白 (預設值),則所有使用者都會受到稽核。

如果您將使用者新增至 server_audit_excl_users,並將 server_audit_incl_users 保留空白,則只有 server_audit_excl_users 中列出的使用者不會受到稽核,其他所有使用者都會受到稽核。

如果將相同的使用者同時新增至 server_audit_excl_usersserver_audit_incl_users,則這些使用者會受到稽核。當同一個使用者在兩個設定中都有列出時,server_audit_incl_users 的優先順序較高。

連接和中斷連接事件不受此變數所影響;只要指定就一定會加以記錄。如果 server_audit_incl_users 參數中有指定某個使用者,則也會記錄該使用者,因為此設定的優先順序高於 server_audit_excl_users

檢視稽核日誌

您可以使用主控台來檢視和下載稽核日誌。在 Database (資料庫) 頁面上,選擇資料庫執行個體以顯示其詳細資訊,然後捲動至 Logs (日誌) 區段。進階稽核功能產生的稽核日誌名稱格式為 audit/audit.log.other_identifying_information

若要下載日誌檔案,請在 Logs (日誌) 區段中選取該檔案,然後選擇 Download (下載)

您也可以使用 describe-db-log-files AWS CLI 命令來取得日誌檔案清單。您可以使用 download-db-log-file-portion AWS CLI 命令來下載日誌檔案的內容。如需更多詳細資訊,請參閱 檢視並列出資料庫日誌檔案下載資料庫日誌檔案

稽核日誌詳細資訊

日誌檔案以 UTF-8 格式的逗號分隔變數 (CSV) 檔案表示。查詢也會包在單引號 (') 中。

稽核記錄會分別儲存在每個執行個體的本機儲存空間上。每個 Aurora 執行個體一次將寫入分發到四個日誌檔案。日誌的大小上限為 100 MB。達到此無法設定的限制時,Aurora 會旋轉檔案並產生四個新檔案。

提示

日誌檔案項目不會循序排列。若要排序項目,請使用時間戳記值。若要查看最新事件,您可能必須檢閱所有日誌檔案。若要更靈活地排序和搜尋記錄資料,請開啟將稽核記錄上傳至的設定, CloudWatch 並使用 CloudWatch 介面檢視它們。

若要查看包含更多欄位類型和以 JSON 格式輸出的稽核資料,您也可以使用資料庫活動串流功能。如需詳細資訊,請參閱 使用資料庫活動串流來監控 Amazon Aurora

稽核日誌檔案的每一列依指定順序包含以下逗號分隔的資訊:

欄位 描述

timestamp

所記錄事件的 Unix 時間戳記 (精確度達到微秒)。

serverhost

為其記錄事件之執行個體的名稱。

username

使用者的連線使用者名稱。

host

使用者連線來源的主機。

connectionid

所記錄操作的連線 ID 號碼。

queryid

查詢 ID 號碼,可用來尋找關聯式資料表事件和相關的查詢。若為 TABLE 事件,則會新增多行。

operation

記錄的動作類型。可能值為:CONNECTQUERYREADWRITECREATEALTERRENAMEDROP

database

USE 命令設定的作用中資料庫。

物件

若為 QUERY 事件,此值指出資料庫所執行的查詢。若為 TABLE 事件,則指出資料表名稱。

retcode

所記錄操作的傳回碼。