当前位置:主页 > 查看内容

SLS智能告警-访问控制与授权

发布时间:2021-06-15 00:00| 位朋友查看

简介:前言 在使用阿里云SLS时 如果使用主账号创建更新告警 监控自身账号下的资源时 不会遇到权限问题 在很多场景下 为了使权限职责更加清楚 用户在使用阿里云时往往不会直接使用主账号来进行日常操作 而是会创建不同的子账号 赋予不同的权限 比如子账号A用来管理E……
前言

在使用阿里云SLS时 如果使用主账号创建更新告警 监控自身账号下的资源时 不会遇到权限问题 在很多场景下 为了使权限职责更加清楚 用户在使用阿里云时往往不会直接使用主账号来进行日常操作 而是会创建不同的子账号 赋予不同的权限 比如子账号A用来管理ECS实例 账号B用来管理日志服务 甚至还可以更细粒度的进行控制 比如子账号a用来采集日志 子账号b用来创建监控告警。这些对资源的访问控制都可以使用阿里云的访问控制机制来实现。本文将介绍如何使用阿里云的访问控制来创建SLS新版告警规则。

阿里云访问控制简单介绍

访问控制 RAM 是阿里云提供的管理用户身份与资源访问权限的服务。在阿里云上企业往往有各种资源 比如ECS资源 RDS实例资源等 如果只使用一个主账号来管理这些资源 会有很多管理上的不变和账号泄露的风险 RAM提供了一种机制 来允许企业对不同的资源进行分组和授权 对资源进行分组后 可以创建不同的RAM用户 然后对每个RAM用户设定不同的资源访问权限。

SLS服务的资源也支持使用阿里云RAM来进行资源分组和授权。

SLS服务中的资源包括项目 Logstore Loghub 采集配置 机器组等 对于每种资源都可以进行精细的权限控制 下图以Logstore为例 展示下一个用户下面的Logstore资源 主账号A下面可以在不同的区域有不同的Project 每个Project下有不同的Logstore。

image.png

对于这些资源SLS也定义了一些动作 比如对于Logstore资源 有log:GetLogStore,log:ListLogStores,log:CreateLogStore等动作 通过动作和资源 可以指定一个权限策略 即对这个资源可以做什么操作。


权限策略只是定义了一套对资源的控制策略 并没有定义谁能对这些资源做操作 在阿里云RAM中 权限策略可以赋给一个实体 比如RAM账号 RAM角色等 赋予之后 这个实体就拥有了这套权限策略

本文也将以此为背景介绍下如果给RAM用户配置SLS新版告警的权限 并对这些权限进行简单的介绍。

SLS新版告警资源

下图是SLS新版告警中自定义告警监控规则及内置告警监控规则的场景 下文也将以此为例展开。

image.png

从上图可以看到 在使用告警监控时 首先需要将各类设备、系统、服务的日志采集到SLS的日志存储 包括Trace数据 或者时序存储中 然后告警监控将会对这些日志或时序进行监控 在创建监控规则时自然就需要拥有这些日志库或时序库的访问权限 同时还要具有一些告警规则的相关权限 接下来将会详细介绍告警规则需要的资源及权限。

告警规则主要包含的权限包括以下四部分

告警中心Project、Logstore、仪表盘 用于告警整体的规则、事务、态势等记录 免费 创建项目下告警历史日志、告警仪表盘 用于记录每个告警规则评估历史日志及态势 免费 创建、更新、删除告警规则读取监控目标的数据告警中心Project及Logstore

告警中心Project是主账号下唯一的Project 包含一个内置的Logstore 用来存储全局告警评估 触发 通知 管理的日志。同时基于此Logstore 在中Project下 还默认创建有三个仪表盘 分别是

告警链路中心 告警规则从触发到分组抑制静默在到通知到全流程数据展示。监控规则中心 告警规则最新评估状态和各个合并集合中的告警的最新状态展示 及触发展示。告警排障中心 主要用于用户自助排查告警规则配置类的错误 比如通知中配置了不可达的webhook 行动策略中配置了不存在的用户组等。

在告警中心可以看到三个仪表盘的位置

image.png


告警中心Project的名称格式为 sls-alert-${uid}-${region} 主账号级别唯一 用户可以选择将这个project存储在哪个区域。

告警中心Logstore的名称固定为 internal-alert-center-log

由于创建告警规则在首次会需要创建出告警中心Project、Logstore、相关仪表盘

