本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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_version
。minor_version
。例如,您可获得1.10
的eventVersion
值,其中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 服务在活动中提供
errorCode
和errorMessage
作为顶级字段。其他 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-id
和x-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
-
标识与该
AwsApiCall
eventType
值关联的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,则发送给发出调用的账户的事件的accountId
和recipientAccountID
值将相同,但是对于传送到拥有该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
点, 但也有一个独特eventID
的recipientAccountID
.有关更多信息,请参阅 示例 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,asharedEventID
是由 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 传递两个事件:
-
Alice 有 AWS 账户 (111111111111) 并创建了一个。 AWS KMS key她是这把KMS钥匙的所有者。
-
Bob 有 AWS 账户 (222222222222)。爱丽丝允许鲍勃使用KMS密钥。
-
每个账户都有跟踪和单独的存储桶。
-
Bob 用KMS钥匙拨打
Encrypt
API. -
CloudTrail 发送两个单独的事件。
-
一个事件发送给 Bob。事件显示他使用了KMS钥匙。
-
一个事件发送给 Alice。该事件显示 Bob 使用了KMS密钥。
-
这些事件具有相同的
sharedEventID
,但是eventID
和recipientAccountID
是唯一的。
-
CloudTrail Insights IDs 中的共享活动
A sharedEventID
fo CloudTrail r Insights 事件不同于 CloudTrail 事件的管理和数据类型。sharedEventID
在 Insights 事件中,a sharedEventID
GUID 是 CloudTrail Insights 生成的,用于唯一标识 Insights 事件的开始和结束对。 sharedEventID
在 Insights 事件的开始和结束之间很常见,它有助于在两个事件之间建立关联,以唯一地识别异常活动。
您可以将 sharedEventID
视为整体 Insights 事件 ID。