CloudTrail 录制内容 - AWS CloudTrail

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

CloudTrail 录制内容

记录的正文包含若干字段,可帮助您确定所请求的操作以及在何时何地发出请求。当 Op ti on al 的值为 True 时,该字段仅在适用于服务或事件类型时才会出现。API可为 False 表示该字段要么始终存在,要么其存在与服务API、或事件类型无关。示例是 responseElements,它存在于可做出更改的操作(创建、更新或删除操作)的事件中。

eventTime

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

Since (自从):1.0

Optional (可选):False

eventVersion

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

eventVersion值是表单中的主要版本和次要版本major_versionminor_version。例如,您可获得 1.10eventVersion 值,其中 1 是主要版本,10 是次要版本。

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

如果 CloudTrail 引入了新的事件类型,但事件的结构在其他方面保持不变,则事件版本不会改变。

为确保您的应用程序能够解析事件结构,我们建议您对主要版本号执行等于比较。为确保您的应用程序预期的字段存在,我们还建议对次 greater-than-or-equal要版本进行-to 比较。次要版本中没有前导零。您可以将major_version和解释minor_version为数字,并执行比较操作。

Since (自从):1.0

Optional (可选):False

userIdentity

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

Since (自从):1.0

Optional (可选):False

eventSource

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

  • AWS CloudFormation 是cloudformation.amazonaws.com

  • 亚马逊EC2是ec2.amazonaws.com

  • Amazon Simple Workflow Service 是 swf.amazonaws.com

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

Since (自从):1.0

Optional (可选):False

eventName

请求的操作,即该API服务的操作之一。

Since (自从):1.0

Optional (可选):False

awsRegion

向 AWS 区域 其发出请求的,例如us-east-2。请参阅 CloudTrail 支持的区域

Since (自从):1.0

Optional (可选):False

sourceIPAddress

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

注意

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

Since (自从):1.0

Optional (可选):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/#,其中 # 是用于内部目的的数字。

Since (自从):1.0

Optional (可选):True

errorCode

如果请求返回错误,则表示 AWS 服务错误。有关显示此字段的示例,请参阅 示例错误代码及留言记录。此字段的最大大小为 1 KB;超过该限制的内容将被截断。

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

Since (自从):1.0

Optional (可选):True

errorMessage

如果请求返回一个错误,则为该错误的描述。此消息包括授权失败的消息。 CloudTrail 捕获服务在其异常处理中记录的消息。有关示例,请参阅示例错误代码及留言记录。此字段的最大大小为 1 KB;超过该限制的内容将被截断。

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

注意

某些 AWS 服务在活动中提供errorCodeerrorMessage作为顶级字段。其他 AWS 服务在 responseElements 中提供错误信息。

Since (自从):1.0

Optional (可选):True

requestParameters

与请求一起发送的参数(如果有)。这些参数记录在相应 AWS 服务的API参考文档中。此字段的最大大小为 100 KB。当字段大小超过 100 KB 时,将省略requestParameters内容。

Since (自从):1.0

Optional (可选):False

responseElements

可做出更改的操作(创建、更新或删除操作)的响应元素(如果有)。如果操作不返回响应元素,则此字段是 null。如果某个操作不更改状态(例如,用于获取或列出对象的请求),则忽略此元素。操作的响应元素记录在API参考资料中 相应文档 AWS 服务。此字段的最大大小为 100 KB。当字段大小超过 100 KB 时,将省略reponseElements内容。

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

Since (自从):1.0

Optional (可选):False

additionalEventData

不是请求或响应一部分的关于事件的其他数据。此字段的最大大小为 28 KB。当字段大小超过 28 KB 时,将省略additionalEventData内容。

的内容additionalEventData是可变的。例如,对于AWS Management Console 登录事件Yes如果请求是由根IAM用户或用户使用多重身份验证 () MFA 发出的,则additionalEventData可以包含值为的MFAUsed字段。

Since (自从):1.0

Optional (可选):True

requestID

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

Since (自从):1.01

Optional (可选):True

eventID

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

Since (自从):1.01

Optional (可选):False

eventType

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

  • AwsApiCall— API 有人打电话了。

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

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

  • AwsConsoleSignIn— 您的账户(root IAM、federati SAML on 或 SwitchRole)中的用户登录了 AWS Management Console。

  • AwsCloudTrailInsight— 如果启用了 Insights 事件,则在 CloudTrail 检测到异常操作活动(例如资源配置峰值或突发 AWS Identity and Access Management (IAM) 操作)时 CloudTrail 生成 Insights 事件。

    AwsCloudTrailInsight 事件使用以下字段:

    • eventName

    • eventSource

    • sourceIPAddress

    • userAgent

    • userIdentity

  • AwsVpceEvents— CloudTrail 网络活动事件(预览版)使VPC端点所有者能够记录使用其VPC终端节点进行的从私有VPC到的 AWS API呼叫 AWS 服务。要记录网络活动事件,VPC端点所有者必须为事件源启用网络活动事件。

