您可以通过创建自定义告警规则,配置需要监控的事件,从而更加灵活地进行企业安全监控。操作审计会根据您添加的查询统计、定义的检查频率、触发条件等配置产生告警,并根据您所选择的告警策略和行动策略进行告警降噪和通知。本文为您介绍如何创建自定义告警规则、不同场景的自定义告警语句和自定义告警示例。
背景信息
自定义告警规则使用SQL(Structured Query Language)语法筛选事件。关于SQL语法的更多信息,请参见查询概述和分析概述。
操作步骤
登录操作审计控制台。
在左侧导航栏,单击事件告警。
在告警中心页面的告警规则页签,单击新建告警。
在新建告警面板,添加查询统计。
单击查询统计右侧的添加。
在查询统计对话框的高级配置页签,选择类型为日志库、授权方式为默认。
说明区域和项目将自动填入,与启用事件告警的跟踪相同,无需手动设置。
选择跟踪投递的日志库(日志库名称格式为
actiontrail_<跟踪名称>
)选择是否开启独享SQL。
说明自动:默认不使用独享SQL。当遇到查询并发限制或者查询结果不精确时,自动尝试使用独享SQL再次查询。
启用:始终使用独享SQL进行查询和分析。
关闭:关闭独享SQL。
关于开启独享SQL的更多信息,请参见开启SQL独享版。
设置查询区间,并在查询右侧的文本框,输入自定义告警语句,然后单击预览。
关于自定义告警语句的更多信息,请参见自定义告警语句。
单击确认。
在告警监控规则面板,设置规则名称、检查频率、分组评估、触发条件、添加标签、添加标注、恢复通知、高级配置和输出目标等参数。
关于参数的更多信息,请参见告警监控规则参数。
单击确定。
创建自定义告警规则成功后,告警规则列表中显示新创建的告警规则,您可以根据需求管理告警规则。具体操作,请参见管理告警规则。
自定义告警语句
场景 | 说明 | 自定义告警语句 |
筛选云服务和事件 | 通过指定云服务名称(serviceName)和事件名称(eventName),对特定云服务和事件进行告警。 |
|
获取和指定参数 | 事件参数以JSON格式存储在event.requestParameterJson参数中,操作审计可以针对事件参数的具体取值进行告警。 |
|
获取资源 | 通过指定事件的相关资源名称(resourceName)和事件的相关资源类型(resourceType),获取事件的资源。 关于参数的更多信息,请参见管控事件结构定义。 | 获取单个资源。例如:获取云服务器ECS释放实例事件中操作的实例ID。
|
获取身份 | 您可以获取事件中的身份信息,对指定身份进行告警。 身份信息(userIdentity)包含身份类型(type)、身份名称(userName)、身份ID(principalId)、阿里云账号ID(accountId)等多个参数。关于参数的更多信息,请参见管控事件结构定义。 |
|
统计数量 | 您可以统计事件发生次数,超过指定次数时进行告警。 |
|
自定义告警示例
arbitrary函数用于返回x中任意一个非空的值,语法为:arbitrary(x)
。关于arbitrary函数的更多信息,请参见arbitrary函数。以下为您介绍两个使用arbitrary函数的自定义告警示例:
示例一:RDS实例释放告警
event.serviceName: RDS and (event.eventName: DeleteDBInstance or event.eventName: Release or event.eventName: DestroyDBInstance) | SELECT account_id, resourceArray[num] as instance_id, ram_user_id, user_type, user_name FROM (SELECT "event.userIdentity.accountId" as account_id, "event.userIdentity.principalId" as ram_user_id, split("event.resourceName", ';') as resourceArray, array_position(split("event.resourceType", ';'), 'ACS::RDS::DBInstance') as num, "event.userIdentity.type" as user_type, "event.userIdentity.userName" as user_name FROM log ) where num > 0
示例二:安全组配置变更告警
event.eventName: CreateSecurityGroup OR event.eventName: AuthorizeSecurityGroup OR event.eventName: AuthorizeSecurityGroupEgress OR event.eventName: RevokeSecurityGroup OR event.eventName: RevokeSecurityGroupEgress OR event.eventName: JoinSecurityGroup OR event.eventName: LeaveSecurityGroup OR event.eventName: DeleteSecurityGroup OR event.eventName: ModifySecurityGroupPolicy) | select "event.userIdentity.accountId" as account_id, "event.userIdentity.principalId" as ram_user_id, "event.eventName" as event_name, arbitrary("event.userIdentity.type") as user_type, arbitrary("event.userIdentity.userName") as user_name group by account_id, ram_user_id, event_name
相关文档
您还可以通过日志服务创建自定义告警规则。具体操作,请参见创建日志告警监控规则。
当您开启告警规则后,可以通过日志服务查看相关的信息。具体操作,请参见管理告警监控规则。