

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

# 稽核線索
<a name="audit-trails"></a>

稽核追蹤 （或稽核日誌） 提供 中事件的安全相關時間記錄 AWS 帳戶。它包含 Amazon RDS 的事件，可提供一系列影響資料庫或雲端環境的活動的文件證據。在 Amazon RDS for MySQL 或 MariaDB 中，使用稽核線索涉及：
+ 監控資料庫執行個體稽核日誌
+ 在 中監控 Amazon RDS API 呼叫 AWS CloudTrail

對於 Amazon RDS 資料庫執行個體，稽核的目標通常包括：
+ 啟用下列項目的責任：
  + 在參數或安全組態上執行的修改
  + 在資料庫結構描述、資料表或資料列中執行的動作，或影響特定內容的動作
+ 入侵偵測和調查
+ 可疑活動偵測和調查
+ 偵測授權問題；例如，識別一般或特殊權限使用者濫用的存取權

資料庫稽核線索會嘗試回答下列典型問題：*誰檢視或修改了資料庫中的敏感資料？ 何時發生這種情況？ 特定使用者從何處存取資料？ 特殊權限使用者是否濫用其無限制的存取權？*

MySQL 和 MariaDB 都使用 MariaDB 稽核外掛程式來實作資料庫執行個體稽核追蹤功能。此外掛程式會記錄資料庫活動，例如使用者登入資料庫，以及對資料庫執行的查詢。資料庫活動的記錄會儲存在日誌檔中。若要存取稽核記錄，資料庫執行個體必須使用含有選項 `MARIADB_AUDIT_PLUGIN` 的自訂選項群組。如需詳細資訊，請參閱 Amazon RDS 文件中的 [MariaDB 稽核外掛程式對 MySQL 的支援](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html)。稽核日誌中的記錄會以特定格式儲存，如 外掛程式所定義。您可以在 [MariaDB Server 文件](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/)中找到有關稽核日誌格式的詳細資訊。

您 AWS 帳戶的 AWS 雲端 稽核線索是由 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)服務提供。CloudTrail 會擷取 Amazon RDS 的 API 呼叫當作事件。會記錄所有 Amazon RDS 動作。CloudTrail 提供由使用者、角色或其他 AWS 服務在 Amazon RDS 中執行的動作記錄。事件包括在 AWS 管理主控台中採取的動作 AWS CLI，以及 AWS SDKs和 APIs。

## 範例
<a name="example"></a>

在典型的稽核案例中，您可能需要結合 AWS CloudTrail 追蹤與資料庫稽核日誌和 Amazon RDS 事件監控。例如，您可能會遇到 Amazon RDS 資料庫執行個體的資料庫參數 （例如 `database-1`) 已修改的情況，而您的任務是識別修改的人員、變更的內容，以及變更發生的時間。

若要完成任務，請遵循下列步驟：

1. 列出資料庫執行個體發生的 Amazon RDS 事件，`database-1`並判斷類別中是否有`configuration change`具有訊息 的事件`Finished updating DB parameter group`。

   ```
   $ aws rds describe-events --source-identifier database-1 --source-type db-instance
   {
       "Events": [
           {
               "SourceIdentifier": "database-1",
               "SourceType": "db-instance",
               "Message": "Finished updating DB parameter group",
               "EventCategories": [
                   "configuration change"
               ],
               "Date": "2022-12-01T09:22:40.413000+00:00",
               "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1"
           }
       ]
   }
   ```

1. 識別資料庫執行個體正在使用的資料庫參數群組：

   ```
   $ aws rds describe-db-instances --db-instance-identifier database-1 --query 'DBInstances[*].[DBInstanceIdentifier,Engine,DBParameterGroups]'
   [
       [
           "database-1",
           "mariadb",
           [
               {
                   "DBParameterGroupName": "mariadb10-6-test",
                   "ParameterApplyStatus": "pending-reboot"
               }
           ]
       ]
   ]
   ```

1. [使用 AWS CLI 在部署的 區域中、步驟 1 中探索的 Amazon RDS 事件前後的期間內，以及 所在的 中搜尋 CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html)事件`EventName=ModifyDBParameterGroup`。 `database-1`

   ```
   $ aws cloudtrail --region eu-west-3 lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ModifyDBParameterGroup --start-time "2022-12-01, 09:00 AM" --end-time "2022-12-01, 09:30 AM"    
   
   {
       "eventVersion": "1.08",
       "userIdentity": {
           "accountId": "111122223333",
           "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
           "sessionContext": {
               "sessionIssuer": {
                   "type": "Role",
                   "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                   "arn": "arn:aws:iam::111122223333:role/Role1",
                   "accountId": "111122223333",
                   "userName": "User1"
               }
           }
       },
       "eventTime": "2022-12-01T09:18:19Z",
       "eventSource": "rds.amazonaws.com",
       "eventName": "ModifyDBParameterGroup",
       "awsRegion": "eu-west-3",
       "sourceIPAddress": "AWS Internal",
       "userAgent": "AWS Internal",
       "requestParameters": {
           "parameters": [
               {
                   "isModifiable": false,
                   "applyMethod": "pending-reboot",
                   "parameterName": "innodb_log_buffer_size",
                   "parameterValue": "8388612"
               },
               {
                   "isModifiable": false,
                   "applyMethod": "pending-reboot",
                   "parameterName": "innodb_write_io_threads",
                   "parameterValue": "8"
               }
           ],
           "dBParameterGroupName": "mariadb10-6-test"
       },
       "responseElements": {
           "dBParameterGroupName": "mariadb10-6-test"
       },
       "requestID": "fdf19353-de72-4d3d-bf29-751f375b6378",
       "eventID": "0bba7484-0e46-4e71-93a8-bd01ca8386fe",
       "eventType": "AwsApiCall",
       "managementEvent": true,
       "recipientAccountId": "111122223333",
       "eventCategory": "Management",
       "sessionCredentialFromConsole": "true"
   }
   ```

CloudTrail 事件顯示，`User1`帳戶 111122223333 `Role1`中 AWS 具有 角色的 已修改資料庫參數群組 `mariadb10-6-test`，該群組由 `database-1`上的資料庫執行個體使用`2022-12-01 at 09:18:19 h`。已修改兩個參數，並設定為下列值：
+ `innodb_log_buffer_size = 8388612`
+ `innodb_write_io_threads = 8`

## 其他 CloudTrail 和 CloudWatch Logs 功能
<a name="additional-features"></a>

您可以在 CloudTrail 主控台上檢視**事件歷史記錄**，對過去 90 天內的操作和安全性事件進行疑難排解。若要延長保留期並利用其他查詢功能，您可以使用 [AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)。使用 AWS CloudTrail Lake，您可以在事件資料存放區中保留事件資料長達七年。此外，此服務支援複雜的 SQL 查詢，可提供比事件**歷史記錄**中簡單鍵值查詢提供的檢視更深入且更可自訂的事件檢視。

若要監控稽核線索、設定警示，並在特定活動發生時取得通知，您需要[設定 CloudTrail 將其線索記錄傳送至 CloudWatch Logs](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html)。將追蹤記錄儲存為 CloudWatch Logs 之後，您可以定義指標篩選條件來評估日誌事件以符合詞彙、片語或值，並將指標指派給指標篩選條件。此外，您可以建立 CloudWatch 警示，這些警示會根據您指定的閾值和期間產生。例如，您可以設定警示，將通知傳送給負責的團隊，讓他們可以採取適當的動作。您也可以設定 CloudWatch 自動執行動作，以回應警示。