CloudTrail 記錄內容 - AWS CloudTrail

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

CloudTrail 記錄內容

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

eventTime

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

來自:1.0

選用:False

eventVersion

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

eventVersion值是格式為 的主要和次要版本major_versionminor_version。例如,您可以有一個值為 1.10eventVersion,其中 1 是主要版本,10 是次要版本。

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

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

為確保您的應用程式可以剖析事件結構,我們建議您對主要版本編號執行「等於」比較。為了確保您的應用程式預期的欄位存在,我們也建議您對次要版本執行 a greater-than-or-equal-to 比較。次要版本中沒有前導零。您可以同時將 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。當欄位大小超過 100 KB 時,會省略requestParameters內容。

來自:1.0

選用:False

responseElements

任何回應元素,如果有的話,用於進行變更的動作 (建立、更新或刪除動作)。如果動作 
不會傳回回應元素,此欄位為 null。如果
 動作不會變更狀態 (例如,取得或列出物件的請求),
 已省略此元素。動作的回應元素記錄在API參考中
 文件 AWS 服務。此欄位的大小上限為 100 KB。當欄位大小超過 100 KB 時,會省略reponseElements內容。

responseElements值可協助您追蹤請求
 搭配 AWS Support。x-amz-request-idx-amz-id-2
 包含的資訊可協助您使用 追蹤請求 AWS Support。這些值是
 與 服務在回應請求時傳回的相同
 會啟動事件,因此您可以使用它們將事件與
 請求。

來自:1.0

選用:False

additionalEventData

不屬於請求或回應之事件的額外資料。此欄位的大小上限為 28 KB。當欄位大小超過 28 KB 時,會省略additionalEventData內容。

的內容additionalEventData是可變的。例如,AWS Management Console 對於登入事件Yes如果請求是由根或IAM使用者使用多重要素驗證 () 提出, additionalEventData可以包含值為 MFAUsed的欄位MFA。

來自: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 偵測到異常操作活動,例如資源佈建峰值或 AWS Identity and Access Management (IAM) 動作爆量時 CloudTrail ,會產生 Insights 事件。

    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。當欄位大小超過 100 KB 時,會省略serviceEventDetails內容。

來自: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 欄位識別進行API呼叫的 AWS 服務 。

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

自:1.08

選用:True

Insights 事件記錄欄位

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

sharedEventId

sharedEventID for CloudTrail Insights 事件與 sharedEventID 事件的管理和資料類型 CloudTrail不同。在 Insights 事件中, sharedEventID是由 CloudTrail Insights 產生GUID以唯一識別 Insights 事件的 。 在起始和結束 Insights 事件之間sharedEventID很常見,並有助於連接兩個事件以唯一識別異常活動。您可以將 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 事件的開始和結束對。 在開始和結束 Insights 事件之間sharedEventID很常見,並有助於在兩個事件之間建立關聯,以唯一識別異常活動。

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