

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

# 为 CloudTrail 事件创建 CloudWatch 警报：示例
<a name="cloudwatch-alarms-for-cloudtrail"></a>

本主题介绍如何为 CloudTrail 事件配置警报，并包括示例。

**Topics**
+ [先决条件](#cloudwatch-alarms-prerequisites)
+ [创建指标筛选条件，并创建警报](#cloudwatch-alarms-metric-filter-alarm)
+ [示例安全组配置更改](#cloudwatch-alarms-for-cloudtrail-security-group)
+ [登录失 AWS 管理控制台 败示例](#cloudwatch-alarms-for-cloudtrail-signin)
+ [示例：IAM policy 更改](#cloudwatch-alarms-for-cloudtrail-iam-policy-changes)
+ [为 CloudWatch 日志警报配置通知](#cloudtrail-configure-notifications-for-cloudwatch-logs-alarms)

## 先决条件
<a name="cloudwatch-alarms-prerequisites"></a>

在使用本主题中的示例前，您必须：
+ 使用 控制台或 CLI 创建一个跟踪。
+ 创建日志组，您可以在创建跟踪时执行此操作。有关创建跟踪的更多信息，请参阅[使用 CloudTrail 控制台创建跟踪](cloudtrail-create-a-trail-using-the-console-first-time.md)。
+ 指定或创建一个 IAM 角色， CloudTrail 该角色授予在您指定的CloudWatch 日志组中创建日志日志流以及向该日志流传送 CloudTrail 事件的权限。默认的 `CloudTrail_CloudWatchLogs_Role` 将为您执行此操作。

有关更多信息，请参阅 [将事件发送到 CloudWatch 日志](send-cloudtrail-events-to-cloudwatch-logs.md)。本节中的示例在 Amazon CloudWatch Logs 控制台中执行。有关如何创建指标筛选条件和警报的更多信息，请参阅亚马逊* CloudWatch 用户指南中的[使用筛选条件从日志事件创建指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)和使用亚马逊 CloudWatch *[警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

## 创建指标筛选条件，并创建警报
<a name="cloudwatch-alarms-metric-filter-alarm"></a>

要创建警报，您必须首先创建指标筛选条件，然后根据该筛选条件配置警报。会针对所有示例显示这些过程。有关指标筛选器语法和 CloudTrail 日志事件模式的更多信息，请参阅 A *mazon Log CloudWatch s 用户*指南中[筛选和模式语法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)的 JSON 相关部分。

## 示例安全组配置更改
<a name="cloudwatch-alarms-for-cloudtrail-security-group"></a>

按照此过程创建 Amazon CloudWatch 警报，当安全组发生配置更改时触发该警报。

### 创建指标筛选条件
<a name="cloudwatch-alarms-for-cloudtrail-security-group-metric-filter"></a>

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

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

1. 在日志组列表中，选择为跟踪创建的日志组。

1. 从**指标筛选条件**或**操作**菜单中选择**创建指标筛选条件**。

1. 在 **Define pattern**（定义模式）页面上的 **Create filter pattern**（创建筛选条件模式）中，为 **Filter pattern**（筛选条件模式）输入以下内容。

   ```
   { ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup) }
   ```

1. 在 **Test pattern**（测试模式）中，保留默认值。选择**下一步**。

1. 在**分配指标**页面上，为**筛选条件名称**输入 **SecurityGroupEvents**。

1. 在**指标详细信息**中，开启**新建**，然后在**指标命名空间**中输入 **CloudTrailMetrics**。

1. 对于**指标名称**，键入 **SecurityGroupEventCount**。

1. 对于**指标值**，键入 **1**。

1. 将 **Default value**（默认值）留空。

1. 选择**下一步**。

1. 在 **Review and create**（审核和重建）页面上，审核您的选择。选择 **Create metric filter**（创建指标筛选条件）以创建筛选条件，或选择 **Edit**（编辑）返回并更改值。

### 创建警报
<a name="cloudwatch-alarms-for-cloudtrail-security-group-create-alarm"></a>

创建指标筛选器后，将打开您的 CloudTrail 跟踪 CloudWatch 日志组的日志日志组详细信息页面。按照此程序创建警报。

1. 在 **Metric filters**（指标筛选条件）选项卡上，找到您在 [创建指标筛选条件](#cloudwatch-alarms-for-cloudtrail-security-group-metric-filter) 中创建的指标筛选条件。填充指标筛选条件的复选框。在 **Metric filters**（指标筛选条件）栏中，选择 **Create alarm**（创建警报）。

1. 在**指定指标和条件**字段中输入以下内容。

   1. 对于 **Graph**（图表），根据您在创建警报时所做的其他设置，该行设置为 **1**。

   1. 对于 **Metric name**（指标名称），请保留当前指标名称 **SecurityGroupEventCount**。

   1. 对于 **Statistic**（统计数据），请保留默认值 **Sum**。

   1. 对于 **Period**（期限），请保留默认值 **5 minutes**。

   1. 在 **Conditions**（条件）中，对于 **Threshold type**（阈值类型），选择 **Static**（静态）。

   1. 对于 “**无论何时*metric\$1name*是**”，选择 “**大于/** 等于”。

   1. 为阈值输入 **1**。

   1. 在 **Additional configuration**（其他配置）中，保留默认值。选择**下一步**。

1. 在 “**配置操作**” 页面上，选择 “**通知**”，然后选择 “**警报**”，这表示当超过 5 分钟内 1 个更改事件的阈值并**SecurityGroupEventCount**处于警报状态时，将采取行动。

   1. 对于**向以下 SNS 主题发送通知**，选择**新建主题**。

   1. 输入 **SecurityGroupChanges\$1CloudWatch\$1Alarms\$1Topic** 作为 Amazon SNS 新主题的名称。

   1. 在**将接收通知的电子邮件端点**中，输入您希望在触发此警报时接收通知的用户的电子邮件地址。用逗号分隔电子邮件地址。

      每位电子邮件收件人会收到电子邮件，要求他们确认他们想要订阅 Amazon SNS 主题。

   1. 选择**创建主题**。

1. 对于此示例，跳过其他操作类型。选择**下一步**。

1. 在 **Add name and description**（添加名称和描述）页面上，输入警报的易识别名称以及描述。在此示例中，请输入 **Security group configuration changes** 作为名称，**Raises alarms if security group configuration changes occur** 作为说明。选择**下一步**。

1. 在 **Preview and create**（预览和重建）页面上，审核您的选择。选择 **Edit**（编辑）以进行更改，或选择 **Create alarm**（创建警报）以创建警报。

   创建警报后， CloudWatch 打开 “**警报**” 页面。在有关 SNS 主题的所有电子邮件收件人都确认他们想要订阅 SNS 通知之前，警报的 **Actions**（操作）列一直显示 **Pending confirmation**（待确认）。

## 登录失 AWS 管理控制台 败示例
<a name="cloudwatch-alarms-for-cloudtrail-signin"></a>

按照此过程创建 Amazon CloudWatch 警报，该警报将在五分钟内出现三次或更多 AWS 管理控制台 登录失败时触发。

### 创建指标筛选条件
<a name="cloudwatch-alarms-for-cloudtrail-signin-metric-filter"></a>

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

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

1. 在日志组列表中，选择为跟踪创建的日志组。

1. 从**指标筛选条件**或**操作**菜单中选择**创建指标筛选条件**。

1. 在 **Define pattern**（定义模式）页面上的 **Create filter pattern**（创建筛选条件模式）中，为 **Filter pattern**（筛选条件模式）输入以下内容。

   ```
   { ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }
   ```

1. 在 **Test pattern**（测试模式）中，保留默认值。选择**下一步**。

1. 在**分配指标**页面上，为**筛选条件名称**输入 **ConsoleSignInFailures**。

1. 在**指标详细信息**中，开启**新建**，然后在**指标命名空间**中输入 **CloudTrailMetrics**。

1. 对于**指标名称**，键入 **ConsoleSigninFailureCount**。

1. 对于**指标值**，键入 **1**。

1. 将 **Default value**（默认值）留空。

1. 选择**下一步**。

1. 在 **Review and create**（审核和重建）页面上，审核您的选择。选择 **Create metric filter**（创建指标筛选条件）以创建筛选条件，或选择 **Edit**（编辑）返回并更改值。

### 创建警报
<a name="cloudwatch-alarms-for-cloudtrail-signin-create-alarm"></a>

创建指标筛选器后，将打开您的 CloudTrail跟踪 CloudWatch 日志组的日志日志组详细信息页面。按照此程序创建警报。

1. 在 **Metric filters**（指标筛选条件）选项卡上，找到您在 [创建指标筛选条件](#cloudwatch-alarms-for-cloudtrail-signin-metric-filter) 中创建的指标筛选条件。填充指标筛选条件的复选框。在 **Metric filters**（指标筛选条件）栏中，选择 **Create alarm**（创建警报）。

1. 在 **Create Alarm**（创建警报）页面上的 **Specify metric and conditions**（指定指标和条件）中，输入以下内容：

   1. 对于 **Graph**（图表），根据您在创建警报时所做的其他设置，该行设置为 **3**。

   1. 对于 **Metric name**（指标名称），请保留当前指标名称 **ConsoleSigninFailureCount**。

   1. 对于 **Statistic**（统计数据），请保留默认值 **Sum**。

   1. 对于 **Period**（期限），请保留默认值 **5 minutes**。

   1. 在 **Conditions**（条件）中，对于 **Threshold type**（阈值类型），选择 **Static**（静态）。

   1. 对于 “**无论何时*metric\$1name*是**”，选择 “**大于/** 等于”。

   1. 为阈值输入 **3**。

   1. 在 **Additional configuration**（其他配置）中，保留默认值。选择**下一步**。

1. 在 “**配置操作**” 页面上，在 “**通知**” **中选择 “警报**”，这表示当超过 5 分钟内 3 个更改事件的阈值并**ConsoleSigninFailureCount**处于警报状态时，将采取该操作。

   1. 对于**向以下 SNS 主题发送通知**，选择**新建主题**。

   1. 输入 **ConsoleSignInFailures\$1CloudWatch\$1Alarms\$1Topic** 作为 Amazon SNS 新主题的名称。

   1. 在**将接收通知的电子邮件端点**中，输入您希望在触发此警报时接收通知的用户的电子邮件地址。用逗号分隔电子邮件地址。

      每位电子邮件收件人会收到电子邮件，要求他们确认他们想要订阅 Amazon SNS 主题。

   1. 选择**创建主题**。

1. 对于此示例，跳过其他操作类型。选择**下一步**。

1. 在 **Add name and description**（添加名称和描述）页面上，输入警报的易识别名称以及描述。在此示例中，请输入 **Console sign-in failures** 作为名称，**Raises alarms if more than 3 console sign-in failures occur in 5 minutes** 作为说明。选择**下一步**。

1. 在 **Preview and create**（预览和重建）页面上，审核您的选择。选择 **Edit**（编辑）以进行更改，或选择 **Create alarm**（创建警报）以创建警报。

   创建警报后， CloudWatch 打开 “**警报**” 页面。在有关 SNS 主题的所有电子邮件收件人都确认他们想要订阅 SNS 通知之前，警报的 **Actions**（操作）列一直显示 **Pending confirmation**（待确认）。

## 示例：IAM policy 更改
<a name="cloudwatch-alarms-for-cloudtrail-iam-policy-changes"></a>

按照此过程创建 Amazon CloudWatch 警报，该警报将在调用 API 以更改 IAM 策略时触发。

### 创建指标筛选条件
<a name="cloudwatch-alarms-for-cloudtrail-iam-policy-changes-metric-filter"></a>

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

1. 在导航窗格中，选择**日志**。

1. 在日志组列表中，选择为跟踪创建的日志组。

1. 选择 **Actions**（操作），然后选择 **Create metric filter**（创建指标筛选条件）。

1. 在 **Define pattern**（定义模式）页面上的 **Create filter pattern**（创建筛选条件模式）中，为 **Filter pattern**（筛选条件模式）输入以下内容。

   ```
   {($.eventName=DeleteGroupPolicy)||($.eventName=DeleteRolePolicy)||($.eventName=DeleteUserPolicy)||($.eventName=PutGroupPolicy)||($.eventName=PutRolePolicy)||($.eventName=PutUserPolicy)||($.eventName=CreatePolicy)||($.eventName=DeletePolicy)||($.eventName=CreatePolicyVersion)||($.eventName=DeletePolicyVersion)||($.eventName=AttachRolePolicy)||($.eventName=DetachRolePolicy)||($.eventName=AttachUserPolicy)||($.eventName=DetachUserPolicy)||($.eventName=AttachGroupPolicy)||($.eventName=DetachGroupPolicy)}
   ```

1. 在 **Test pattern**（测试模式）中，保留默认值。选择**下一步**。

1. 在**分配指标**页面上，为**筛选条件名称**输入 **IAMPolicyChanges**。

1. 在**指标详细信息**中，开启**新建**，然后在**指标命名空间**中输入 **CloudTrailMetrics**。

1. 对于**指标名称**，键入 **IAMPolicyEventCount**。

1. 对于**指标值**，键入 **1**。

1. 将 **Default value**（默认值）留空。

1. 选择**下一步**。

1. 在 **Review and create**（审核和重建）页面上，审核您的选择。选择 **Create metric filter**（创建指标筛选条件）以创建筛选条件，或选择 **Edit**（编辑）返回并更改值。

### 创建警报
<a name="cloudwatch-alarms-for-cloudtrail-iam-policy-changes-create-alarm"></a>

创建指标筛选器后，将打开您的 CloudTrail跟踪 CloudWatch 日志组的日志日志组详细信息页面。按照此程序创建警报。

1. 在 **Metric filters**（指标筛选条件）选项卡上，找到您在 [创建指标筛选条件](#cloudwatch-alarms-for-cloudtrail-iam-policy-changes-metric-filter) 中创建的指标筛选条件。填充指标筛选条件的复选框。在 **Metric filters**（指标筛选条件）栏中，选择 **Create alarm**（创建警报）。

1. 在 **Create Alarm**（创建警报）页面上的 **Specify metric and conditions**（指定指标和条件）中，输入以下内容：

   1. 对于 **Graph**（图表），根据您在创建警报时所做的其他设置，该行设置为 **1**。

   1. 对于 **Metric name**（指标名称），请保留当前指标名称 **IAMPolicyEventCount**。

   1. 对于 **Statistic**（统计数据），请保留默认值 **Sum**。

   1. 对于 **Period**（期限），请保留默认值 **5 minutes**。

   1. 在 **Conditions**（条件）中，对于 **Threshold type**（阈值类型），选择 **Static**（静态）。

   1. 对于 “**无论何时*metric\$1name*是**”，选择 “**大于/** 等于”。

   1. 为阈值输入 **1**。

   1. 在 **Additional configuration**（其他配置）中，保留默认值。选择**下一步**。

1. 在 “**配置操作**” 页面上，在 “**通知**” **中选择 “警报**”，这表示当超过 5 分钟内 1 个更改事件的阈值并**IAMPolicyEventCount**处于警报状态时，将采取该操作。

   1. 对于**向以下 SNS 主题发送通知**，选择**新建主题**。

   1. 输入 **IAM\$1Policy\$1Changes\$1CloudWatch\$1Alarms\$1Topic** 作为 Amazon SNS 新主题的名称。

   1. 在**将接收通知的电子邮件端点**中，输入您希望在触发此警报时接收通知的用户的电子邮件地址。用逗号分隔电子邮件地址。

      每位电子邮件收件人会收到电子邮件，要求他们确认他们想要订阅 Amazon SNS 主题。

   1. 选择**创建主题**。

1. 对于此示例，跳过其他操作类型。选择**下一步**。

1. 在 **Add name and description**（添加名称和描述）页面上，输入警报的易识别名称以及描述。在此示例中，请输入 **IAM Policy Changes** 作为名称，**Raises alarms if IAM policy changes occur** 作为说明。选择**下一步**。

1. 在 **Preview and create**（预览和重建）页面上，审核您的选择。选择 **Edit**（编辑）以进行更改，或选择 **Create alarm**（创建警报）以创建警报。

   创建警报后， CloudWatch 打开 “**警报**” 页面。在有关 SNS 主题的所有电子邮件收件人都确认他们想要订阅 SNS 通知之前，警报的 **Actions**（操作）列一直显示 **Pending confirmation**（待确认）。

## 为 CloudWatch 日志警报配置通知
<a name="cloudtrail-configure-notifications-for-cloudwatch-logs-alarms"></a>

您可以将 CloudWatch 日志配置为在触发警报时发送通知 CloudTrail。这样，您就可以对事件中捕获并由 CloudWatch 日志检测到的关键操作 CloudTrail事件做出快速响应。 CloudWatch 使用亚马逊简单通知服务 (SNS) Simple Notification Service 发送电子邮件。有关更多信息，请参阅*CloudWatch 用户*指南中的[设置 Amazon SNS 通知](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html#US_SetupSNS)。