CloudTrail 記錄內容 - AWS CloudTrail

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

CloudTrail 記錄內容

記錄主體所包含的欄位可協助您判斷請求的動作,以及提出請求的時機和位置。Optional (選用) 的值為 True 時,欄位只有在套用至服務、API 或事件類型時才會出現。選用False 表示欄位永遠存在,或其存在不依賴服務、API 或事件類型。範例為 responseElements,其存在於進行變更的動作 (建立、更新或刪除動作) 事件中。

CloudTrail 如果欄位的內容超過欄位大小上限,則會截斷欄位。如果截斷欄位,omitted 存在的值為 true

eventTime

完成請求的日期和時間 (國際標準時間 (UTC))。事件的時間戳記來自本機主機,該主機提供 API 呼叫所在的服務 API 端點。例如,在美國西部 (奧勒岡) 區域執行的 CreateBucket API 事件會從執行 Amazon S3 端點的 AWS 主機上取得其時間戳記s3.us-west-2.amazonaws.com。一般而言, AWS 服務會使用網路時間通訊協定 (NTP) 來同步其系統時鐘。

來自:1.0

選用:False

eventVersion

日誌事件格式的版本。目前的版本是 1.10。

eventVersion 值是主要和次要版本,格式為 major_version.minor_version。例如,您可以有一個值為 1.09eventVersion,其中 1 是主要版本,09 是次要版本。

CloudTrail 如果對不向後相容的事件結構進行變更,則會增加主要版本。這包括移除已存在的 JSON 欄位,或變更欄位內容的表示方式 (例如,日期格式)。 CloudTrail 如果變更將新欄位新增至事件結構,則會增加次要版本。如果為某些或所有現有事件提供新資訊,或只有新事件類型才提供新資訊,就可能會發生這種情況。應用程式應略過新欄位,以與新次要版本的事件結構維持相容。

如果 CloudTrail 引入了新的事件類型,但事件的結構未改變,則事件版本不會改變。

為確保您的應用程式可以剖析事件結構,我們建議您對主要版本編號執行「等於」比較。為了確保您的應用程式預期的欄位存在,我們也建議您對次要版本執行 greater-than-or-equal-To 比較。次要版本中沒有前導零。您可以將 major_versionminor_version 解釋為數字,並執行比較操作。

來自:1.0

選用:False

userIdentity

有關提出請求之 IAM 身分的資訊。如需詳細資訊,請參閱 CloudTrail userIdentity 元素

來自:1.0

選用:False

eventSource

要請求的服務。此名稱通常是較短形式的服務名稱,即沒有空格再加上 .amazonaws.com。例如:

  • AWS CloudFormation 是cloudformation.amazonaws.com

  • Amazon EC2 是 ec2.amazonaws.com

  • Amazon Simple Workflow Service 為 swf.amazonaws.com

此慣例有一些例外狀況。例如,對eventSource於 Amazon CloudWatch 是monitoring.amazonaws.com.

來自:1.0

選用:False

eventName

請求的動作,這是該服務中之 API 的其中一個動作。

來自:1.0

選用:False

awsRegion

提 AWS 區域 出要求的對象,例如us-east-2。請參閱CloudTrail 支援的地區

來自:1.0

選用:False

sourceIPAddress

提出請求的 IP 地址。對於源自服務主控台的動作,所報告的地址適用於基礎客戶資源,而非主控台 Web 伺服器。對於中的服務 AWS,只會顯示 DNS 名稱。

注意

對於源自 AWS的事件,此欄位通常是 AWS Internal/#,其中 # 是用於內部用途的號碼。

來自:1.0

選用:False

userAgent

透過其發出要求的代理程式 AWS Management Console,例如 AWS 服務、 AWS SDK 或. AWS CLI此欄位的大小上限為 1 KB;超過該限制的內容會被截斷。範例值如下:

  • lambda.amazonaws.com - 使用 AWS Lambda提出請求。

  • aws-sdk-java - 使用 AWS SDK for Java提出請求。

  • aws-sdk-ruby - 使用 AWS SDK for Ruby提出請求。

  • aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5— 請求是在 Linux 上 AWS CLI 安裝的情況下提出的。

注意