Since (自从):1.02

Optional (可选):False

apiVersion

标识与该AwsApiCalleventType值关联的API版本。

Since (自从):1.01

Optional (可选):True

managementEvent

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

  • AwsApiCall

  • AwsConsoleAction

  • AwsConsoleSignIn

  • AwsServiceEvent

Since (自从):1.06

Optional (可选):True

readOnly

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

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

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

Since (自从):1.01

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

Since (自从):1.01

Optional (可选):True

recipientAccountId

表示已收到此事件的账户 ID。recipientAccountID 可能与 CloudTrail userIdentity 元素 accountId 不同。此情况会在跨账户资源访问中发生。例如,如果一个单独的账户使用一个KMSAWS KMS key密钥(也称为)来调用 E n cryptAPI,则发送给发出调用的账户的事件的accountIdrecipientAccountID值将相同,但是对于传送到拥有该KMS密钥的账户的事件,其值将有所不同。

Since (自从):1.02

Optional (可选):True

serviceEventDetails

确定服务事件,包括触发活动的原因和结果。有关更多信息,请参阅 AWS 服务 事件。此字段的最大大小为 100 KB。当字段大小超过 100 KB 时,将省略serviceEventDetails内容。

Since (自从):1.05

Optional (可选):True

sharedEventID

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

例如,当一个账户使用属于另一个账户的时,使用该KMS密钥的账户和拥有该密KMS钥的账户会收到针对同一操作的单独 CloudTrail 事件。AWS KMS key为此 AWS 动作交付的每个 CloudTrail 事件都有相同的共同sharedEventID点, 但也有一个独特eventIDrecipientAccountID.

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

注意

仅当 CloudTrail 事件传送到多个账户时,该sharedEventID字段才会出现。如果调用方和所有者是同一 AWS 账户, CloudTrail 只发送一个事件,并且不会存在 sharedEventID 字段。

Since (自从):1.03

Optional (可选):True

vpcEndpointId

标识从一个VPC向其他 AWS 服务(例如 Amazon)发出请求的VPC终端节点EC2。

Since (自从):1.04

Optional (可选):True

vpcEndpointAccountId

标识请求已遍历的相应VPC终端节点的终端节点所有者的 AWS 账户 ID。

从:1.09

Optional (可选):True

eventCategory

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

  • 对于管理事件,值为 Management

  • 对于数据事件,值为 Data

  • 对于 Insights 事件,值为 Insight

  • 对于网络活动事件,值为 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

显示事件是否源于会 AWS Management Console 话。除非值为,否则不会显示此字段true,这意味着用于进行API呼叫的客户端要么是代理客户端,要么是外部客户端。如果使用了代理客户端,则不显示 tlsDetails 事件字段。

从:1.08

Optional (可选):True

edgeDeviceDetails

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

从:1.08

Optional (可选):True

tlsDetails

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

  • tlsVersion-请求的TLS版本。

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

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

注意

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

  • 如果呼叫是由代表您API拨打的,则 AWS 服务 该tlsDetails字段不存在。userIdentity元素中的invokedBy字段标识 AWS 服务 了API拨打电话的人。

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

从:1.08

Optional (可选):True

Insights 事件的记录字段

以下是 Insights 事件JSON结构中显示的不同于管理事件或数据事件的属性。

sharedEventId

A sharedEventID fo CloudTrail r Insights 事件不同于 CloudTrail事件的管理和数据类型。sharedEventID在 Insights 事件中GUID,a sharedEventID 是由 CloudTrail Insights 生成的,用于唯一标识 Insights 事件。 sharedEventID在 Insights 事件开始和结束 Insights 事件之间很常见,它有助于将两个事件联系起来,以唯一的方式识别异常活动。您可以将 sharedEventID 视为整体 Insights 事件 ID。

从:1.07

Optional (可选):False

insightDetails

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

从:1.07

Optional (可选):False

示例 sharedEvent ID

以下示例描述了如何为同一个操作 CloudTrail 传递两个事件:

  1. Alice 有 AWS 账户 (111111111111) 并创建了一个。 AWS KMS key她是这把KMS钥匙的所有者。

  2. Bob 有 AWS 账户 (222222222222)。爱丽丝允许鲍勃使用KMS密钥。

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

  4. Bob 用KMS钥匙拨打 EncryptAPI.

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

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

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

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

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

CloudTrail Insights IDs 中的共享活动

A sharedEventID fo CloudTrail r Insights 事件不同于 CloudTrail 事件的管理和数据类型。sharedEventID在 Insights 事件中,a sharedEventID GUID 是 CloudTrail Insights 生成的,用于唯一标识 Insights 事件的开始和结束对。 sharedEventID在 Insights 事件的开始和结束之间很常见,它有助于在两个事件之间建立关联,以唯一地识别异常活动。

您可以将 sharedEventID 视为整体 Insights 事件 ID。