

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

# 使用记录 X-Ray API 调用 Amazon CloudTrail
CloudTrail

Amazon X-Ray 与[Amazon CloudTrail](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)一项服务集成，该服务提供用户、角色或角色所执行操作的记录 Amazon Web Services 服务。 CloudTrail 将 X-Ray 的所有 API 调用捕获为事件。捕获的调用包括来自 X-Ray 控制台的调用和对 X-Ray API 操作的代码调用。使用收集的信息 CloudTrail，您可以确定向 X-Ray 发出的请求、发出请求的 IP 地址、发出请求的时间以及其他详细信息。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容：
+ 请求是使用根用户凭证还是用户凭证发出的。
+ 请求是否代表 IAM Identity Center 用户发出。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 Amazon Web Services 服务发出。

CloudTrail 在您创建账户 Amazon Web Services 账户 时在您的账户中处于活动状态，并且您自动可以访问 CloudTrail **活动历史记录**。 CloudTrail **事件历史记录**提供了过去 90 天中记录的管理事件的可查看、可搜索、可下载且不可变的记录。 Amazon Web Services 区域有关更多信息，请参阅《*Amazon CloudTrail 用户指南》*中的 “[使用 CloudTrail 事件历史记录](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/view-cloudtrail-events.html)”。查看**活动历史记录**不 CloudTrail收取任何费用。

要持续记录 Amazon Web Services 账户 过去 90 天内的事件，请创建跟踪或 [CloudTrailLake](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-lake.html) 事件数据存储。

