本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用進階稽核與 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_users
和 server_audit_excl_users
參數來指定要受到稽核的使用者。預設情況下,所有使用者會受到稽核。如需當一或兩個參數保留空白,或在兩者中指定了相同的使用者名稱時,這些參數如何運作的詳細資訊,請參閱 server_audit_incl_users和 server_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_users
和 server_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_users
和 server_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_users
和 server_audit_excl_users
都空白 (預設值),則所有使用者都會受到稽核。
如果您將使用者新增至 server_audit_excl_users
,並將 server_audit_incl_users
保留空白,則只有 server_audit_excl_users
中列出的使用者不會受到稽核,其他所有使用者都會受到稽核。
如果將相同的使用者同時新增至 server_audit_excl_users
和 server_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 號碼,可用來尋找關聯式資料表事件和相關的查詢。若為 |
operation |
記錄的動作類型。可能值為: |
database |
由 |
物件 |
若為 |
retcode |
所記錄操作的傳回碼。 |