如何配置OpenSearch发送安全告警
最后更新于
最后更新于
前提条件
一个 AWS 账户
账号中已经部署用来收集日志的 OpenSearch 服务
账号中的 CloudTrail 日志已经注入到 OpenSearch 中
1. 打开亚马逊云科技控制台,进入 Amazon SNS 服务,创建 Amazon SNS 主题,选择标准主题,输入主题名称。
2. 打开创建的主题,点击“创建订阅”,选择“电子邮件”协议,在终端节点中输入要订阅的邮箱地址,点击“创建订阅”。
3. 检查订阅该主题的邮箱,点击“完成订阅”链接,SNS 主题中的订阅状态变成“已确认”,如下图所示。
1. 打开 IAM 控制台,选择角色,点击创建角色,在使用案例中点击“自定义信任策略”,输入如下的自定义策略,点击下一步。
2. 创建 IAM 策略,把下面模版中的“REPLACE_CREATED_SNS_ARN”替换为上一步骤中创建 SNS 主题的 ARN,点击“下一步”,给策略命名,来创建 IAM 策略。
3. 在创建角色的面板中,选择创建的策略,点击下一步,输入角色名称,点击下一步完成角色创建,记录创建角色的 ARN。
打开 OpenSearch 控制面板,选择 “Notification”-> “Channels”,点击“Create Channel”,如下图所示输入 Channel 名称,上面创建的 SNS 主题 ARN 和 IAM 角色 ARN。
接下来我们通过配置告警,结合 SNS 服务自动化发送警报给安全和运维团队。
1. 假设创建查询异常 IP 的告警
告警信息需要 OpenSearch 专用的 Query DSL 查询语句来获取,此处我们可以通过 OpenSearch 自带的功能生成 DSL 语句,获取上一个步骤中告警视图得到的 IP 和访问统计信息。
点击 “Inspect”-> “View:Requests”-> “Request”-> “Copy”我们很容易就得到了生成这个聚合查询的 DSL 查询语句模版。我们也可以点击 “Save”保存这个聚合视图,方便后续使用。
2. 创建告警:打开 OpenSearch 控制面板,选择 “Alerting”-> “Monitors”,点击“Create Monitor”,如下图所示输入 Monitor 名称。按照如下图所示分别输入。
监控类型,按查询语句进行监控
监控的频率,此处定义为每 2 分钟运行一次
数据源,选择 CloudTrail 对应的索引或者别名
3. 输入查询语句,在 Query 输入框中复制在步骤 Query DSL 查询语句,因为自动生成的查询语句使用的是固定时间,我们需要将查询的固定时间修改为相对时间,比如修改为查询过去 10 分钟的聚合数据。
固定时间查询的语句段如下:
相对时间查询过去 10 分钟的的语句段如下:
4. 执行查询,点击右边的 Run 按钮,我们可以得到过去 10 分钟内的聚合查询结果,如下图所示:
5. 创建触发器,本例中过去 10 分钟出现不在规定范围内的 IP 为触发条件。点击 “Add Trigger”,输入触发器名称,以及对应的触发条件,本例的条件为默认值(ctx.results[0].hits.total.value > 0),点击 “Preview condition response”, 我们可以看到条件是否被满足。
6. 创建告警邮件信息,点击 “Add Action”,输入名称,选择我们在上面步骤创建的通道,输入我们发送邮件的主题后,在消息体里面,我们可以编辑消息体的内容,把找到的 IP 地址以及命中的次数发送到邮件中,见如下截图。