当您需要审计和监控服务网格内的资源操作时,可以开启网格审计并配置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用户告警操作权限。
您可以在网格中配置工作负载身份、对等身份认证、请求身份认证、授权策略等,更加细粒度地管理网格资源,提高网格的安全性。具体操作,请参见零信任安全概述。