为 CloudTrail 事件创建 CloudWatch 警报:示例 - AWS CloudTrail

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

为 CloudTrail 事件创建 CloudWatch 警报:示例

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

先决条件

在使用本主题中的示例前,您必须:

  • 使用控制台或创建跟踪CLI。

  • 创建日志组,您可以在创建跟踪时执行此操作。有关创建跟踪的更多信息,请参阅使用 CloudTrail 控制台创建跟踪

  • 指定或创建一个IAM角色, CloudTrail 该角色授予在您指定的CloudWatch 日志组中创建日志日志流以及向该日志流传送 CloudTrail 事件的权限。默认的 CloudTrail_CloudWatchLogs_Role 将为您执行此操作。

有关更多信息,请参阅 将事件发送到 CloudWatch 日志。本节中的示例在 Amazon CloudWatch Logs 控制台中执行。有关如何创建指标筛选条件和警报的更多信息,请参阅亚马逊 CloudWatch 用户指南中的使用筛选条件从日志事件创建指标和使用亚马逊 CloudWatch 警报

创建指标筛选条件,并创建警报

要创建警报,您必须首先创建指标筛选条件,然后根据该筛选条件配置警报。会针对所有示例显示这些过程。有关指标筛选器语法和 CloudTrail 日志事件模式的更多信息,请参阅 Amazon Log CloudWatch s 用户指南筛选条件和模式语法的JSON相关部分。

示例安全组配置更改

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

创建指标筛选条件

  1. 打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,从日志下选择日志组

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

  4. 指标筛选条件操作菜单中选择创建指标筛选条件

  5. Define pattern(定义模式)页面上的 Create filter pattern(创建筛选条件模式)中,为 Filter pattern(筛选条件模式)输入以下内容。

    { ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup) }
  6. Test pattern(测试模式)中,保留默认值。选择下一步

  7. 分配指标页面上,为筛选条件名称输入 SecurityGroupEvents

  8. 指标详细信息中,开启新建,然后在指标命名空间中输入 CloudTrailMetrics

  9. 对于指标名称,键入 SecurityGroupEventCount

  10. 对于指标值,键入 1

  11. Default value(默认值)留空。

  12. 选择下一步

  13. Review and create(审核和重建)页面上,审核您的选择。选择 Create metric filter(创建指标筛选条件)以创建筛选条件,或选择 Edit(编辑)返回并更改值。

创建警报

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

  1. Metric filters(指标筛选条件)选项卡上,找到您在 创建指标筛选条件 中创建的指标筛选条件。填充指标筛选条件的复选框。在 Metric filters(指标筛选条件)栏中,选择 Create alarm(创建警报)。

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

    1. 对于 Graph(图表),根据您在创建警报时所做的其他设置,该行设置为 1

    2. 对于 Metric name(指标名称),请保留当前指标名称 SecurityGroupEventCount

    3. 对于 Statistic(统计数据),请保留默认值 Sum

    4. 对于 Period(期限),请保留默认值 5 minutes

    5. Conditions(条件)中,对于 Threshold type(阈值类型),选择 Static(静态)。

    6. 无论何时何地 metric_name,选择 “大于/ 等于”。

    7. 为阈值输入 1

    8. Additional configuration(其他配置)中,保留默认值。选择下一步

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

    1. 对于向以下SNS主题发送通知,请选择创建新主题

    2. 输入新SecurityGroupChanges_CloudWatch_Alarms_Topic的 Amazon SNS 主题的名称。

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

      每位电子邮件收件人都会收到一封电子邮件,要求他们确认是否要订阅 Amazon SNS 主题。

    4. 选择创建主题

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

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

  6. Preview and create(预览和重建)页面上,审核您的选择。选择 Edit(编辑)以进行更改,或选择 Create alarm(创建警报)以创建警报。

    创建警报后, CloudWatch 打开 “警报” 页面。警报的 “操作” 列显示待确认,直到该SNS主题的所有电子邮件收件人确认要订阅SNS通知。

登录失 AWS Management Console 败示例

按照此过程创建 Amazon CloudWatch 警报,该警报将在五分钟内出现三次或更多 AWS Management Console 登录失败时触发。

创建指标筛选条件

  1. 打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,从日志下选择日志组

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

  4. 指标筛选条件操作菜单中选择创建指标筛选条件

  5. Define pattern(定义模式)页面上的 Create filter pattern(创建筛选条件模式)中,为 Filter pattern(筛选条件模式)输入以下内容。

    { ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }
  6. Test pattern(测试模式)中,保留默认值。选择下一步

  7. 分配指标页面上,为筛选条件名称输入 ConsoleSignInFailures

  8. 指标详细信息中,开启新建,然后在指标命名空间中输入 CloudTrailMetrics

  9. 对于指标名称,键入 ConsoleSigninFailureCount

  10. 对于指标值,键入 1

  11. Default value(默认值)留空。

  12. 选择下一步

  13. Review and create(审核和重建)页面上,审核您的选择。选择 Create metric filter(创建指标筛选条件)以创建筛选条件,或选择 Edit(编辑)返回并更改值。

