我想使用 Amazon CloudWatch 警报监控 AWS CloudTrail 事件。
简短描述
CloudWatch 警报监控单个 CloudWatch 指标或基于 CloudWatch 指标的数学表达式的结果。要创建警报以监控 CloudTrail 事件,请为您的跟踪启用 CloudWatch 日志记录,并在 CloudTrail 日志组上创建指标筛选器。
**注意:**指标筛选器定义了发送到 CloudWatch Logs 时要在日志数据中查找的字词和模式。CloudWatch Logs 使用指标筛选器将日志数据转换为数字指标,您可以绘制图表并设置警报。
解决方法
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
在开始之前,请完成以下步骤:
- 在 CloudTrail 控制台中创建跟踪或使用 AWS CLI 创建跟踪。
- 创建日志组。这可以在您创建跟踪时完成。
- 使用 AWS 管理控制台或 AWS CLI 配置您的跟踪,将事件发送到 CloudWatch Logs 进行监控。
- 创建或指定 AWS Identity and Access Management (IAM) 角色,该角色向 CloudTrail 授予创建 CloudWatch Logs 日志流的权限。必须在您指定的日志组中创建日志流,以便将 CloudTrail 事件传送到该日志组。CloudTrail_CloudWatchLogs_Role 为默认角色。
注意:以下创建指标筛选器和创建警报的步骤提供了一个示例,说明如何监控 ConsoleLogin events without MFA enabled(未启用 MFA 的 ConsoleLogin 事件)CloudTrail 事件。
创建指标筛选器
要为 ConsoleLogin events without MFA enabled(未启用 MFA 的 ConsoleLogin 事件)CloudTrail 事件创建指标筛选器,请完成以下步骤:
-
打开 CloudWatch 控制台。
-
在导航窗格中的 Logs(日志)下,选择 Log groups(日志组)。
-
在日志组列表中,选择您为跟踪创建的日志组。
-
从 Metric filters(指标筛选器)或 Actions(操作)菜单中,选择 Create metric filter(创建指标筛选器)。
-
在 Define pattern(定义模式)页面的 Create filter pattern(创建筛选器模式)中,为Filter pattern(筛选器模式)输入以下内容:
{ ($.eventName = ConsoleLogin) && ($.additionalEventData.MFAUsed != Yes) }
-
在 Test pattern(测试模式)中,不要更新默认值。选择 Next(下一步)。
-
在 Assign metric(分配指标)页面的 Filter name(筛选器名称)中输入 ConsoleSignInWithoutMFA。
-
在 Metric details(指标详细信息)中,打开 Create new(新建)并完成以下操作:
对于 Metric namespace(指标命名空间),输入 CloudTrailMetrics。
对于 Metric name(指标名称),键入 ConsoleSignInWithoutMFA。
对于 Metric value(指标值),键入 1。
对于 Default value(默认值),留空。
-
选择 Next(下一步)。
-
在 Review and create(查看并创建)页面上,查看您的选择。选择 Create metric filter(创建指标筛选器)以创建筛选器,或选择 Edit(编辑)以更改值。
**注意:**创建指标筛选器后,将打开 CloudTrail 跟踪日志组的 CloudWatch Logs log group details(CloudWatch Logs 日志组详细信息)页面。
创建警报
要创建警报以监控 ConsoleLogin events without MFA enabled(未启用 MFA 的 ConsoleLogin 事件)CloudTrail 事件,请完成以下步骤:
- 在 Metric filters(指标筛选器)选项卡上,确定您创建的指标筛选器并选中该指标筛选器的复选框。
- 在 Metric filters(指标筛选器)栏中,选择 Create alarm(创建警报)。在 Specify metric and conditions(指定指标和条件)中,输入以下内容:
对于 Metric name(指标名称),保留当前指标名称 ConsoleSignInWithoutMFA。
对于 Statistic(统计数据),保留默认值 Sum(总和)。
对于 Period(时段),保留默认值 5 minutes(5 分钟)。
在 Conditions(条件)中,对于 Threshold type(阈值类型),选择 Static(静态)。
对于 Whenever metric_name is,选择 Greater/Equal(大于/等于)。
对于阈值,请输入所需的值。在本示例中,3 为阈值。
在 Additional configuration(其他配置)中,不要更新默认值。
- 选择 Next(下一步)。
- 在 Configure actions(配置操作)页面上,对于 Notification(通知),选择 Create new topic(创建新主题)或选择现有的 Amazon Simple Notification Service (Amazon SNS) 主题。
对于 Create a new topic(创建新主题),请输入 ConsoleSignInWithoutMFA_CloudWatch_Alarms_Topic 作为 Amazon SNS 主题名称。
- 在 Email endpoints(电子邮件端点)中,输入要接收警报通知的用户的电子邮件地址。确保使用逗号分隔电子邮件地址。
**注意:**每个电子邮件地址都需要用于回复确认电子邮件,以确认订阅 Amazon SNS 主题。警报的 Actions(操作)列显示 Pending confirmation(等待确认),直到确认所有电子邮件收件人。
- 选择 Create topic(创建主题)。
- 在此示例中,跳过其他操作类型。选择 Next(下一步)。
- 在 Add name and description(添加名称和描述)页面上,输入警报的名称和描述。在此示例中,输入名称 Console sign-in-without-MFA(未启用 MFA 的控制台登录)和描述 Raises alarms if more than 3 console sign-in without MFA occur in 5 minutes(如果 5 分钟内发生 3 次以上未启用 MFA 的控制台登录,则发起警报)。
- 选择 Next(下一步)。
- 在 Preview and create(预览并创建)页面上,查看您的选择。选择 Create alarm(创建警报)以创建警报,或选择 Edit(编辑)以更改值。
**注意:**上述步骤会创建一个 CloudWatch 警报,该警报在 AWS 管理控制台在指定的 5 分钟窗口内登录失败时调用。