当您需要审计和监控服务网格内的资源操作时,可以开启网格审计并配置SLS的告警,为ASM资源(VirtualService、DestinationRule等)的变更行为添加审计告警能力。在重要资源变动时及时发送告警通知到告警联系人,以保障服务网格的安全性和合规性。本文介绍如何为网格资源操作配置审计告警,并在虚拟服务被删除时发送短信通知给告警联系人。
前提条件
步骤一:开启网格审计
开启网格审计后,ASM实例的KubeAPI操作日志会被收集到SLS作为后续的告警配置的数据来源。
- 登录ASM控制台,在左侧导航栏,选择。 
- 在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择。 
- 在KubeAPI操作审计页面,选中启用网格审计,然后单击确定。 - 界面显示如下,表明网格审计启用成功。  
步骤二:添加告警接收用户
本示例后续产生的告警会被通知到SLS的服务网格内置用户组,因此需要将能接收通知的账号添加到该用户组中。
- 确认测试子账号已经添加了手机号,并且对应号码能够正常接收短信。具体操作,请参见创建用户。 
- 在用户组中添加测试子账号。 - 登录日志服务控制台。 
- 在Project列表区域,单击目标Project名称,然后在左侧导航栏,单击告警。 - 如果是新建的Project(没有在创建网格时或开启审计功能时显式地复用现有Project),则Project名字格式为 - mesh-log-<Mesh ID>。
- 如果是复用已有的Project,单击复用Project名称。 
 
- 在告警中心页面,单击。 
- 在用户组管理页签,单击SLS 服务网格内置用户组右侧操作列下的修改。 - SLS 服务网格内置用户组对应的标识符为sls.app.asm.builtin。 
- 在修改用户组对话框,添加测试子账号,然后单击确认。 
 
步骤三:配置审计告警
配置VirtualService资源删除的短信告警通知。
- 登录日志服务控制台。 
- 在Project列表区域,单击目标Project名称,然后在左侧导航栏,单击告警。 
- 在告警中心页面的告警规则页签,单击新建告警。 
- 在新建告警面板,配置相关信息,然后单击确定。 - 部分配置项说明如下。关于配置项的详细说明,请参见创建告警监控规则。 - 配置项 - 说明 - 规则名称 - 配置为虚拟服务删除。 - 检查频率 - 为了快速验证本示例的效果,因此配置为1分钟。 - 查询统计 - 单击添加,在查询统计对话框的高级配置页签,选择audit开头的日志库。 
- 查询区间选择与检查频率相同的1分钟(相对),以避免重复报警与漏报。 
- 在查询文本框,输入 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete ),然后单击预览,确认无误后,单击确定。
 - 触发条件 - 配置为当有数据时,严重度高。 - 添加标注 - 您可以按需修改title和desc,配置告警内容的标题和内容。更多说明,请参见内容模板变量说明(新版)。 - 输出目标 - 选择SLS通知,打开开启开关,行动策略选择SLS 服务网格内置行动策略 (sls.app.asm.builtin)。  
步骤四:验证审计告警
通过删除一个VirtualService资源来验证步骤三配置的审计告警。
- 创建并删除虚拟服务。 - 登录ASM控制台,在左侧导航栏,选择。 
- 在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择,然后单击使用YAML创建。 
- 在创建页面,命名空间选择default,场景模板选择HTTP基础路由,然后单击创建。 
- 在虚拟服务页面的操作列,单击新建的reviews-route虚拟服务对应的删除,然后在确认对话框,单击确定。 
 
- 查看审计告警是否成功。 
相关信息
SLS服务网格内置行动策略细节
| 告警严重程度 | 行为 | 
| 严重 | 语音通知 | 
| 高 | 短信通知 | 
| 其他 | 邮件通知 | 
常用告警条件查询参考
- ASM网关IstioGateway创建、修改、删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: istiogateways and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: create or verb: delete or verb: update )
- 网关规则Gateway删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: gateways and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
- 证书ASMCredential删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: asmcredentials and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: delete )
- 虚拟服务VirtualService删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
- 目标规则DestinationRule删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: destinationrules and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
- 可观测Telemetry删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: telemetries and objectRef.apiGroup: "telemetry.istio.io" and ( verb: delete )
- 授权策略AuthorizationPolicies删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: authorizationpolicies and objectRef.apiGroup: "security.istio.io" and ( verb: delete )
- Envoy过滤器EnvoyFilter删除 - (responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: envoyfilters and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
相关文档
- 当您需要为RAM用户授予日志服务告警的只读权限或管理权限,请参见授权RAM用户操作告警。 
- 您可以在网格中配置工作负载身份、对等身份认证、请求身份认证、授权策略等,更加细粒度地管理网格资源,提高网格的安全性。具体操作,请参见零信任安全概述。 


