View a markdown version of this page

使用 記錄 Amazon EventBridge API 呼叫 AWS CloudTrail - Amazon EventBridge

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

使用 記錄 Amazon EventBridge API 呼叫 AWS CloudTrail

Amazon EventBridge 已與 整合AWS CloudTrail,此服務提供使用者、角色或 所採取動作的記錄 AWS 服務。CloudTrail 會將 的所有 API 呼叫擷取 EventBridge 為事件。擷取的呼叫包括來自 EventBridge 主控台的呼叫,以及對 EventBridge API 操作的程式碼呼叫。您可以使用 CloudTrail 所收集的資訊來判斷提出的請求 EventBridge、提出請求的 IP 地址、提出請求的時間,以及其他詳細資訊。

每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:

  • 該請求是使用根使用者還是使用者憑證提出。

  • 請求是否代表 IAM Identity Center 使用者提出。

  • 提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。

  • 該請求是否由另一項 AWS 服務服務提出。

當您建立帳戶 AWS 帳戶 時CloudTrail 會在 中處於作用中狀態,而且您會自動存取 CloudTrail 事件歷史記錄。CloudTrail 事件歷史記錄為 AWS 區域中過去 90 天記錄的管理事件,提供可檢視、可搜尋、可下載且不可變的記錄。如需詳細資訊,請參閱「AWS CloudTrail 使用者指南」中的使用 CloudTrail 事件歷史記錄。檢視事件歷史記錄不會產生 CloudTrail 費用。

如需 AWS 帳戶 過去 90 天內持續記錄的事件,請建立線索或 CloudTrail Lake 事件資料存放區。

CloudTrail 追蹤

線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。使用 建立的所有線索 AWS 管理主控台 都是多區域。您可以使用 AWS CLI建立單一或多區域追蹤。建議您建立多區域追蹤,因為您擷取 AWS 區域 帳戶中所有 的活動。如果您建立單一區域追蹤,您只能檢視追蹤 AWS 區域中記錄的事件。如需追蹤的詳細資訊,請參閱《AWS CloudTrail 使用者指南》中的為您的 AWS 帳戶建立追蹤為組織建立追蹤

您可以透過建立追蹤,免費將持續管理事件的一個複本從 CloudTrail 傳遞至您的 Amazon S3 儲存貯體,但這樣做會產生 Amazon S3 儲存費用。如需 CloudTrail 定價的詳細資訊,請參閱 AWS CloudTrail 定價。如需 Amazon S3 定價的相關資訊,請參閱 Amazon S3 定價

CloudTrail Lake 事件資料存放區

CloudTrail Lake 讓您能夠對事件執行 SQL 型查詢。CloudTrail Lake 會將分列式 JSON 格式的現有事件轉換為 Apache ORC 格式。ORC 是一種單欄式儲存格式,針對快速擷取資料進行了最佳化。系統會將事件彙總到事件資料存放區中,事件資料存放區是事件的不可變集合,其依據為您透過套用進階事件選取器選取的條件。套用於事件資料存放區的選取器控制哪些事件持續存在並可供您查詢。如需 CloudTrail Lake 的詳細資訊,請參閱AWS CloudTrail 《 使用者指南》中的使用 AWS CloudTrail Lake

CloudTrail Lake 事件資料存放區和查詢會產生費用。建立事件資料存放區時,您可以選擇要用於事件資料存放區的定價選項。此定價選項將決定擷取和儲存事件的成本,以及事件資料存放區的預設和最長保留期。如需 CloudTrail 定價的詳細資訊,請參閱 AWS CloudTrail 定價

EventBridge CloudTrail 中的 管理事件

管理事件提供有關在 資源上執行的管理操作的資訊 AWS 帳戶。這些也稱為控制平面操作。根據預設,CloudTrail 記錄管理事件。

除了 PutEvents和 以外的所有 Amazon EventBridge API 操作PutPartnerEvents都是控制平面操作。如需完整清單,請參閱 Amazon EventBridge API 參考中的動作。如需管理事件的範例,請參閱 EventBridge 管理事件範例

EventBridge CloudTrail 中的資料事件

