

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

# 将事件发送到 CloudWatch 日志
<a name="send-cloudtrail-events-to-cloudwatch-logs"></a>

当您将跟踪配置为向 CloudWatch Logs 发送事件时，仅 CloudTrail 发送与您的跟踪设置相匹配的事件。例如，如果您将跟踪配置为仅记录数据事件，则您的跟踪仅将数据事件发送到您的 CloudWatch 日志日志组。 CloudTrail 支持向 CloudWatch 日志发送数据、见解和管理事件。有关更多信息，请参阅 [处理 CloudTrail 日志文件](cloudtrail-working-with-log-files.md)。

**注意**  
只有管理账户才能使用控制台为组织跟踪配置 CloudWatch 日志组。授权的管理员可以使用 Amazon CLI 或 CloudTrail `CreateTrail`或 `UpdateTrail` API 操作配置 CloudWatch 日志组。

要将事件发送到 CloudWatch 日志日志组，请执行以下操作：
+ 请确保您有足够的权限来创建或指定 IAM 角色。有关更多信息，请参阅 [授予在 CloudTrail 控制台上查看和配置 Amazon CloudWatch 日志信息的权限](security_iam_id-based-policy-examples.md#grant-cloudwatch-permissions-for-cloudtrail-users)。
+ 如果您使用配置 CloudWatch 日志日志组 Amazon CLI，请确保您有足够的权限在您指定的 CloudWatch 日志组中创建日志日志流并将 CloudTrail 事件传送到该日志流。有关更多信息，请参阅 [创建策略文档](#send-cloudtrail-events-to-cloudwatch-logs-cli-create-policy-document)。
+ 创建新的跟踪或指定现有的跟踪。有关更多信息，请参阅 [使用控制台创建和更新跟踪](cloudtrail-create-and-update-a-trail-by-using-the-console.md)。
+ 创建一个日志组或指定一个现有日志组。
+ 指定 IAM 角色。如果您要修改用于组织跟踪的现有 IAM 角色，则必须手动更新策略，以允许组织跟踪的日志记录。有关更多信息，请参阅[此策略示例](#policy-cwl-org)和[为组织创建跟踪](creating-trail-organization.md)。
+ 附加一个角色策略或者使用默认角色策略。

**Contents**
+ [使用控制台配置 CloudWatch 日志监控](#send-cloudtrail-events-to-cloudwatch-logs-console)
  + [创建一个日志组或指定一个现有日志组](#send-cloudtrail-events-to-cloudwatch-logs-console-create-log-group)
  + [指定 IAM 角色](#send-cloudtrail-events-to-cloudwatch-logs-console-create-role)
  + [在 CloudWatch 控制台中查看事件](#viewing-events-in-cloudwatch)
+ [使用配置 CloudWatch 日志监控 Amazon CLI](#send-cloudtrail-events-to-cloudwatch-logs-cli)
  + [创建日志组](#send-cloudtrail-events-to-cloudwatch-logs-cli-create-log-group)
  + [创建角色](#send-cloudtrail-events-to-cloudwatch-logs-cli-create-role)
  + [创建策略文档](#send-cloudtrail-events-to-cloudwatch-logs-cli-create-policy-document)
  + [更新跟踪](#send-cloudtrail-events-to-cloudwatch-logs-cli-update-trail)
+ [限制](#send-cloudtrail-events-to-cloudwatch-logs-limitations)

## 使用控制台配置 CloudWatch 日志监控
<a name="send-cloudtrail-events-to-cloudwatch-logs-console"></a>

您可以使用来配置您的跟踪 Amazon Web Services 管理控制台 ，以便将事件发送到 CloudWatch 日志进行监控。

### 创建一个日志组或指定一个现有日志组
<a name="send-cloudtrail-events-to-cloudwatch-logs-console-create-log-group"></a>

CloudTrail 使用 CloudWatch 日志日志组作为日志事件的传输终端节点。可创建一个日志组或者指定一个现有日志组。

**为现有跟踪创建或指定日志组**

1. 请务必使用具有足够权限的管理用户或角色登录，以配置 CloudWatch 日志集成。有关更多信息，请参阅 [授予在 CloudTrail 控制台上查看和配置 Amazon CloudWatch 日志信息的权限](security_iam_id-based-policy-examples.md#grant-cloudwatch-permissions-for-cloudtrail-users)。
**注意**  
只有管理账户才能使用控制台为组织跟踪配置 CloudWatch 日志组。授权的管理员可以使用 Amazon CLI 或 CloudTrail `CreateTrail`或 `UpdateTrail` API 操作配置 CloudWatch 日志组。

1. 打开 CloudTrail 控制台，网址为[https://console.aws.amazon.com/cloudtrail/](https://console.amazonaws.cn/cloudtrail/)。

1. 选择跟踪名称。如果您选择多区域跟踪，则将重定向到创建该跟踪的区域。可以在跟踪所在的区域创建一个日志组或者选择一个现有日志组。
**注意**  
多区域跟踪会将您中所有已启用区域的日志文件发送 Amazon Web Services 账户 到您指定的 CloudWatch 日志日志组。

1. 在**CloudWatch 日志**中，选择**编辑**。

1. 对于**CloudWatch 日志**，选择**启用**。

1. 在**日志组名称**下，选择**新建**创建新的日志组，或选择**现有**使用现有的日志组。如果选择 “**新建**”，则会为您 CloudTrail 指定新日志组的名称，也可以键入名称。有关命名的更多信息，请参阅 [CloudWatch 的日志组和日志流命名 CloudTrail](cloudwatch-log-group-log-stream-naming-for-cloudtrail.md)。

1. 如果选择**现有**，则从下拉列表中选择一个日志组。

1. 对于**角色名称**，选择**新建**以创建新的 IAM 角色，以获得向日志发送 CloudWatch 日志的权限。选择**现有**以从下拉列表中选择一个现有 IAM 角色。展开**策略文档**时，将显示新角色或现有角色的策略语句。有关该角色的更多信息，请参阅[使用 CloudWatch 日志 CloudTrail 进行监控的角色策略文档](cloudtrail-required-policy-for-cloudwatch-logs.md)。
**注意**  
在您配置跟踪时，可以选择属于另一个账户的 S3 存储桶和 SNS 主题。但是，如果 CloudTrail 要将事件传送到 CloudWatch 日志日志组，则必须选择当前账户中存在的日志组。

1. 选择**保存更改**。

### 指定 IAM 角色
<a name="send-cloudtrail-events-to-cloudwatch-logs-console-create-role"></a>

您可以指定一个角色 CloudTrail 来代入将事件传送到日志流。

**指定角色**

1. 默认情况下，系统将为您指定 `CloudTrail_CloudWatchLogs_Role`。默认角色策略具有在您指定的 CloudWatch 日志组中创建日志日志流并将 CloudTrail 事件传送到该日志流所需的权限。
**注意**  
如果要将此角色用于组织跟踪的日志组，则必须在创建角色后手动修改策略。有关更多信息，请参阅[此策略示例](#policy-cwl-org)和[为组织创建跟踪](creating-trail-organization.md)。

   1. 要验证角色，请转到 Amazon Identity and Access Management 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

   1. 选择 “**角色**”，然后选择 **CloudTrail\_ CloudWatchLogs \_Rol** e。

   1. 在**权限**选项卡中，展开策略查看其内容。

1. 您可以指定其他角色，但是如果要使用该角色向 CloudWatch 日志发送事件，则必须将所需的角色策略附加到现有角色。有关更多信息，请参阅 [使用 CloudWatch 日志 CloudTrail 进行监控的角色策略文档](cloudtrail-required-policy-for-cloudwatch-logs.md)。



### 在 CloudWatch 控制台中查看事件
<a name="viewing-events-in-cloudwatch"></a>

将跟踪配置为将事件发送到 CloudWatch 日志日志组后，您可以在 CloudWatch 控制台中查看事件。 CloudTrail 通常在 API 调用后的平均大约 5 分钟内将事件传送到您的日志组。此时间并不能得到保证。有关更多信息，请参阅 [Amazon CloudTrail 服务等级协议](https://www.amazonaws.cn/cloudtrail/sla)。

**在 CloudWatch 控制台中查看事件**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/)。

1. 在左侧导航窗格中，从**日志**下选择**日志组**。

1. 选择为您的跟踪指定的日志组。

1. 选择要查看的日志流。

1. 要查看您的跟踪记录的事件的详细信息，请选择一个事件。

**注意**  
 CloudWatch 控制台中的**时间 (UTC)** 列显示事件何时传送到您的日志组。要查看记录事件的实际时间 CloudTrail，请参阅字`eventTime`段。

## 使用配置 CloudWatch 日志监控 Amazon CLI
<a name="send-cloudtrail-events-to-cloudwatch-logs-cli"></a>

您可以使用配置 Amazon CLI 将事件发送 CloudTrail 到 CloudWatch 日志进行监控。

### 创建日志组
<a name="send-cloudtrail-events-to-cloudwatch-logs-cli-create-log-group"></a>

1. 如果您没有现有的日志组，请使用 Logs `create-log-group` 命令创建一个 CloudWatch 日志日志组作为日志事件的传输终端节点。 CloudWatch 

   ```
   aws logs create-log-group --log-group-name {{name}}
   ```

   下面的示例创建一个名为 `CloudTrail/logs` 的日志组：

   ```
   aws logs create-log-group --log-group-name CloudTrail/logs
   ```

1. 检索日志组 Amazon 资源名称（ARN）。

   ```
   aws logs describe-log-groups
   ```

### 创建角色
<a name="send-cloudtrail-events-to-cloudwatch-logs-cli-create-role"></a>

为其创建一个角色 CloudTrail ，使其能够将事件发送到 CloudWatch 日志日志组。IAM `create-role` 命令接受两个参数：角色名称和代入角色策略文档（JSON 格式）的文件路径。您使用的策略文档`AssumeRole`授予权限 CloudTrail。`create-role` 命令可创建具有所需权限的角色。

要创建包含此策略文档的 JSON 文件，请打开文本编辑器并将以下策略内容保存到名为 `assume_role_policy_document.json` 的文件中。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

运行以下命令来创建具有`AssumeRole`权限的角色 CloudTrail。

```
aws iam create-role --role-name {{role_name}} --assume-role-policy-document file://{{<path to assume_role_policy_document>}}.json
```

待命令完成后，记下输出中的角色 ARN。

### 创建策略文档
<a name="send-cloudtrail-events-to-cloudwatch-logs-cli-create-policy-document"></a>

为创建以下角色策略文档 CloudTrail。本文档授予 CloudTrail 在您指定的 CloudWatch 日志组中创建日志日志流以及向该日志流传送 CloudTrail 事件所需的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSCloudTrailCreateLogStream2014110",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream"
            ],
            "Resource": [
                "arn:aws:logs:{{us-east-1}}:{{111111111111}}:log-group:{{log_group_name}}:log-stream:{{111111111111}}_CloudTrail_{{us-east-1}}*"
            ]
        },
        {
            "Sid": "AWSCloudTrailPutLogEvents20141101",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:{{us-east-1}}:{{111111111111}}:log-group:{{log_group_name}}:log-stream:{{111111111111}}_CloudTrail_{{us-east-1}}*"
            ]
        }
    ]
}
```

------

将此策略文档保存到名为 `role-policy-document.json` 的文件中。<a name="policy-cwl-org"></a>

如果您要创建可能用于组织跟踪记录的策略，则需要对其进行稍微不同的配置。例如，以下策略授予 CloudTrail 在您指定的日志组中创建 CloudWatch 日志日志流以及向该日志流传送 CloudTrail 事件所需的权限，这些跟踪包括账户 111111111111 中的两个跟踪和在 111111111111 Amazon 账户中创建的组织跟踪，这些跟踪应用于 ID 为的组织： Amazon Organizations {{o-exampleorgid}}

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSCloudTrailCreateLogStream20141101",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream"
            ],
            "Resource": [
                "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*",
                "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:{{o-aa111bb222}}_*"
            ]
        },
        {
            "Sid": "AWSCloudTrailPutLogEvents20141101",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*",             
                "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:{{o-aa111bb222}}_*"
            ]
        }
    ]
}
```

------

有关组织跟踪记录的更多信息，请参阅[为组织创建跟踪](creating-trail-organization.md)。

运行以下命令以将策略应用于角色。

```
aws iam put-role-policy --role-name {{role_name}} --policy-name cloudtrail-policy --policy-document file://{{<path to role-policy-document>}}.json
```

### 更新跟踪
<a name="send-cloudtrail-events-to-cloudwatch-logs-cli-update-trail"></a>

使用 CloudTrail`update-trail`命令使用日志组和角色信息更新跟踪。

```
aws cloudtrail update-trail --name {{trail_name}} --cloud-watch-logs-log-group-arn {{log_group_arn}} --cloud-watch-logs-role-arn {{role_arn}}
```

有关 Amazon CLI 命令的更多信息，请参阅《[Amazon CloudTrail 命令行参考](https://docs.amazonaws.cn/cli/latest/reference/cloudtrail/)》。

## 限制
<a name="send-cloudtrail-events-to-cloudwatch-logs-limitations"></a>

CloudWatch 日志和 EventBridge 每个日志[允许的最大事件大小为 256 KB](https://docs.amazonaws.cn/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)。尽管大多数服务事件的最大大小为 256 KB，但有些服务的事件仍然更大。 CloudTrail 不会将这些事件发送到 CloudWatch 日志或 EventBridge。

从 CloudTrail 事件版本 1.05 开始，事件的最大大小为 256 KB。这是为了帮助防止恶意行为者利用这些漏洞，并允许其他 Amazon 服务（例如 L CloudWatch ogs 和）使用事件 EventBridge。