针对 CloudTrail 事件创建 CloudWatch 警报:示例 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

针对 CloudTrail 事件创建 CloudWatch 警报:示例

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

先决条件

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

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

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

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

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

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

要创建警报,您必须首先创建指标筛选条件,然后根据该筛选条件配置警报。会针对所有示例显示这些过程。有关 CloudTrail 日志事件的指标筛选条件和模式的语法的更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的筛选条件和模式语法中与 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(测试模式)中,保留默认值。选择 Next(下一步)。

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

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

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

  10. 对于指标值,键入 1

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

  12. 选择 Next(下一步)。

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

创建警报

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

  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. 对于 Whenever metric_name is(每当 metric_name 为),选择 Greater/Equal(大于/等于)。

    7. 为阈值输入 1

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

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

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

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

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

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

    4. 选择 Create topic(创建主题)

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

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

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

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

示例 Amazon Web Services Management Console 登录失败

按照此步骤操作可创建 Amazon CloudWatch 警报,当 5 分钟内发生 3 次或更多 Amazon Web Services 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(测试模式)中,保留默认值。选择 Next(下一步)。

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

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

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

  10. 对于指标值,键入 1

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

  12. 选择 Next(下一步)。

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

创建警报

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

  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. 对于 Whenever metric_name is(每当 metric_name 为),选择 Greater/Equal(大于/等于)。

    7. 为阈值输入 3

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

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

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

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

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

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

    4. 选择 Create topic(创建主题)

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

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

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

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

示例:IAM policy 更改

按照此步骤操作可创建 Amazon CloudWatch 警报,当执行 API 调用以更改 IAM policy 时会触发此警报。

创建指标筛选条件

  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(测试模式)中,保留默认值。选择 Next(下一步)。

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

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

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

  10. 对于指标值,键入 1

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

  12. 选择 Next(下一步)。

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

创建警报

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

  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. 对于 Whenever metric_name is(每当 metric_name 为),选择 Greater/Equal(大于/等于)。

    7. 为阈值输入 1

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

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

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

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

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

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

    4. 选择 Create topic(创建主题)

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

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

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

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

配置 CloudWatch Logs 警报的通知

您可以将 CloudWatch Logs 配置为在触发 CloudTrail 的警报时发送通知。通过执行此操作,您能够快速响应在 CloudTrail 事件中捕获的并由 CloudWatch Logs 检测到的重要操作事件。CloudWatch 使用 Amazon Simple Notification Service (SNS) 发送电子邮件。有关更多信息,请参阅 CloudWatch 开发人员指南中的设置 Amazon SNS