資料事件提供有關在資源上執行或在資源中執行的資源操作的資訊 (例如,將事件發佈至事件匯流排)。這些也稱為資料平面操作。資料事件通常是大量資料的活動。根據預設,CloudTrail 不會記錄資料事件。CloudTrail 事件歷史記錄不會記錄資料事件。

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

您可以使用 CloudTrail 主控台 AWS CLI或 CloudTrail API 操作來記錄 EventBridge 資源類型的資料事件。如需如何記錄資料事件的詳細資訊,請參閱 AWS CloudTrail 使用者指南中的使用 AWS 管理主控台 記錄資料事件使用 AWS Command Line Interface記錄資料事件

下表列出您可以記錄資料事件 EventBridge 的資源類型。資源類型 (主控台) 欄會顯示從 CloudTrail 主控台上的資源類型清單中選擇的值。resources.type 值欄會顯示值,您會在使用 AWS CLI 或 CloudTrail APIs 設定進階事件選取器時指定此resources.type值。記錄到 CloudTrail 的資料 API 資料行會針對資源類型顯示記錄到 CloudTrail 的 API 呼叫。

資源類型 (主控台) resources.type 值 記錄到 CloudTrail 的資料 API
EventBridge 事件匯流排 AWS::Events::EventBus
EventBridge 合作夥伴事件來源 AWS::Events::EventSource
EventBridge 端點 AWS::Events::Endpoint

您可以設定進階事件選取器來篩選 eventNamereadOnlyresources.ARN 欄位,以僅記錄對您重要的事件。如需這些欄位的詳細資訊,請參閱AWS CloudTrail API 參考中的AdvancedFieldSelector

注意

事件項目中的 detail 欄位會在 CloudTrail 資料事件日誌中修訂,以保護敏感資料。

資料事件交付

注意

CloudTrail 只會將資料事件傳送至 AWS 帳戶 稱為 API 的 。

PutEvents

跨帳戶PutEvents呼叫

當您透過資源政策授予 許可的帳戶PutEvents呼叫匯流排時,只有發起人的帳戶會收到 CloudTrail 資料事件。您的帳戶 (匯流排擁有者) 不會。

Bus-to-bus轉送

最多可有四個帳戶參與bus-to-bus轉送案例。下表顯示哪些帳戶會收到 CloudTrail 資料事件。

帳戶角色 接收 CloudTrail 資料事件
最初呼叫的帳戶 PutEvents(寄件者) 是,一律如此。
擁有來源匯流排的帳戶 (來源匯流排擁有者) 否。
在規則目標上擁有規則和 IAM 角色的帳戶 (規則擁有者)

是,但僅適用於跨區域轉送。對於跨區域轉送,EventBridge 會使用規則目標上的 IAM 角色來PutEvents呼叫目的地區域。這可讓規則擁有者的帳戶成為有效的 API 呼叫者。同區域轉送不會產生額外的資料事件。

擁有目的地匯流排的帳戶 (目的地匯流排擁有者) 否。
注意

對於跨區域轉送,原始PutEvents呼叫和轉送PutEvents呼叫會記錄為其各自區域中的個別 CloudTrail 資料事件。若要擷取兩者,請確定 CloudTrail 已設定為記錄兩個區域中的資料事件。

具有事件複寫的全域端點

當您使用啟用事件複寫的全域端點時,EventBridge 會建立受管規則,將事件跨區域轉送至次要匯流排。這是跨區域bus-to-bus轉送案例,因此適用上表中的相同規則:

  • 主要區域:EventBridge 會產生原始PutEvents呼叫的資料事件。事件同時包含事件匯流排 ARN 和端點資源 ARN。

  • 次要區域:由於您擁有 受管規則和用於複寫事件的 IAM 角色,因此您的帳戶會收到複寫PutEvents呼叫的資料事件。事件僅包含事件匯流排 ARN。不包含端點資源 ARN。

PutPartnerEvents

從 SaaS 合作夥伴接收的事件

當 SaaS 合作夥伴傳送事件到您的匯流排時,您的帳戶不會收到 PutPartnerEvents CloudTrail 資料事件。只有 SaaS 合作夥伴的帳戶會收到資料事件。

以 SaaS 合作夥伴身分傳送至客戶匯流排的事件