创建警报

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

  1. Metric filters(指标筛选条件)选项卡上,找到您在 创建指标筛选条件 中创建的指标筛选条件。填充指标筛选条件的复选框。在 Metric filters(指标筛选条件)栏中,选择 Create alarm(创建警报)。

  2. Create Alarm(创建警报)页面上的 Specify metric and conditions(指定指标和条件)中,输入以下内容:

    1. 对于 Graph(图表),根据您在创建警报时所做的其他设置,该行设置为 3

    2. 对于 Metric name(指标名称),请保留当前指标名称 ConsoleSigninFailureCount

    3. 对于 Statistic(统计数据),请保留默认值 Sum

    4. 对于 Period(期限),请保留默认值 5 minutes

    5. Conditions(条件)中,对于 Threshold type(阈值类型),选择 Static(静态)。

    6. 无论何时何地 metric_name,选择 “大于/ 等于”。

    7. 为阈值输入 3

    8. Additional configuration(其他配置)中,保留默认值。选择下一步

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

    1. 对于向以下SNS主题发送通知,请选择创建新主题

    2. 输入新ConsoleSignInFailures_CloudWatch_Alarms_Topic的 Amazon SNS 主题的名称。

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

      每位电子邮件收件人都会收到一封电子邮件,要求他们确认是否要订阅 Amazon SNS 主题。

    4. 选择创建主题

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

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

  6. Preview and create(预览和重建)页面上,审核您的选择。选择 Edit(编辑)以进行更改,或选择 Create alarm(创建警报)以创建警报。

    创建警报后, CloudWatch 打开 “警报” 页面。警报的 “操作” 列显示待确认,直到该SNS主题的所有电子邮件收件人确认要订阅SNS通知。

示例:IAM政策变更

按照此过程创建 Amazon CloudWatch 警报,当有人API致电更改IAM政策时会触发该警报。

创建指标筛选条件

  1. 打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择日志

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

  4. 选择 Actions(操作),然后选择 Create metric filter(创建指标筛选条件)。

  5. 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)}
  6. Test pattern(测试模式)中,保留默认值。选择下一步

  7. 分配指标页面上,为筛选条件名称输入 IAMPolicyChanges

  8. 指标详细信息中,开启新建,然后在指标命名空间中输入 CloudTrailMetrics

  9. 对于指标名称,键入 IAMPolicyEventCount

  10. 对于指标值,键入 1

  11. Default value(默认值)留空。

  12. 选择下一步

  13. Review and create(审核和重建)页面上,审核您的选择。选择 Create metric filter(创建指标筛选条件)以创建筛选条件,或选择 Edit(编辑)返回并更改值。

创建警报

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

  1. Metric filters(指标筛选条件)选项卡上,找到您在 创建指标筛选条件 中创建的指标筛选条件。填充指标筛选条件的复选框。在 Metric filters(指标筛选条件)栏中,选择 Create alarm(创建警报)。

  2. Create Alarm(创建警报)页面上的 Specify metric and conditions(指定指标和条件)中,输入以下内容:

    1. 对于 Graph(图表),根据您在创建警报时所做的其他设置,该行设置为 1

    2. 对于 Metric name(指标名称),请保留当前指标名称 IAMPolicyEventCount

    3. 对于 Statistic(统计数据),请保留默认值 Sum

    4. 对于 Period(期限),请保留默认值 5 minutes

    5. Conditions(条件)中,对于 Threshold type(阈值类型),选择 Static(静态)。

    6. 无论何时何地 metric_name,选择 “大于/ 等于”。

    7. 为阈值输入 1

    8. Additional configuration(其他配置)中,保留默认值。选择下一步

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

    1. 对于向以下SNS主题发送通知,请选择创建新主题

    2. 输入新IAM_Policy_Changes_CloudWatch_Alarms_Topic的 Amazon SNS 主题的名称。

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

      每位电子邮件收件人都会收到一封电子邮件,要求他们确认是否要订阅 Amazon SNS 主题。

    4. 选择创建主题

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

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

  6. Preview and create(预览和重建)页面上,审核您的选择。选择 Edit(编辑)以进行更改,或选择 Create alarm(创建警报)以创建警报。

    创建警报后, CloudWatch 打开 “警报” 页面。警报的 “操作” 列显示待确认,直到该SNS主题的所有电子邮件收件人确认要订阅SNS通知。

为 CloudWatch 日志警报配置通知

您可以将 CloudWatch 日志配置为在触发警报时发送通知 CloudTrail。这样,您就可以对事件中捕获并由 CloudWatch 日志检测到的关键操作 CloudTrail事件做出快速响应。 CloudWatch 使用 Amazon 简单通知服务 (SNS) 发送电子邮件。有关更多信息,请参阅CloudWatch 用户指南中的设置 Amazon SNS 通知