對於起源的事件 AWS,如果 CloudTrail 知道是哪一個 AWS 服務 進行呼叫,此欄位就是呼叫服務的事件來源 (例如ec2.amazonaws.com)。否則,此欄位為AWS Internal/#,其中#是用於內部用途的數字。

來自:1.0

選用:True

errorCode

如果請求返回錯誤,則 AWS 服務錯誤。如需顯示此欄位的範例,請參閱 錯誤代碼和訊息日誌範例。此欄位的大小上限為 1 KB;超過該限制的內容會被截斷。

來自:1.0

選用:True

errorMessage

如果請求傳回錯誤,則會是該錯誤的描述。此訊息包含授權失敗的訊息。 CloudTrail 會擷取服務在其例外狀況處理中記錄的訊息。如需範例,請參閱錯誤代碼和訊息日誌範例。此欄位的大小上限為 1 KB;超過該限制的內容會被截斷。

注意

某些 AWS 服務會在事件中提供errorCodeerrorMessage做為頂層欄位。其他 AWS 服務在 responseElements 的部分提供錯誤資訊。

來自:1.0

選用:True

requestParameters

請求時所傳送的參數 (如果有的話)。這些參數記錄在適當 AWS 服務的 API 參考文件中。此欄位的大小上限為 100 KB;超過該限制的內容會被截斷。

來自:1.0

選用:False

responseElements

進行變更(建立、更新或刪除動作)的回應元素(如果有)。如果動作 不返回響應元素,此字段是null。如果 動作不會變更狀態 (例如,取得或列出物件的要求)、 這個元素被省略。動作的回應元素會記錄在 API 參考資料中 適當的文檔 AWS 服務。此欄位的大小上限 100 KB;超過該限制的內容會被截斷。

responseElements值對於幫助您跟踪請求很有用 與 AWS Support. 兩者x-amz-request-idx-amz-id-2 包含可協助您追蹤要求的資訊 AWS Support。這些值是 與服務在響應請求時返回的內容相同 啟動事件,以便您可以使用它們將事件與 請求。

來自:1.0

選用:False

additionalEventData

不屬於請求或回應之事件的額外資料。此欄位的大小上限為 28 KB;超過該限制的內容會被截斷。

來自:1.0

選用:True

requestID

識別請求的值。所呼叫的服務會產生此值。此欄位的大小上限為 1 KB;超過該限制的內容會被截斷。

來自:1.01

選用:True

eventID

由產生的 GUID CloudTrail 以唯一識別每個事件。您可以使用這個值來識別單一事件。例如,您可以使用此 ID 做為主索引鍵,從可搜尋的資料庫中擷取日誌資料。

來自:1.01

選用:False

eventType