當您以 SaaS 合作夥伴身分將事件傳送至客戶的事件匯流排時,您的帳戶會收到 PutPartnerEvents CloudTrail 資料事件。事件僅包含事件來源 ARN 做為資源。不包含客戶的事件匯流排 ARN。

如需 EventBridge 記錄到 CloudTrail 的資料事件範例,請參閱 EventBridge 資料事件範例

EventBridge 管理事件範例

一個事件代表任何來源提出的單一請求,並包含請求 API 操作的相關資訊、操作的日期和時間、請求參數等。CloudTrail 日誌檔案不是公有 API 呼叫的已排序堆疊追蹤,因此事件不會以任何特定順序顯示。

以下範例顯示的 CloudTrail 事件會示範 PutRule 操作。

{ "eventVersion":"1.03", "userIdentity":{ "type":"Root", "principalId":"123456789012", "arn":"arn:aws:iam::123456789012:root", "accountId":"123456789012", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "sessionContext":{ "attributes":{ "mfaAuthenticated":"false", "creationDate":"2015-11-17T23:56:15Z" } } }, "eventTime":"2015-11-18T00:11:28Z", "eventSource":"events.amazonaws.com", "eventName":"PutRule", "awsRegion":"us-east-1", "sourceIPAddress":"AWS Internal", "userAgent":"AWS CloudWatch Console", "requestParameters":{ "description":"", "name":"cttest2", "state":"ENABLED", "eventPattern":"{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}", "scheduleExpression":"" }, "responseElements":{ "ruleArn":"arn:aws:events:us-east-1:123456789012:rule/cttest2" }, "requestID":"e9caf887-8d88-11e5-a331-3332aa445952", "eventID":"49d14f36-6450-44a5-a501-b0fdcdfaeb98", "eventType":"AwsApiCall", "apiVersion":"2015-10-07", "recipientAccountId":"123456789012" }

如需有關 CloudTrail 記錄內容的資訊,請參閱《AWS CloudTrail 使用者指南》中的 CloudTrail record contents

EventBridge 資料事件範例

下列範例顯示成功PutEvents呼叫的 CloudTrail 資料事件。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA3XFRBF23EXAMPLE:johndoe-session", "arn": "arn:aws:sts::111122223333:assumed-role/MyRole/johndoe-session", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA3XFRBF23EXAMPLE", "arn": "arn:aws:iam::111122223333:role/MyRole", "accountId": "111122223333", "userName": "MyRole" }, "attributes": { "creationDate": "2026-03-07T00:49:09Z", "mfaAuthenticated": "false" } } }, "eventTime": "2026-03-07T00:51:07Z", "eventSource": "events.amazonaws.com", "eventName": "PutEvents", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.1", "userAgent": "aws-cli/2.33.13", "requestParameters": { "entries": [ { "source": "my-application", "detailType": "MyDetailType", "detail": "HIDDEN_DUE_TO_SECURITY_REASONS", "eventBusName": "default" } ] }, "responseElements": { "failedEntryCount": 0, "entries": [ { "eventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "readOnly": false, "resources": [ { "type": "AWS::Events::EventBus", "ARN": "arn:aws:events:us-east-1:111122223333:event-bus/default" } ], "eventType": "AwsApiCall", "apiVersion": "2015-10-07", "managementEvent": false, "recipientAccountId": "111122223333", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "events.us-east-1.amazonaws.com" } }