**CloudTrail 步道**  
*跟踪*允许 CloudTrail 将日志文件传输到 Amazon S3 存储桶。使用创建的所有跟踪 Amazon Web Services 管理控制台 都是多区域的。您可以通过使用 Amazon CLI创建单区域或多区域跟踪。建议创建多区域跟踪，因为您可以捕获账户 Amazon Web Services 区域 中的所有活动。如果您创建单区域跟踪，则只能查看跟踪的 Amazon Web Services 区域中记录的事件。有关跟踪的更多信息，请参阅《Amazon CloudTrail 用户指南》**中的[为您的 Amazon Web Services 账户创建跟踪](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)和[为组织创建跟踪](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/creating-trail-organization.html)。  
通过创建跟踪，您可以免费将正在进行的管理事件的一份副本传送到您的 Amazon S3 存储桶，但会收取 Amazon S3 存储费用。 CloudTrail 有关 CloudTrail 定价的更多信息，请参阅[Amazon CloudTrail 定价](https://www.amazonaws.cn/cloudtrail/pricing/)。有关 Amazon S3 定价的信息，请参阅 [Amazon S3 定价](https://www.amazonaws.cn/s3/pricing/)。

**CloudTrail 湖泊事件数据存储**  
CloudTrail L@@ *ak* e 允许你对自己的事件运行基于 SQL 的查询。 CloudTrail Lake 将基于行的 JSON 格式的现有事件转换为 [Apache ORC](https://orc.apache.org/) 格式。ORC 是一种针对快速检索数据进行优化的列式存储格式。事件将被聚合到*事件数据存储*中，它是基于您通过应用[高级事件选择器](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)选择的条件的不可变的事件集合。应用于事件数据存储的选择器用于控制哪些事件持续存在并可供您查询。有关 CloudTrail Lake 的更多信息，[请参阅*Amazon CloudTrail 用户指南*中的使用 Amazon CloudTrail Lake](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-lake.html)。  
CloudTrail 湖泊事件数据存储和查询会产生费用。创建事件数据存储时，您可以选择要用于事件数据存储的[定价选项](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)。定价选项决定了摄取和存储事件的成本，以及事件数据存储的默认和最长保留期。有关 CloudTrail 定价的更多信息，请参阅[Amazon CloudTrail 定价](https://www.amazonaws.cn/cloudtrail/pricing/)。

**Topics**
+ [

## 中的 X-Ray 管理事件 CloudTrail
](#xray-api-cloudtrail-mgmt)
+ [

## 中的 X-Ray 数据事件 CloudTrail
](#cloudtrail-data-events)
+ [

## X-Ray 事件示例
](#xray-cloudtrail-examples)

## 中的 X-Ray 管理事件 CloudTrail


Amazon X-Ray 与集成 Amazon CloudTrail 以记录用户、角色或用户 Amazon Web Services 服务 在 X-Ray 中执行的 API 操作。您可以使用 CloudTrail 实时监控 X-Ray API 请求并将日志存储在 Amazon S3、亚马逊 CloudWatch 日志和亚马逊 CloudWatch 事件中。X-Ray 支持将以下操作作为事件 CloudTrail 记录在日志文件中：

**支持的 API 操作**
+ [https://docs.amazonaws.cn/xray/latest/api/API_PutEncryptionConfig.html](https://docs.amazonaws.cn/xray/latest/api/API_PutEncryptionConfig.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetEncryptionConfig.html](https://docs.amazonaws.cn/xray/latest/api/API_GetEncryptionConfig.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_CreateGroup.html](https://docs.amazonaws.cn/xray/latest/api/API_CreateGroup.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_UpdateGroup.html](https://docs.amazonaws.cn/xray/latest/api/API_UpdateGroup.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_DeleteGroup.html](https://docs.amazonaws.cn/xray/latest/api/API_DeleteGroup.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetGroup.html](https://docs.amazonaws.cn/xray/latest/api/API_GetGroup.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetGroups.html](https://docs.amazonaws.cn/xray/latest/api/API_GetGroups.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetInsight.html](https://docs.amazonaws.cn/xray/latest/api/API_GetInsight.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetInsightEvents.html](https://docs.amazonaws.cn/xray/latest/api/API_GetInsightEvents.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetInsightImpactGraph.html](https://docs.amazonaws.cn/xray/latest/api/API_GetInsightImpactGraph.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetInsightSummaries.html](https://docs.amazonaws.cn/xray/latest/api/API_GetInsightSummaries.html)
+ [https://docs.amazonaws.cn/xray/latest/api/API_GetSamplingStatisticSummaries.html](https://docs.amazonaws.cn/xray/latest/api/API_GetSamplingStatisticSummaries.html)

## 中的 X-Ray 数据事件 CloudTrail


[数据事件](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events)提供有关在资源上或在资源内执行的资源操作的信息（例如 [https://docs.amazonaws.cn/xray/latest/api/API_PutTraceSegments.html](https://docs.amazonaws.cn/xray/latest/api/API_PutTraceSegments.html)，可将分段文档上传到 X-Ray）。

这些也称为数据面板操作。数据事件通常是高容量活动。默认情况下， CloudTrail 不记录数据事件。 CloudTrail **事件历史**记录不记录数据事件。

记录数据事件将收取额外费用。有关 CloudTrail 定价的更多信息，请参阅[Amazon CloudTrail 定价](https://www.amazonaws.cn/cloudtrail/pricing/)。

您可以使用 CloudTrail 控制台、 Amazon CLI或 CloudTrail API 操作记录 X-Ray 资源类型的数据事件。有关如何记录数据事件的更多信息，请参阅《Amazon CloudTrail 用户指南》**中的[使用 Amazon Web Services 管理控制台记录数据事件](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console)和[使用 Amazon Command Line Interface记录数据事件](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI)。

下表列出了您可以为其记录数据事件的 X-Ray 资源类型。**数据事件类型（控制台）**列显示要从控制 CloudTrail 台上的**数据事件类型**列表中选择的值。res **ources.type 值**列显示该`resources.type`值，您将在使用或配置高级事件选择器时指定该值。 Amazon CLI CloudTrail APIs“** APIs 记录到的数据 CloudTrail**” 列显示了 CloudTrail 针对该资源类型记录的 API 调用。


| 数据事件类型（控制台） | resources.type 值 | 数据 APIs 已记录到 CloudTrail | 
| --- | --- | --- | 
| X-Ray 跟踪 |  AWS::XRay::Trace  |  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/xray/latest/devguide/xray-api-cloudtrail.html)  | 

您可以将高级事件选择器配置为在 `eventName` 和 `readOnly` 字段上进行筛选，从而仅记录那些对您很重要的事件。但是，您无法通过添加`resources.ARN`字段选择器来选择事件，因为 X-Ray 轨迹没有 ARNs。有关这些字段的更多信息，请参阅《Amazon CloudTrail API 参考》**中的 [https://docs.amazonaws.cn/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.amazonaws.cn/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)。以下是如何运行[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/put-event-selectors.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/put-event-selectors.html) Amazon CLI 命令以记录 CloudTrail 跟踪上的数据事件的示例。您必须在其中运行命令或指定创建跟踪的区域；否则，该操作将返回 `InvalidHomeRegionException` 异常。

```
aws cloudtrail put-event-selectors --trail-name myTrail --advanced-event-selectors \
'{
   "AdvancedEventSelectors": [ 
      {
         "FieldSelectors": [
            { "Field": "eventCategory", "Equals": ["Data"] },
            { "Field": "resources.type", "Equals": ["AWS::XRay::Trace"] },
            { "Field": "eventName", "Equals": ["PutTraceSegments","GetSamplingTargets"] }
         ],
         "Name": "Log X-Ray PutTraceSegments and GetSamplingTargets data events"
      }
   ]
}'
```

## X-Ray 事件示例


### 管理事件示例 `GetEncryptionConfig`


以下是中 X-Ray GetEncryptionConfig 日志条目的示例 CloudTrail。

**Example**  

```
{
    "eventVersion"=>"1.05",
    "userIdentity"=>{
        "type"=>"AssumedRole",
        "principalId"=>"AROAJVHBZWD3DN6CI2MHM:MyName",
        "arn"=>"arn:aws:sts::123456789012:assumed-role/MyRole/MyName",
        "accountId"=>"123456789012",
        "accessKeyId"=>"AKIAIOSFODNN7EXAMPLE",
        "sessionContext"=>{
            "attributes"=>{
                "mfaAuthenticated"=>"false",
                "creationDate"=>"2023-7-01T00:24:36Z"
            },
            "sessionIssuer"=>{
                "type"=>"Role",
                "principalId"=>"AROAJVHBZWD3DN6CI2MHM",
                "arn"=>"arn:aws:iam::123456789012:role/MyRole",
                "accountId"=>"123456789012",
                "userName"=>"MyRole"
            }
        }
    },
    "eventTime"=>"2023-7-01T00:24:36Z",
    "eventSource"=>"xray.amazonaws.com",
    "eventName"=>"GetEncryptionConfig",
    "awsRegion"=>"us-east-2",
    "sourceIPAddress"=>"33.255.33.255",
    "userAgent"=>"aws-sdk-ruby2/2.11.19 ruby/2.3.1 x86_64-linux",
    "requestParameters"=>nil,
    "responseElements"=>nil,
    "requestID"=>"3fda699a-32e7-4c20-37af-edc2be5acbdb",
    "eventID"=>"039c3d45-6baa-11e3-2f3e-e5a036343c9f",
    "eventType"=>"AwsApiCall",
    "recipientAccountId"=>"123456789012"
}
```

### 数据事件示例 `PutTraceSegments`


以下是中 X-Ray PutTraceSegments 数据事件日志条目的示例 CloudTrail。

**Example**  

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAWYXPW54Y4NEXAMPLE:i-0dzz2ac111c83zz0z",
    "arn": "arn:aws:sts::012345678910:assumed-role/my-service-role/i-0dzz2ac111c83zz0z",
    "accountId": "012345678910",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAWYXPW54Y4NEXAMPLE",
        "arn": "arn:aws:iam::012345678910:role/service-role/my-service-role",
        "accountId": "012345678910",
        "userName": "my-service-role"
      },
      "attributes": {
        "creationDate": "2024-01-22T17:34:11Z",
        "mfaAuthenticated": "false"
      },
      "ec2RoleDelivery": "2.0"
    }
  },
  "eventTime": "2024-01-22T18:22:05Z",
  "eventSource": "xray.amazonaws.com",
  "eventName": "PutTraceSegments",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "198.51.100.0",
  "userAgent": "aws-sdk-ruby3/3.190.0 md/internal ua/2.0 api/xray#1.0.0 os/linux md/x86_64 lang/ruby#2.7.8 md/2.7.8 cfg/retry-mode#legacy",
  "requestParameters": {
    "traceSegmentDocuments": [
      "trace_id:1-00zzz24z-EXAMPLE4f4e41754c77d0000",
      "trace_id:1-00zzz24z-EXAMPLE4f4e41754c77d0000",
      "trace_id:1-00zzz24z-EXAMPLE4f4e41754c77d0001",
      "trace_id:1-00zzz24z-EXAMPLE4f4e41754c77d0002"
    ]
  },
  "responseElements": {
    "unprocessedTraceSegments": []
  },
  "requestID": "5zzzzz64-acbd-46ff-z544-451a3ebcb2f8",
  "eventID": "4zz51z7z-77f9-44zz-9bd7-6c8327740f2e",
  "readOnly": false,
  "resources": [
    {
      "type": "AWS::XRay::Trace"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "recipientAccountId": "012345678910",
  "eventCategory": "Data",
  "tlsDetails": {
    "tlsVersion": "TLSv1.2",
    "cipherSuite": "ZZZZZ-RSA-AAA128-GCM-SHA256",
    "clientProvidedHostHeader": "example.us-west-2.xray.cloudwatch.aws.dev"
  }
}
```