CloudTrail 记录管理事件、数据事件和网络活动事件的内容 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CloudTrail 记录管理事件、数据事件和网络活动事件的内容

本页介绍管理事件、数据事件或网络活动事件的记录内容。

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

注意

丰富事件的字段(如 eventContext)仅适用于管理事件和数据事件。它们不适用于网络事件。

eventTime

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

Since (自从):1.0

Optional (可选):False

eventVersion

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

eventVersion 值是主要版本和次要版本,格式为 major_version.minor_version。例如,您可获得 1.10eventVersion 值,其中 1 是主要版本,10 是次要版本。

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

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

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

Since (自从):1.0

Optional (可选):False

userIdentity

有关发出请求的 IAM 身份的信息。有关更多信息,请参阅 CloudTrail userIdentity 元素

Since (自从):1.0

Optional (可选):False

eventSource

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

  • Amazon CloudFormationis(cloudformation.amazonaws.com )

  • Amazon EC2 是 ec2.amazonaws.com

  • Amazon Simple Workflow Service 是 swf.amazonaws.com

此约定存在某些例外情况。例如,Amazon CloudWatch 的 eventSourcemonitoring.amazonaws.com

Since (自从):1.0

Optional (可选):False

eventName

请求的操作(服务的 API 中的某个操作)。

Since (自从):1.0

Optional (可选):False

awsRegion

请求发往的 Amazon Web Services 区域 区域,如 us-east-2。请参阅CloudTrail 支持的区域

Since (自从):1.0

Optional (可选):False

sourceIPAddress

已从中发出请求的 IP 地址。对于源自服务控制台的操作,报告的地址针对的是基础客户资源而不是控制台 Web 服务器。对于 Amazon 中的服务,仅显示 DNS 名称。

注意

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

Since (自从):1.0

Optional (可选):False

userAgent

通过其发出请求的代理,例如 Amazon Web Services 管理控制台、Amazon 服务、Amazon 开发工具包或 Amazon CLI。

此字段的最大大小为 1 KB;超过该限制的内容将被截断。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会截断字段内容。

以下是值示例:

  • lambda.amazonaws.com – 请求通过 发出。Amazon Lambda

  • aws-sdk-java – 请求通过 发出。适用于 Java 的 Amazon SDK

  • aws-sdk-ruby – 请求通过 发出。适用于 Ruby 的 Amazon SDK

  • aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5 – 请求通过 Linux 上安装的 Amazon CLI 发出。

注意

对于由 Amazon 发起的事件,如果 CloudTrail 知道哪个 Amazon Web Services 服务 进行了调用,则此字段是调用服务的事件源(例如 ec2.amazonaws.com)。否则,此字段为 AWS Internal/#,其中 # 是用于内部目的的数字。

Since (自从):1.0

Optional (可选):True

errorCode

如果请求返回错误,则为 Amazon 服务错误。有关显示此字段的示例,请参阅 示例错误代码及留言记录

此字段的最大大小为 1 KB;超过该限制的内容将被截断。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会截断字段内容。

对于网络活动事件,当存在 VPC 端点策略违规行为时,错误代码为 VpceAccessDenied

Since (自从):1.0

Optional (可选):True

errorMessage

如果请求返回一个错误,则为该错误的描述。此消息包含授权失败的消息。CloudTrail 将在其异常处理中捕获服务所记录的消息。有关示例,请参阅示例错误代码及留言记录

此字段的最大大小为 1 KB;超过该限制的内容将被截断。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会截断字段内容。

对于网络活动事件,当存在 VPC 端点策略违规行为时,errorMessage 将始终显示以下消息:The request was denied due to a VPC endpoint policy。有关因违反 VPC 端点策略而导致的访问被拒绝事件的更多信息,请参阅《IAM 用户指南》中的拒绝访问错误消息示例。有关显示 VPC 端点策略违规的网络活动事件示例,请参阅本指南中的网络活动事件

注意

某些 Amazon 服务将 errorCodeerrorMessage 作为事件中的顶级字段提供。其他 Amazon 服务在 responseElements 中提供错误信息。

Since (自从):1.0

Optional (可选):True

requestParameters

与请求一起发送的参数(如果有)。这些参数记录在相应 Amazon 服务的 API 参考文档中。此字段的最大大小为 100 KB。当字段大小超过 100 KB 时,将省略 requestParameters 内容。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会省略字段内容。

Since (自从):1.0

Optional (可选):False

responseElements