下列範例顯示使用全域端點PutEvents呼叫的 CloudTrail 資料事件。請注意resources陣列中的其他AWS::Events::Endpoint資源。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA3XFRBF23EXAMPLE:johndoe-session", "arn": "arn:aws:sts::111122223333:assumed-role/MyRole/johndoe-session", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA3XFRBF23EXAMPLE", "arn": "arn:aws:iam::111122223333:role/MyRole", "accountId": "111122223333", "userName": "MyRole" }, "attributes": { "creationDate": "2026-03-07T00:49:09Z", "mfaAuthenticated": "false" } } }, "eventTime": "2026-03-07T00:51:06Z", "eventSource": "events.amazonaws.com", "eventName": "PutEvents", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.1", "userAgent": "aws-cli/2.33.13", "requestParameters": { "entries": [ { "source": "my-application", "detailType": "MyDetailType", "detail": "HIDDEN_DUE_TO_SECURITY_REASONS", "eventBusName": "default" } ], "endpointId": "abc1234567.us-east-1" }, "responseElements": { "failedEntryCount": 0, "entries": [ { "eventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444" } ] }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE55555", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE66666", "readOnly": false, "resources": [ { "type": "AWS::Events::EventBus", "ARN": "arn:aws:events:us-east-1:111122223333:event-bus/default" }, { "type": "AWS::Events::Endpoint", "ARN": "arn:aws:events:us-east-1:111122223333:endpoint/MyGlobalEndpoint" } ], "eventType": "AwsApiCall", "apiVersion": "2015-10-07", "managementEvent": false, "recipientAccountId": "111122223333", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "abc1234567.us-east-1.endpoint.events.amazonaws.com" } }

下列範例顯示成功PutPartnerEvents呼叫的 CloudTrail 資料事件。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA3XFRBF23EXAMPLE:partner-session", "arn": "arn:aws:sts::111122223333:assumed-role/PartnerRole/partner-session", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA3XFRBF23EXAMPLE", "arn": "arn:aws:iam::111122223333:role/PartnerRole", "accountId": "111122223333", "userName": "PartnerRole" }, "attributes": { "creationDate": "2026-03-07T00:49:09Z", "mfaAuthenticated": "false" } } }, "eventTime": "2026-03-07T00:51:07Z", "eventSource": "events.amazonaws.com", "eventName": "PutPartnerEvents", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.1", "userAgent": "aws-cli/2.33.13", "requestParameters": { "entries": [ { "time": "Mar 7, 2026, 12:51:07 AM", "source": "aws.partner/example.com/my-integration", "detailType": "MyDetailType", "detail": "HIDDEN_DUE_TO_SECURITY_REASONS" } ] }, "responseElements": { "failedEntryCount": 0, "entries": [ { "eventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE77777" } ] }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE88888", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE99999", "readOnly": false, "resources": [ { "type": "AWS::Events::EventSource", "ARN": "arn:aws:events:us-east-1::event-source/aws.partner/example.com/my-integration" } ], "eventType": "AwsApiCall", "apiVersion": "2015-10-07", "managementEvent": false, "recipientAccountId": "111122223333", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "events.us-east-1.amazonaws.com" } }

EventBridge 管道採取的動作的 CloudTrail 日誌項目

當從來源讀取事件、叫用擴充或調用目標時,EventBridge 管道會採用提供的 IAM 角色。對於與在您帳戶中對所有擴充、目標以及 Amazon SQS、Kinesis 和 DynamoDB 來源執行的動作相關的 CloudTrail 項目,sourceIPAddressinvokedBy 欄位將包括 pipes.amazonaws.com 在內。

適用於所有擴充、目標以及 Amazon SQS、Kinesis 和 DynamoDB 來源的範例 CloudTrail 日誌項目

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "...", "arn": "arn:aws:sts::111222333444:assumed-role/...", "accountId": "111222333444", "accessKeyId": "...", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "...", "arn": "...", "accountId": "111222333444", "userName": "userName" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-09-22T21:41:15Z", "mfaAuthenticated": "false" } }, "invokedBy": "pipes.amazonaws.com" }, "eventTime": ",,,", "eventName": "...", "awsRegion": "us-west-2", "sourceIPAddress": "pipes.amazonaws.com", "userAgent": "pipes.amazonaws.com", "requestParameters": { ... }, "responseElements": null, "requestID": "...", "eventID": "...", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "...", "eventCategory": "Management" }

對於所有其他來源,CloudTrail 記錄項目的 sourceIPAddress 欄位將具有動態 IP 地址,不應將其用於任何整合或事件分類。此外,這些條目將沒有該 invokedBy 字段。

適用於所有其他來源的 CloudTrail 日誌項目範例

{ "eventVersion": "1.08", "userIdentity": { ... }, "eventTime": ",,,", "eventName": "...", "awsRegion": "us-west-2", "sourceIPAddress": "127.0.0.1", "userAgent": "Python-httplib2/0.8 (gzip)", }