CloudTrail 记录内容 - AWS CloudTrail
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudTrail 记录内容

记录的正文包含若干字段,可帮助您确定所请求的操作以及在何时何地发出请求。当 Optional (可选) 的值为 True 时,该字段仅在应用于服务、API 或事件类型时才存在。一个可选False表示该字段始终存在,或者其存在不依赖于服务、API 或事件类型。例如,responseElements,它存在于进行更改的操作(创建、更新或删除操作)的事件中。

eventTime

发出请求的日期和时间(用协调世界时 (UTC) 表示)。事件的时间戳来自提供 API 调用所在的服务 API 终端节点的本地主机。例如,CreateBucket在美国西部(俄勒冈)地区运行的 API 事件将从运行 Amazon S3 终端节点的 AWS 主机上获取时间戳,s3.us-west-2.amazonaws.com。通常,AWS 服务使用网络时间协议 (NTP) 同步其系统时钟。

从: 1.0

可选: False

eventVersion

日志事件格式的版本。当前版本为 1.08。

这些区域有:eventVersion值为主要版本和次要版本major_versionminor_version。例如,您可以具有eventVersion1.07,其中,1是主要版本,07是次要版本。

如果对不向后兼容的事件结构进行更改,CloudTrail 将递增主要版本。这包括删除已存在的 JSON 字段,或者更改字段内容的表示方式(例如,日期格式)。如果发生更改向事件结构添加新字段,则 CloudTrail 将递增次要版本。如果为某些或所有现有事件提供了新信息,或者仅在新事件类型上提供了新信息,则可能会发生这种情况。应用程序可忽略新字段,以保持与事件结构的新次要版本的新次要版本的兼容。

如果 CloudTrail 引入了新的事件类型,但事件的结构未改变,则事件版本不会更改。

为了确保您的应用程序可以解析事件结构,我们建议您对主要版本号进行相等比较。为了确保您的应用程序所期望的字段存在,我们还建议对次要版本进行大于或等于比较。次要版本中没有前导零。您可以解释major_versionminor_version作为数字,并执行比较操作。

从: 1.0

可选: False

userIdentity

有关发出请求的用户的信息。有关更多信息,请参阅CloudTrail userIdentity 元素

从: 1.0

可选: False

eventSource

已将请求发出到的服务。此名称通常为服务名称的简短形式,不含空格但会加上 .amazonaws.com。例如:

  • AWS CloudFormationcloudformation.amazonaws.com

  • Amazon EC2 为ec2.amazonaws.com

  • Amazon Simple Workflow Service 为swf.amazonaws.com

此约定存在某些例外情况。例如,eventSourceAmazon 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 名称。

从: 1.0

可选: False

userAgent

通过其发送请求的代理,如 AWS 管理控制台、AWS 服务、AWS 开发工具包或 AWS CLI。此字段的最大大小为 1 KB;超过该限制的内容将被截断。以下是值示例:

  • signin.amazonaws.com— 请求由 IAM 用户通过 AWS 管理控制台发出。

  • console.amazonaws.com — 请求由根用户通过 AWS 管理控制台发出。

  • lambda.amazonaws.com— 已使用 AWS Lambda 发出请求。

  • aws-sdk-java— 已使用 AWS SDK for Java 发出请求。

  • aws-sdk-ruby— 已使用适用于 Ruby 的 AWS 开发工具包发出请求。

  • aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5— 已使用 Linux 上安装的 AWS CLI 发出请求。

注意

对于 AWS 发起的事件,此字段通常为AWS Internal/#,其中,#是供内部使用的编号。

从: 1.0

可选: False

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

可做出更改的操作(创建、更新或删除操作)的响应元素。如果某个操作不更改状态(例如,用于获取或列出对象的请求),则忽略此元素。这些操作记录在相应 AWS 服务的 API 参考文档中。此字段的最大大小为 100 KB;超过该限制的内容将被截断。

这些区域有:responseElements值可帮助您跟踪 AWS Support 的请求。二者x-amz-request-idx-amz-id-2包含帮助您跟踪 AWS Support 请求的信息。这些值与服务为响应您启动事件的请求而返回的值相同,因此您可以使用这些值将事件与请求匹配。

从: 1.0

可选: False

additionalEventData

不是请求或响应一部分的关于事件的其他数据。此字段的最大大小为 28 KB;超过该限制的内容将被截断。

eventVersion1.00 开始支持此字段。

从: 1.0

可选: True

requestID

用于标识请求的值。所调用的服务生成此值。此字段的最大大小为 1 KB;超过该限制的内容将被截断。

eventVersion1.01 开始支持此字段。

从: 1.01

可选: False

eventID

CloudTrail 生成的 GUID,以唯一标识每个事件。您可以使用此值来标识单个事件。例如,您可以将此 ID 用作主键来从可搜索的数据库中检索日志数据。

