記錄管理事件 - AWS CloudTrail

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

記錄管理事件

依預設,追蹤和事件資料存放區會記錄管理事件,但不會包含資料或 Insights 事件。

資料或 Insights 事件需支付額外費用。如需詳細資訊,請參閱 AWS CloudTrail 定價

管理事件

管理事件可讓您了解對 AWS 帳戶中的資源執行的管理作業。這些也稱為控制平面操作。範例管理事件包含:

  • 設定安全性 (例如IAMAttachRolePolicyAPI作業)

  • 註冊設備(例如,Amazon EC2 CreateDefaultVpc API 操作)

  • 設定路由資料的規則 (例如 Amazon EC2 CreateSubnet API 作業)

  • 設定記錄 (例如, AWS CloudTrail CreateTrailAPI作業)

管理事件也可能包含您帳戶中發生的非API事件。例如,當使用者登入您的帳戶時,會 CloudTrail 記錄ConsoleLogin事件。如需詳細資訊,請參閱 擷取的非API事件 CloudTrail

依預設,追蹤和事件資料存放區被設定用來記錄管理事件。

注意

CloudTrail 事件歷史記錄功能僅支援管理事件。您無法從事件歷史記錄中排除 AWS KMS 或 Amazon RDS Data API 事件;套用至追蹤或事件資料存放區的設定不適用於事件歷史記錄。如需詳細資訊,請參閱 使用 CloudTrail 事件歷史記錄

讀取和寫入事件

當您設定您的追蹤或事件資料存放區以記錄管理事件時,您可以指定要記錄唯讀事件、唯寫事件,還是都記錄。

  • 讀取

    唯讀事件包括讀取資源但不進行變更的API作業。例如,只讀事件包括 Amazon EC2 DescribeSecurityGroupsDescribeSubnetsAPI操作。這些操作只會傳回 Amazon EC2 資源的相關資訊,而不會變更您的組態。

  • 寫入

    唯寫事件包括修改 (或可能修改) 資源的API作業。例如,Amazon EC2 RunInstancesTerminateInstancesAPI操作會修改您的實例。

範例:記錄不同追蹤的讀和寫事件

以下範例說明如何設定追蹤,將帳戶的日誌活動分割成不同的 S3 儲存貯體:一個儲存貯體接收唯讀事件,第二個儲存貯體收到唯寫事件。

  1. 您要建立一個線索,然後選擇名為 DOC-EXAMPLE-BUCKET1 的 S3 儲存貯體接收日誌檔案。接著,您要更新線索,指定您要管理事件。

  2. 您要建立第二個線索,然後選擇名為 DOC-EXAMPLE-BUCKET2 的 S3 儲存貯體接收日誌檔案。接著,您要更新線索,指定您要管理事件。

  3. Amazon EC2 DescribeInstancesTerminateInstancesAPI操作發生在您的帳戶.

  4. DescribeInstancesAPI作業為唯讀事件,且符合第一個追蹤的設定。追蹤記錄並將事件傳送給DOC-EXAMPLE-BUCKET1

  5. TerminateInstancesAPI作業是唯寫事件,且符合第二個追蹤的設定。追蹤記錄並將事件傳送給DOC-EXAMPLE-BUCKET2

記錄管理事件 AWS Management Console

  1. 登入 AWS Management Console 並開啟 CloudTrail 主控台,位於https://console.aws.amazon.com/cloudtrail/

  2. 若要更新追蹤,請開啟 CloudTrail 主控台的「追」頁面,然後選擇追蹤名稱。

    若要更新事件資料存放區,請開啟 CloudTrail 主控台的「事件資料存放區」頁面,然後選擇事件資料存放區名稱。

  3. 針對管理活動,選擇 Edit (編輯)。

    • 選擇您是否希望追蹤或事件資料存放區記錄讀取事件、寫入事件,或兩者。

    • 選擇 [排除 AWS KMS 事件] 以將 AWS Key Management Service (AWS KMS) 追蹤或事件資料存放區中的事件篩選出來。預設設定是包含所有 AWS KMS 事件。

      只有在追蹤或 AWS KMS 事件資料存放區中記錄管理事件時,才能使用記錄或排除事件的選項。如果您選擇不記錄管理事件,則不會記錄 AWS KMS 事件,而且您無法變更 AWS KMS 事件記錄設定。

      AWS KMS 動作,例如EncryptDecrypt、,GenerateDataKey通常會產生大量 (超過 99%) 的事件。這些動作現在會記錄為 Read (讀取) 事件。低容量的相關 AWS KMS 動作,例如DisableDelete、和 ScheduleKey (通常佔 AWS KMS 事件磁碟區的 0.5% 以下) 會記錄為「寫入」事件。

      若要排除、和等大量事件 Encrypt DecryptGenerateDataKey,但仍記錄相關事件 (例如DisableDeleteScheduleKey),請選擇記錄 Write 管理事件,然後清除 [排除 AWS KMS 事件] 的核取方塊。

    • 選擇排除 Amazon RDS 資料API事件,從追蹤或事件資料API存放區中篩選 Amazon 關聯式資料庫服務資料事件。預設設定是包含所有 Amazon RDS 資料API事件。如需有關 Amazon 資RDS料API事件的詳細資訊,請參閱 Amazon Aurora RDS 使用者指南 AWS CloudTrail中的使用記錄資料API呼叫

  4. 完成時,請選擇儲存變更