权限配置参考
{
 Statement : [
 Action : [
 log:CreateProject 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/sls-alert-* 
 Action : [
 log:CreateLogStore ,
 log:CreateIndex ,
 log:UpdateIndex 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log 
 Action : [
 log:CreateDashboard ,
 log:CreateChart ,
 log:UpdateDashboard 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/sls-alert-*/dashboard/* 
 Version : 1 
}
项目下告警历史日志库、告警仪表盘

在一个项目下创建一个告警规则时 SLS会默认在该Project创建一个记录告警评估历史的Logstore internal-alert-history 同时还会创建一个告警仪表盘 用于展示评估和触发的态势。

一个项目下的所有Logstore的告警监控规则共享同一个告警历史日志库和同一个告警仪表盘 通过告警规则配置详情可以看到该告警规则相关的仪表盘视图。

如下 展示的是一个告警规则对应的告警仪表盘。

image.png


以下展示是一个Project下的告警历史日志库 internal-alert-history

image.png

由于需要创建internal-alert-history和相关仪表盘 所以需要有相关权限 以下以在某个Project创建告警规则为例

权限配置参考
{
 Statement : [
 Action : [
 log:CreateLogStore ,
 log:CreateIndex ,
 log:UpdateIndex 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/项目名称/logstore/internal-alert-history ,
 Action : [
 log:CreateDashboard ,
 log:CreateChart ,
 log:UpdateDashboard 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/项目名称/dashboard/* ,
 Version : 1 
}

创建、更新、删除告警规则

告警监控规则在SLS中也是一种资源 资源名以job命名 一个项目下的告警规则可以通过点击告警图标查看。

如下所示为一个项目下的告警规则列表。

image.png

同样创建更新删除告警规则告警需要有规则相应的权限。

权限配置参考
{
 Statement : [
 Action : [
 log:* 
 Effect : Allow ,
 Resource : acs:log:*:*:project/项目名称/job/* 
 Version : 1 
}
监控目标权限

在创建告警规则时需要对监控目标拥有读取的权限 监控目标的授权方式包括三种 默认 内置角色 自定义角色 这里对内置角色和自定义角色不做展开 会有专门的文章来介绍内置角色和定义角色。默认授权方式是指使用当前创建告警规则的用户的权限来查询监控目标。

image.png

可以看出 在默认的授权方式下 当前账号需要有监控目标的读取权限。下面以某个项目下读取监控目标权限为例。

权限配置参考
{
 Statement : [
 Action : [
 log:GetLogStoreLogs ,
 log:GetIndex 
 Effect : Allow ,
 Resource : acs:log:*:*:project/项目名称* 
 Version : 1 
}

如果是在控制台配置告警 在查询分析页面和预览页面需要项目的一些浏览相关的权限 这些权限可以参考下面

控制台相关权限参考
{
 Statement : [
 Action : [
 log:ListProject 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:* 
 Action : [
 log:ListLogStores ,
 log:GetLogStoreHistogram ,
 log:GetLogStore ,
 log:ListSavedSearch ,
 log:ListDashboard ,
 log:GetLogging ,
 log:ListDomains ,
 log:ListTagResources ,
 log:GetAcceleration 
 Effect : Allow ,
 Resource : acs:log:*:*:project/项目名称* 
 Version : 1 
}


配置SLS新版告警规则管理权限

对于SLS新版告警规则需要的权限在上面进行了分类详细的介绍和每个权限的一些配置。根据账号类型的不同 权限配置策略不同。

主账号 主账号用于该账号所有云资源的权限 无需设置权限。RAM账号 RAM账号需要配置上文介绍的这些权限策略来创建更新删除告警规则。


以下以RAM账号为例 介绍配置的权限策略

极简授权 权限较大 创建简单。为RAM用户授予全部管理权限 AliyunLogFullAccess 。更多信息 请参见创建RAM用户及授权。自定义权限策略 权限精细 配置复杂。


以下介绍自定义权限策略的步骤

登录RAM 控制台。创建权限策略。在左侧导航栏中 选择权限管理 权限策略管理。单击创建权限策略。在新建自定义权限策略页面中 选择脚本配置。输入以下脚本 并单击确定。需要将脚本中的项目名称更换为相应的Project名称 可以根据实际需要更改相应资源的配置
{
 Statement : [
 Action : [
 log:CreateProject 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/sls-alert-* 
 Action : [
 log:CreateLogStore ,
 log:CreateIndex ,
 log:UpdateIndex 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/项目名称/logstore/internal-alert-history ,
 acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log 
 Action : [
 log:CreateDashboard ,
 log:CreateChart ,
 log:UpdateDashboard 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:project/项目名称/dashboard/* ,
 acs:log:*:*:project/sls-alert-*/dashboard/* 
 Action : [
 log:ListProject 
 Effect : Allow ,
 Resource : [
 acs:log:*:*:* 
 Action : [
 log:* 
 Effect : Allow ,
 Resource : acs:log:*:*:project/项目名称/job/* 
 Action : [
 log:GetLogStoreLogs ,
 log:GetIndex ,
 log:ListLogStores ,
 log:GetLogStoreHistogram ,
 log:GetLogStore ,
 log:ListSavedSearch ,
 log:ListDashboard ,
 log:GetLogging ,
 log:ListDomains ,
 log:ListTagResources ,
 log:GetAcceleration 
 Effect : Allow ,
 Resource : acs:log:*:*:project/项目名称* 
 Version : 1 
}


参考日志告警介绍【链接】授予RAM用户告警操作权限【链接】RAM资源分组和授权【链接】进一步参考SLS 日志服务 云原生观测分析平台 https://www.aliyun.com/product/slsSLS新版告警文档首页 https://help.aliyun.com/document_detail/207609.html欢迎扫群加入阿里云-日志服务 SLS 技术交流 集团同学请直接搜索群号11702236加入 ,?获得第一手资料与支持后续系列直播与培训视频会同步到B站 敬请留意

image


本文转自网络,原文链接:https://developer.aliyun.com/article/784691
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