CloudTrail 記錄內容 - AWS CloudTrail

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

CloudTrail 記錄內容

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

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

eventTime

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

來自:1.0

選用:False

eventVersion

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

eventVersion值是表單中的主要和次要版本 major_version.minor_version。 例如,您可以具有 eventVersion的值1.09,其中 1是主要版本,而 09是次要版本。

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

如果 CloudTrail 引入新的事件類型,但事件的結構在其他方面保持不變,則事件版本不會變更。

為確保您的應用程式可以剖析事件結構,我們建議您對主要版本編號執行「等於」比較。為了確保應用程式預期的欄位存在,我們也建議您在次要版本上執行 greater-than-or-equal- 以進行比較。次要版本中沒有前導零。您可以同時解譯 major_version 以及 minor_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

此慣例有一些例外狀況。例如,適用於 Amazon eventSource的 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 SDKs或 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 – 請求是使用 AWS CLI 安裝在 Linux 上的 提出。

注意

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

來自:1.0

選用:True

errorCode

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

對於網路活動事件,發生VPC端點政策違規時,錯誤碼為 VpceAccessDenied

來自:1.0

選用:True

errorMessage

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

對於網路活動事件,發生VPC端點政策違規時, errorMessage 一律會是下列訊息:The request was denied due to a VPC endpoint policy。如需存取VPC端點政策違規遭拒事件的詳細資訊,請參閱 IAM 使用者指南 中的存取遭拒錯誤訊息範例。如需顯示VPC端點政策違規的網路活動事件範例,請參閱本指南中的網路活動事件

注意

某些 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 產生 Insights 事件,例如資源佈建尖峰或 AWS Identity and Access Management (IAM) 動作爆量。

    AwsCloudTrailInsight 事件使用以下欄位:

    • eventName

    • eventSource

    • sourceIPAddress

    • userAgent

    • userIdentity

  • AwsVpceEvents – CloudTrail 網路活動事件 (預覽中) 可讓VPC端點擁有者記錄 AWS API從私有VPC端點VPC到 的呼叫 AWS 服務。若要記錄網路活動事件,VPC端點擁有者必須啟用事件來源的網路活動事件。

來自:1.02

選用:False

apiVersion

識別與AwsApiCalleventType值相關聯的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

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

  • 資源 ARNs

  • 資源擁有者的帳戶 ID

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

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

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

  • 帳戶 ID:123456789012

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

如需包含 resources 欄位的日誌範例,請參閱 IAM 使用者指南中的AWS STS CloudTrail 日誌檔案中API的事件AWS Key Management Service 開發人員指南 中的記錄 AWS KMS 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 EC2。

來自:1.04

選用:True

vpcEndpointAccountId

識別請求已周遊之對應VPC端點的端點擁有者 AWS 帳戶 ID。

自:1.09 起

選用:True

eventCategory

顯示事件類別。事件類別用於 LookupEvents呼叫,以篩選管理或 Insights 事件。

  • 對於管理事件,值為 Management

  • 對於資料事件,值為 Data

  • 對於 Insights 事件,的值為 Insight

  • 對於網路活動事件,值為 NetworkActivity

自: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

顯示服務API呼叫中使用的用戶端所提供主機名稱的 Transport Layer Security (TLS) 版本、密碼套件和完整網域名稱 (FQDN) 的相關資訊,這通常是服務端點FQDN的 。 CloudTrail如果預期資訊遺失或空白, 仍會記錄部分TLS詳細資訊。例如,如果TLS版本和密碼套件存在,但HOST標頭為空,則可用TLS詳細資訊仍會記錄在 CloudTrail 事件中。

  • tlsVersion - 請求的TLS版本。

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

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

注意

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

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

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

自:1.08

選用:True

Insights 事件記錄欄位

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

sharedEventId

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

自:1.07

選用:False

insightDetails

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

自:1.07

選用:False

範例 sharedEventID

以下是描述如何為相同動作 CloudTrail 傳遞兩個事件的範例:

  1. Alice 有 AWS 帳戶 (111111111111) 並建立 AWS KMS key。她是此KMS金鑰的擁有者。

  2. Bob 的帳戶為 AWS (222222222222)。Alice 准許 Bob 使用 KMS金鑰。

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

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

  5. CloudTrail 會傳送兩個不同的事件。

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

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

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

sharedEventID 欄位在日誌中顯示的方式

CloudTrail Insights IDs中的共用事件

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

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