使用 AWS CLI記錄管理事件

您可以使用 AWS CLI設定您的追蹤或事件資料存放區,以記錄管理事件。

範例:記錄追蹤的管理事件

若要檢視您的線索是否記錄管理事件,請執行 get-event-selectors 命令。

aws cloudtrail get-event-selectors --trail-name TrailName

以下範例會傳回預設的線索設定。根據預設,線索會記錄所有管理事件、記錄來自所有事件來源的事件,但不記錄資料事件。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ] }

您可以使用基本或進階事件選取器來記錄管理事件。您不能同時將事件選取器和進階事件選取器套用於追蹤。如果您將進階事件選取器套用至追蹤,則會覆寫任何現有的基本事件選取器。下列各節提供如何使用進階事件選取器和基本事件選取器來記錄管理事件的範例。

範例:使用進階事件選取器記錄追蹤的管理事件

下列範例會針對名為的追蹤建立進階事件選取器 TrailName 包含唯讀和唯寫管理事件 (藉由省略readOnly選取器),但要排除 AWS Key Management Service (AWS KMS) 事件。由於 AWS KMS 事件會被視為管理事件,而且可能會有大量事件,因此如果您有多個追蹤可擷取管理事件的追蹤,它們可能會對 CloudTrail 帳單產生重大影響。

如果您選擇不記錄管理事件,則不會記錄 AWS KMS 事件,而且您無法變更 AWS KMS 事件記錄設定。

若要再次開始將 AWS KMS 事件記錄到追蹤,請移除eventSource選取器,然後再次執行命令。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["kms.amazonaws.com"] } ] } ]'

範例傳回針對追蹤設定的進階事件選取器。

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "kms.amazonaws.com" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

若要再次開始記錄排除的事件至追蹤,請從移除 eventSource 選取器,如下列命令所示。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

下一個範例會為名為的追蹤建立進階事件選取器 TrailName 包含唯讀和唯寫管理事件 (省略readOnly選取器),但要排除 Amazon RDS 資料API管理事件。若要排除 Amazon RDS 資料API管理API事件,請在eventSource欄位的字串值中指定 Amazon RDS 資料事件來源:rdsdata.amazonaws.com

如果您選擇不記錄管理事件,則不會記錄 Amazon RDS 資料API管理事件,而且您無法變更 Amazon RDS Data API 事件記錄設定。

若要重新開始將 Amazon RDS 資料API管理事件記錄到追蹤,請移除eventSource選取器,然後再次執行命令。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except Amazon RDS Data API management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["rdsdata.amazonaws.com"] } ] } ]'

範例傳回針對追蹤設定的進階事件選取器。

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except Amazon RDS Data API management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "rdsdata.amazonaws.com" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

若要再次開始記錄排除的事件至追蹤,請從移除 eventSource 選取器,如下列命令所示。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

範例:使用基本事件選取器記錄追蹤的管理事件

若要設定您的線索記錄管理事件,請執行 put-event-selectors 命令。以下範例說明如何設定您的線索以包含兩個 S3 物件的所有管理事件。您可以為追蹤指定 1 到 5 個事件選取器。您可以為追蹤指定 1 到 250 項資料資源。

注意

無論事件選取器有多少個,S3 資料資源的上限數為 250。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/prefix2"] }] }]'

以下範例會傳回為線索設定的事件選取器。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [ { "Type": "AWS::S3::Object", "Values": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/prefix2", ] } ], "ExcludeManagementEventSources": [] } ] }

若要從追蹤記錄中排除 AWS Key Management Service (AWS KMS) 事件,請執行put-event-selectors命令並新增值為ExcludeManagementEventSources的屬性kms.amazonaws.com。下列範例會為名為的追蹤建立事件選取器 TrailName 以包含唯讀和唯寫管理事件,但排除 AWS KMS 事件。由於 AWS KMS 可以產生大量的事件,因此此範例中的使用者可能想要限制事件以管理追蹤的成本。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["kms.amazonaws.com"],"IncludeManagementEvents": true}]'