可做出更改的操作(创建、更新或删除操作)的响应元素(如果有)。对于 readOnly API,此字段为 null。如果操作不返回响应元素,则此字段是 null。操作的响应元素记录在相应 Amazon Web Services 服务 的 API 参考文档中。

此字段的最大大小为 100 KB。当字段大小超过 100 KB 时,将省略 reponseElements 内容。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会省略字段内容。

responseElements 值对帮助您使用 Amazon Web Services 支持 跟踪请求很有用。x-amz-request-idx-amz-id-2 包含的信息都可帮助您使用 Amazon Web Services 支持 跟踪请求。这些值与为响应启动事件的请求而返回的服务值相同,因此您可以使用这些值匹配事件与请求。

Since (自从):1.0

Optional (可选):False

additionalEventData

不是请求或响应一部分的关于事件的其他数据。此字段的最大大小为 28 KB。当字段大小超过 28 KB 时,将省略 additionalEventData 内容。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会省略字段内容。

additionalEventData 的内容是可变的。例如,对于 Amazon Web Services 管理控制台 登录事件,如果请求是由根用户或 IAM 用户使用多重身份验证 (MFA) 发出的,则 additionalEventData 可以包含值为 YesMFAUsed 字段。

Since (自从):1.0

Optional (可选):True

requestID

用于标识请求的值。所调用的服务生成此值。此字段的最大大小为 1 KB;超过该限制的内容将被截断。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会截断字段内容。

Since (自从):1.01

Optional (可选):True

eventID

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

Since (自从):1.01

Optional (可选):False

eventType

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

  • AwsApiCall - 调用了一个 API。

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

  • AwsConsoleAction – 在控制台中执行了一个非 API 调用的操作。

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

  • AwsVpceEvents – CloudTrail 网络活动事件使 VPC 端点所有者能够记录使用其 VPC 端点进行的从私有 VPC 到 Amazon Web Services 服务 的 Amazon API 调用。要记录网络活动事件,VPC 端点所有者必须为事件源启用网络活动事件。

Since (自从):1.02

Optional (可选):False

apiVersion

标识与 AwsApiCall eventType 值关联的 API 版本。

Since (自从):1.01

Optional (可选):True

managementEvent

一个布尔值,标识该事件是否为管理事件。如果 managementEvent 为 1.06 或更高,则事件记录中将显示 eventVersion,并且事件类型为以下值之一:

  • AwsApiCall

  • AwsConsoleAction

  • AwsConsoleSignIn

  • AwsServiceEvent

Since (自从):1.06

Optional (可选):True

readOnly

标识此操作是否为只读操作。它可以是以下值之一:

  • true – 操作为只读操作(例如,DescribeTrails)。

  • false – 操作为只写操作(例如,DeleteTrail)。

Since (自从):1.01

Optional (可选):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 日志文件中的 Amazon STS API 事件Amazon Key Management Service 开发人员指南中的记录 Amazon KMS API 调用

Since (自从):1.01

Optional (可选):True

recipientAccountId

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

Since (自从):1.02

Optional (可选):True

serviceEventDetails

确定服务事件,包括触发活动的原因和结果。有关更多信息,请参阅 Amazon Web Services 服务 事件。此字段的最大大小为 100 KB。当字段大小超过 100 KB 时,将省略 serviceEventDetails 内容。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会省略字段内容。

Since (自从):1.05

Optional (可选):True

sharedEventID

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

例如,当账户使用属于其他账户的 Amazon KMS key 时,对于相同的操作,使用 KMS 密钥的账户和拥有 KMS 密钥的账户接收不同的 CloudTrail 事件。为此 Amazon 操作提交的每一个 CloudTrail 事件都共享相同的 sharedEventID,但也有唯一的 eventIDrecipientAccountID

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

注意

仅当向多个账户提交 CloudTrail 事件时,才会存在 sharedEventID 字段。如果调用方和所有者是同一 Amazon 账户,CloudTrail 只发送一个事件,并且不会存在 sharedEventID 字段。

Since (自从):1.03

Optional (可选):True

vpcEndpointId

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

注意

对于由 Amazon 和通过 Amazon Web Services 服务 的 VPC 发起的事件,此字段通常是 AWS Internal 或服务名称。

Since (自从):1.04

Optional (可选):True

vpcEndpointAccountId

标识请求已遍历的相应端点的 VPC 端点所有者的 Amazon Web Services 账户 ID。

注意