从: 1.01

可选: False

eventType

标识生了成事件记录的事件的类型。它可以是以下值之一:

  • AwsApiCall - 调用了一个 API。

  • AwsServiceEvent— 服务生成了与跟踪相关的事件。例如,如果另一个账户使用您拥有的资源发起调用,则可能出现这种情况。

  • AwsConsoleAction— 在控制台中执行的操作不是 API 调用。

  • AwsConsoleSignIn-您账户 (根、IAM、联合身份、SAML 或 SwitchRole) 中的用户登录了 AWS 管理控制台。

从: 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字段中,请参阅CloudTrail 日志文件中的 AWS STS API 事件中的IAM 用户指南或者记录 AWS KMS API 调用中的AWS Key Management Service 开发人员指南

从: 1.01

可选: True

recipientAccountId

表示已收到此事件的账户 ID。recipientAccountID 可能与 CloudTrail userIdentity 元素 accountId 不同。此情况会在跨账户资源访问中发生。例如,如果一个单独的账户已使用 KMS 密钥(也称为客户主密钥 (CMK))调用 Encrypt API,则已传输到发起调用的账户的事件的 accountIdrecipientAccountID 值将相同,而已传输到拥有 CMK 的账户的事件的这两个值不相同。

从: 1.02

可选: True

serviceEventDetails

确定服务事件,包括触发活动的原因和结果。有关更多信息,请参阅AWS 服务事件。此字段的最大大小为 100 KB;超过该限制的内容将被截断。

从: 1.05

可选: True

sharedEventID

CloudTrail 生成的 GUID,用于唯一地标识来自发送到不同 AWS 账户的相同 AWS 操作的 CloudTrail 事件。

例如,当帐户使用 KMS 密钥(也称为客户主密钥 (CMK),它属于另一个账户,使用 CMK 的账户和拥有 CMK 的账户接收不同的 CloudTrail 事件。为此 AWS 操作提供的每个 CloudTrail 事件共享相同的sharedEventID,但也有一个独特的eventIDrecipientAccountID

有关更多信息,请参阅sharedEventID 示例

注意

这些区域有:sharedEventID字段仅在向多个账户提交 CloudTrail 事件时存在。如果调用方和所有者是同一 AWS 账户,CloudTrail 仅发送一个事件,并且sharedEventID字段不显示。

从: 1.03

可选: True

vpcEndpointId

确定从 VPC 向另一个服务发送请求的 VPC 终端节点,如。

从: 1.04

可选项: True

eventCategory

显示 LookupEvents 调用中使用的事件类别。

  • 对于管理事件,值为Management

  • 对于数据事件,值为Data

  • 对于见解事件,值为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 管理控制台会话。此字段不会显示,除非该值为true,这意味着用于进行 API 调用的客户端是代理或外部客户端。如果使用了代理客户端,则tlsDetails事件字段不显示。

从: 1.08

可选项: True

edgeDeviceDetails

显示有关作为请求目标的边缘设备的信息。目前,S3 Outposts设备事件包括此字段。此字段的最大大小为 28 KB;超过该限制的内容将被截断。

从: 1.08

可选项: True

tlsDetails

显示有关服务 API 调用的客户端提供的主机名的传输层安全性 (TLS) 版本、密码套件和 FQDN 的信息。内容如下。如果预期信息丢失或为空,CloudTrail 仍会记录部分 TLS 详细信息。例如,如果 TLS 版本和密码套件存在,但HOST标头为空,则可用 TLS 详细信息仍会记录在 CloudTrail 事件中。

如果sessionCredentialFromConsole的值为truetlsDetails仅当使用外部客户端进行 API 调用时,才会存在事件记录中。

  • tlsVersion-请求的 TLS 版本。

  • cipherSuite-请求的密码套件(使用的安全算法的组合)。

  • clientProvidedHostHeader-发出请求的客户端的 FQDN。

从: 1.08

可选项: True

见解事件记录字段

以下是见解事件的 JSON 结构中显示的属性,这些属性与管理或数据事件中的属性不同。

sharedEventId

AsharedEventID的 CloudTrail 见解事件不同于sharedEventID,了解 CloudTrail 事件的管理和数据类型。在见解事件中,sharedEventID是由 CloudTrail 见解生成的 GUID,用于唯一标识见解事件。sharedEventID在开始和结束见解事件之间是通用的,有助于将两个事件联系起来以唯一地标识异常活动。您可以将 sharedEventID 视为整体见解事件 ID。

从: 1.07

可选项: False

insightDetails

仅限见解事件。显示有关见解事件的基础触发器的信息,如事件源、用户代理、统计信息、API 名称,以及该事件是见解事件的开始还是结束。有关的更多信息insightDetails块,请参阅CloudTrail 见解insightDetails元素

从: 1.07

可选项: False