您可以创建自定义告警规则,配置需要监控的事件,从而更灵活地进行企业安全监控。通过添加查询统计,设置自定义告警语句,可以针对不同场景进行告警。本文为您介绍如何创建自定义告警规则、不同场景的自定义告警语句和自定义告警示例。
背景信息
自定义告警规则使用SQL(Structured Query Language)语法筛选事件。关于SQL语法的更多信息,请参见查询概述和分析概述。
操作步骤
自定义告警语句
场景 | 说明 | 自定义告警语句 |
---|---|---|
筛选云服务和事件 | 通过指定云服务名称(serviceName)和事件名称(eventName),对特定云服务和事件进行告警。 |
|
获取和指定参数 | 事件参数以JSON格式存储在event.requestParameterJson参数中,操作审计可以针对事件参数的具体取值进行告警。 |
|
获取资源 | 通过指定事件的相关资源名称(resourceName)和事件的相关资源类型(resourceType),获取事件的资源。
关于参数的更多信息,请参见管控事件结构定义。 |
获取单个资源。例如:获取云服务器ECS释放实例事件中操作的实例ID。
|
获取身份 | 您可以获取事件中的身份信息,对指定身份进行告警。
身份信息(userIdentity)包含身份类型(type)、身份名称(userName)、身份ID(principalId)、阿里云账号ID(accountId)等多个参数。关于参数的更多信息,请参见表 1。 |
|
统计数量 | 您可以统计事件发生次数,超过指定次数时进行告警。 |
|
自定义告警示例
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