此範例會傳回為追蹤設定的事件選取器。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [], "ExcludeManagementEventSources": [ "kms.amazonaws.com" ] } ] }

若要從追蹤的日誌中排除 Amazon RDS 資料API管理事件,請執行put-event-selectors命令並新增值為ExcludeManagementEventSources的屬性rdsdata.amazonaws.com。下列範例會為名為的追蹤建立事件選取器 TrailName 包括唯讀和唯寫管理事件,但不包括 Amazon RDS 資料API管理事件。由於 Amazon RDS Data API 可以產生大量的管理事件,因此此範例中的使用者可能想要限制事件以管理追蹤的成本。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [], "ExcludeManagementEventSources": [ "rdsdata.amazonaws.com" ] } ] }

若要再次開始記錄 AWS KMS 或 Amazon RDS Data API 管理事件至追蹤,請傳遞一個空字串作為的值ExcludeManagementEventSources,如下列命令所示。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true}]'

若要將相關 AWS KMS 事件記錄到追蹤 (例如DisableScheduleKeyDelete和),但排除大量 AWS KMS 事件 (例如EncryptDecryptGenerateDataKey、和) 記錄唯寫管理事件,並保留記錄 AWS KMS 事件的預設設定,如下列範例所示。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "WriteOnly","ExcludeManagementEventSources": [],"IncludeManagementEvents": true}]'

範例:記錄事件資料存放區的管理事件

若要檢視您的事件資料存放區是否包括管理事件,請執行 get-event-data-store 命令。

aws cloudtrail get-event-data-store --event-data-store arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

以下是回應範例。建立時間和上次更新時間的格式為 timestamp

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "myManagementEvents", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "FIXED_RETENTION_PRICING", "RetentionPeriod": 2557, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-02-04T15:56:27.418000+00:00", "UpdatedTimestamp": "2023-02-04T15:56:27.544000+00:00" }

若要建立包括全部管理事件的事件資料存放區,您可以執行 create-event-data-store 命令。您不需要指定任何進階事件選取器以包括全部管理事件。

aws cloudtrail create-event-data-store --name my-event-data-store --retention-period 90\

以下是回應範例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-13T16:41:57.224000+00:00", "UpdatedTimestamp": "2023-11-13T16:41:57.357000+00:00" }

若要建立排除 AWS Key Management Service (AWS KMS) 事件的事件資料倉庫,請執行指create-event-data-store令並指定eventSource不相等的命令kms.amazonaws.com。下列範例會建立事件資料存放區,其中包含唯讀和唯寫管理事件,但排除 AWS KMS 事件。

aws cloudtrail create-event-data-store --name event-data-store-name --retention-period 90 --advanced-event-selectors '[ { "Name": "Management events selector", "FieldSelectors": [ {"Field": "eventCategory","Equals": ["Management"]}, {"Field": "eventSource","NotEquals": ["kms.amazonaws.com"]} ] } ]'

以下是回應範例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "event-data-store-name", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "kms.amazonaws.com" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-13T17:02:02.067000+00:00", "UpdatedTimestamp": "2023-11-13T17:02:02.241000+00:00" }

若要建立排除 Amazon Data API 管理事件的事件RDS資料存放區,請執行create-event-data-store命令並指定eventSource不相等的命令rdsdata.amazonaws.com。下列範例會建立事件資料存放區,其中包含唯讀和唯寫管理事件,但不包括 Amazon RDS Data API 事件。

aws cloudtrail create-event-data-store --name event-data-store-name --retention-period 90 --advanced-event-selectors '[ { "Name": "Management events selector", "FieldSelectors": [ {"Field": "eventCategory","Equals": ["Management"]}, {"Field": "eventSource","NotEquals": ["rdsdata.amazonaws.com"]} ] } ]'

以下是回應範例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "rdsdata.amazonaws.com" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-13T17:02:02.067000+00:00", "UpdatedTimestamp": "2023-11-13T17:02:02.241000+00:00" }

使用 AWS SDKs 記錄管理事件

使用此GetEventSelectors作業來查看追蹤是否正在記錄追蹤的管理事件。您可以設定追蹤,以便透過PutEventSelectors作業記錄管理事件。如需詳細資訊,請AWS CloudTrail API參閱參考

執行GetEventDataStore作業以查看您的事件資料存放區是否包含管理事件。您可以透過執行CreateEventDataStoreUpdateEventDataStore作業,將事件資料存放區設定為包含管理事件。如需詳細資訊,請參閱〈〉建立、更新和管理事件資料存放區 AWS CLI和〈AWS CloudTrail API參考〉。