識別已產生事件記錄的事件類型。這可以是下列其中一個值:

  • AwsApiCall - 呼叫 API。

  • AwsServiceEvent - 服務產生與您追蹤相關的事件。例如,這可能會在另一個帳戶對您擁有的資源進行呼叫時發生。

  • AwsConsoleAction- 在主控台中採取的動作不是 API 呼叫。

  • AwsConsoleSignIn— 您帳戶中的使用者 (根、IAM、同盟、SAML 或 SwitchRole) 登入. AWS Management Console

  • AwsCloudTrailInsight— 如果啟用了 Insights 事件,則 CloudTrail 會在 CloudTrail 偵測到異常操作活動 (例如資源佈建中的峰值或 AWS Identity and Access Management (IAM) 動作爆發時產生見解事件。

    AwsCloudTrailInsight 事件使用以下欄位:

    • eventName

    • eventSource

    • sourceIPAddress

    • userAgent

    • userIdentity

來自:1.02

選用:False

apiVersion

識別與 AwsApiCall eventType 值相關聯的 API 版本。

來自:1.01

選用:True

managementEvent

可識別事件是否為管理事件的布林值。若 eventVersion 為 1.06 或更新版本,且事件類型為下列其中一項,則 managementEvent 會顯示在事件記錄中:

  • AwsApiCall

  • AwsConsoleAction

  • AwsConsoleSignIn

  • AwsServiceEvent

來自:1.06

選用:True

readOnly

識別此操作是否為唯讀操作。這可以是下列其中一個值:

  • true - 此操作是唯讀的 (例如,DescribeTrails)。

  • false - 此操作是唯寫的 (例如,DeleteTrail)。

來自:1.01

選用:True

resources

事件中存取之資源的清單。欄位可能包含下列資訊:

  • 資源 ARN

  • 資源擁有者的帳戶 ID

  • 資源類型識別符,格式為:AWS::aws-service-name::data-type-name

例如,記錄 AssumeRole 事件時,resources 欄位可能顯示如下:

  • ARN:arn:aws:iam::123456789012:role/myRole

  • 帳戶 ID:123456789012

  • 資源類型識別符:AWS::IAM::Role

如需具有resources欄位的記錄範例,請參閱 IAM 使用指南中的記 CloudTrail 錄檔中的AWS STSAWS KMS API 事件AWS Key Management Service 開發人員指南中的記錄 API 呼叫

來自:1.01

選用:True

recipientAccountId

代表收到此事件的帳戶 ID。recipientAccountID 可能與 CloudTrail userIdentity 元素 accountId 不同。這可能發生在跨帳戶資源存取中。例如,如果個別帳戶使用 KMS 金鑰 (也稱為 AWS KMS key) 呼叫加密 API,則對於交付至提出呼叫之帳戶的事件,accountIdrecipientAccountID 值會相同,但對於交付至擁有 KMS 金鑰之帳戶的事件,這些值就會不同。

來自:1.02

選用:True

serviceEventDetails

識別服務事件,包含觸發事件的項目和結果。如需詳細資訊,請參閱 AWS 服務 事件。此欄位的大小上限為 100 KB;超過該限制的內容會被截斷。

來自:1.05

選用:True

sharedEventID

由所產生的 GUID, CloudTrail 以唯一識別傳送至不同 AWS 帳戶的相同 AWS 動作中的 CloudTrail 事件。

例如,當帳戶使用屬於其他帳戶AWS KMS key的帳戶時,使用 KMS 金鑰的帳戶和擁有 KMS 金鑰的帳戶會針對相同動作收到個別 CloudTrail 事件。為此 AWS 動作傳送的每個 CloudTrail 事件都共用相同sharedEventID,但也有一個唯一的eventIDrecipientAccountID

如需詳細資訊,請參閱 sharedEventID 範例

注意

僅當 CloudTrail 事件傳遞至多個帳戶時,此sharedEventID欄位才會顯示。如果呼叫者和所有者是相同的 AWS 帳戶,則僅 CloudTrail 發送一個事件,而該sharedEventID字段不存在。

來自:1.03

選用:True

vpcEndpointId

識別從 VPC 向另一個 AWS 服務提出請求的 VPC 端點 (例如 Amazon S3)。

來自:1.04

選用:True

vpcEndpointAccountId

識別要求已經遍歷之對應端點的 VPC 端點擁有者識別 AWS 帳戶 碼。

自 1 月 1 日起

選用:True

eventCategory

顯示事件類別。用eventCategory於管理和見解事件的LookupEvents呼叫。

  • 對於管理事件,值為 Management

  • 對於資料事件,值為 Data

  • 對於 Insights 事件,的值為 Insight

自:1.07

選用:False

addendum

如果事件傳遞延遲,或有關現有事件的其他資訊會在記錄事件之後變成可用,附錄欄位會顯示事件延遲原因的相關資訊。如果現有事件中缺少,附錄欄位會包含缺少的資訊,以及缺失的原因。內容包括以下:

  • reason - 事件或其部分內容遺失的原因。可為以下任何一個值。

    • DELIVERY_DELAY- 發生延遲傳遞事件。這可能是由於高網路流量、連線問題或 CloudTrail 服務問題所造成。

    • UPDATED_DATA- 事件記錄中的欄位遺失或值不正確。

    • SERVICE_OUTAGE— 將事件記錄為 CloudTrail 發生中斷,且無法將事件記錄到的服務 CloudTrail。這是非常罕見的情況。

  • updatedFields - 附錄所更新的事件記錄欄位。只有當原因是 UPDATED_DATA 才提供此資訊。

  • originalRequestID - 請求的原始唯一 ID。只有當原因是 UPDATED_DATA 才提供此資訊。

  • originalEventID - 原始事件 ID。只有當原因是 UPDATED_DATA 才提供此資訊。

自:1.08

選用:True

sessionCredentialFromConsole

顯示事件是否源自 AWS Management Console 階段作業。此欄位不會顯示,除非值為 true,這意味著用於進行 API 呼叫的客戶端是代理或外部客戶端。如果已使用 Proxy 用戶端,tlsDetails 事件欄位不會顯示。

自:1.08

選用:True

edgeDeviceDetails

顯示作為要求目標之 Edge 裝置的相關資訊。目前,S3 Outposts 裝置事件包含此欄位。此欄位的大小上限為 28 KB;超過該限制的內容會被截斷。

自:1.08

選用:True

tlsDetails

顯示傳輸層安全性 (TLS) 版本、加密套件,以及用戶端提供的主機名稱 (通常是服務端點的 FQDN) 之用戶端提供的主機名稱的完整網域名稱 (FQDN) 的相關資訊。 CloudTrail如果預期的資訊遺失或空白,仍會記錄部分 TLS 詳細資料。例如,如果 TLS 版本和加密套件存在,但HOST標頭是空的,則可用的 TLS 詳細資料仍會記錄在 CloudTrail 事件中。

  • tlsVersion - 要求的 TLS 版本。

  • cipherSuite - 請求的密碼套件 (使用的安全演算法的組合)。

  • clientProvidedHostHeader - 服務 API 呼叫中用戶端所提供的主機名稱,通常是服務端點的 FQDN。

注意

在有些情形中,事件記錄中不顯示 tlsDetails 欄位。

  • 如果 API 呼叫是由代表您進行,則tlsDetails欄位不存 AWS 服務 在。userIdentity 元素中的 invokedBy 欄位可識別執行 API 呼叫的 AWS 服務 。

  • 如果 sessionCredentialFromConsole 存在的值為 true,只有在使用外部用戶端來進行 API 呼叫時,tlsDetails 才會出現在事件記錄中。

自:1.08

選用:True

Insights 事件記錄欄位

以下是顯示在 Insights 事件 JSON 結構中的屬性,這些屬性與管理或資料事件中的屬性不同。

sharedEventId

A sharedEventID for CloudTrail Insights 事件不同sharedEventID於 CloudTrail事件的管理和資料類型。在見解事件中,a sharedEventID 是由見 CloudTrail 解產生的 GUID,用於唯一識別洞察事件。 sharedEventID在開始和結束 Insights 事件之間很常見,有助於連接這兩個事件以唯一識別異常活動。您可以將 sharedEventID 視為整體 Insights 事件 ID。

自:1.07

選用:False

insightDetails

僅限 Insights 事件。顯示 Insights 事件基本觸發程序的相關資訊,例如事件來源、使用者代理程式、統計資料、API 名稱,以及事件是否為 Insights 事件的開始或結束。如需 insightDetails 區塊之內容的詳細資訊,請參閱 CloudTrail 見解insightDetails元素

自:1.07

選用:False

sharedEventID 範例

下列範例說明如何針對相同動作 CloudTrail 傳遞兩個事件:

  1. 愛麗絲有 AWS 帳戶(1111111111),並創建了一個. AWS KMS key她是此 KMS 金鑰的擁有者。

  2. 鮑勃有 AWS 帳戶(2222222222)。Alice 會將使用 KMS 金鑰的許可授予 Bob。

  3. 每個帳戶都會有追蹤和個別儲存貯體。

  4. Bob 使用 KMS 金鑰呼叫 Encrypt API。

  5. CloudTrail 發送兩個單獨的事件。

    • 一個事件會傳送給 Bob。事件顯示他已使用 KMS 金鑰。

    • 一個事件會傳送給 Alice。事件顯示 Bob 已使用 KMS 金鑰。

    • 兩個事件具有相同的 sharedEventID,但 eventIDrecipientAccountID 是唯一的。

sharedEventID 欄位如何出現在日誌中

CloudTrail 深入解析中的共用事件 ID

A sharedEventID for CloudTrail Insights 事件不同sharedEventID於 CloudTrail 事件的管理和資料類型。在洞察事件中,a sharedEventID 是由見解產生的 GUID,用於唯一識別 CloudTrail 洞察事件的開始和結束對。 sharedEventID在開始和結束 Insights 事件之間很常見,有助於在兩個事件之間建立關聯性,以唯一識別不尋常的活動。

您可以將 sharedEventID 視為整體 Insights 事件 ID。