对于由 Amazon 和通过 Amazon Web Services 服务 的 VPC 发起的事件,此字段通常是 AWS Internal 或服务名称。

从:1.09

Optional (可选):True

eventCategory

显示事件类别。该事件类别在 LookupEvents 调用中用于筛选管理事件。

  • 对于管理事件,值为 Management

  • 对于数据事件,值为 Data

  • 对于网络活动事件,值为 NetworkActivity

从:1.07

Optional (可选):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

Optional (可选):True

sessionCredentialFromConsole

值为 truefalse 的字符串,显示事件是否源自 Amazon Web Services 管理控制台 会话。此字段不会显示出来,除非该值为 true,这意味着用于进行 API 调用的客户端是代理或外部客户端。如果使用了代理客户端,则不显示 tlsDetails 事件字段。

从:1.08

Optional (可选):True

eventContext

此字段存在于为配置为包含资源标签键或 IAM 全局条件键的事件存储记录的丰富事件中。有关更多信息,请参阅 通过添加资源标签键和 IAM 全局条件键来丰富 CloudTrail 事件

内容包括以下信息:

  • requestContext – 包含有关在授权过程中评估的 IAM 全局条件键的信息,包括有关主体、会话、网络和请求本身的更多详细信息。

  • tagContext – 包括与 API 调用中涉及的资源关联的标签,以及与 IAM 主体(例如角色或用户)关联的标签。有关更多信息,请参阅控制 IAM 主体进行的访问

    与已删除资源相关的 API 事件将没有资源标签。

注意

eventContext 字段仅存在于配置为包含资源标签键和 IAM 全局条件键的事件数据存储的事件中。传输到事件历史记录、Amazon EventBridge 且可使用 Amazon CLI lookup-events 命令查看的事件将不包括 eventContext 字段。

从:1.11

Optional (可选):True

edgeDeviceDetails

显示有关作为请求目标的边缘设备的信息。目前,S3 Outposts 设备事件包括此字段。此字段的最大大小为 28 KB;超过该限制的内容将被截断。对于配置为最大事件大小为 1 MB 的事件数据存储,仅当事件有效载荷超过 1 MB 且超过最大字段大小时,才会截断字段内容。

从:1.08

Optional (可选):True

tlsDetails

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

  • tlsVersion - 请求的 TLS 版本。

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

  • clientProvidedHostHeader - 服务 API 调用中使用的客户端提供主机名,通常是服务端点的 FQDN。

注意

在某些情况下,事件记录中不存在 tlsDetails 字段。

  • 如果 API 调用由 Amazon Web Services 服务 代表您进行,则 tlsDetails 字段不存在。userIdentity 元素中的 invokedBy 字段用于标识发出 API 调用的 Amazon Web Services 服务。

  • 如果 sessionCredentialFromConsole 存在且值为 true,则仅当使用外部客户端进行 API 调用时,tlsDetails 才存在于事件记录中。

从:1.08

Optional (可选):True

最大事件大小为 1 MB 时的字段截断顺序

使用 CloudTrail 控制台Amazon CLI 和 SDK 创建或更新事件数据存储时,您可以将最大事件大小从 256 KB 扩展到 1 MB。

扩展事件大小有助于分析事件和对事件进行故障排除,因为它允许您查看通常会被截断或省略的字段的完整内容。

当事件有效载荷超过 1 MB 时,CloudTrail 会按以下顺序截断字段:

  • annotation

  • requestID

  • additionalEventData

  • serviceEventDetails

  • userAgent

  • errorCode

  • eventContext

  • responseElements

  • requestParameters

  • errorMessage

如果事件有效载荷在截断后仍然无法减少到 1 MB 以下,则会发生错误。

示例 sharedEventID

下面的示例介绍 CloudTrail 如何为相同操作提交两个事件:

  1. Alice 拥有 Amazon 账户 (111111111111,并创建了 Amazon KMS key。她是此 KMS 密钥的所有者。

  2. Bob 有 Amazon 账户 (222222222222)。Alice 向 Bob 提供使用该 KMS 密钥的权限。

  3. 每个账户都有跟踪和单独的存储桶。

  4. Bob 使用该 KMS 密钥来调用 Encrypt API。

  5. CloudTrail 发送两个单独的事件。

    • 一个事件发送给 Bob。该事件显示他使用了该 KMS 密钥。

    • 一个事件发送给 Alice。该事件显示 Bob 使用了该 KMS 密钥。

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

sharedEventID 字段在日志中的显示方式