在使用阿里云SLS时 如果使用主账号创建更新告警 监控自身账号下的资源时 不会遇到权限问题 在很多场景下 为了使权限职责更加清楚 用户在使用阿里云时往往不会直接使用主账号来进行日常操作 而是会创建不同的子账号 赋予不同的权限 比如子账号A用来管理ECS实例 账号B用来管理日志服务 甚至还可以更细粒度的进行控制 比如子账号a用来采集日志 子账号b用来创建监控告警。这些对资源的访问控制都可以使用阿里云的访问控制机制来实现。本文将介绍如何使用阿里云的访问控制来创建SLS新版告警规则。
阿里云访问控制简单介绍访问控制 RAM 是阿里云提供的管理用户身份与资源访问权限的服务。在阿里云上企业往往有各种资源 比如ECS资源 RDS实例资源等 如果只使用一个主账号来管理这些资源 会有很多管理上的不变和账号泄露的风险 RAM提供了一种机制 来允许企业对不同的资源进行分组和授权 对资源进行分组后 可以创建不同的RAM用户 然后对每个RAM用户设定不同的资源访问权限。
SLS服务的资源也支持使用阿里云RAM来进行资源分组和授权。
SLS服务中的资源包括项目 Logstore Loghub 采集配置 机器组等 对于每种资源都可以进行精细的权限控制 下图以Logstore为例 展示下一个用户下面的Logstore资源 主账号A下面可以在不同的区域有不同的Project 每个Project下有不同的Logstore。
对于这些资源SLS也定义了一些动作 比如对于Logstore资源 有log:GetLogStore,log:ListLogStores,log:CreateLogStore等动作 通过动作和资源 可以指定一个权限策略 即对这个资源可以做什么操作。
权限策略只是定义了一套对资源的控制策略 并没有定义谁能对这些资源做操作 在阿里云RAM中 权限策略可以赋给一个实体 比如RAM账号 RAM角色等 赋予之后 这个实体就拥有了这套权限策略
本文也将以此为背景介绍下如果给RAM用户配置SLS新版告警的权限 并对这些权限进行简单的介绍。
SLS新版告警资源下图是SLS新版告警中自定义告警监控规则及内置告警监控规则的场景 下文也将以此为例展开。
从上图可以看到 在使用告警监控时 首先需要将各类设备、系统、服务的日志采集到SLS的日志存储 包括Trace数据 或者时序存储中 然后告警监控将会对这些日志或时序进行监控 在创建监控规则时自然就需要拥有这些日志库或时序库的访问权限 同时还要具有一些告警规则的相关权限 接下来将会详细介绍告警规则需要的资源及权限。
告警规则主要包含的权限包括以下四部分
告警中心Project、Logstore、仪表盘 用于告警整体的规则、事务、态势等记录 免费 创建项目下告警历史日志、告警仪表盘 用于记录每个告警规则评估历史日志及态势 免费 创建、更新、删除告警规则读取监控目标的数据告警中心Project及Logstore告警中心Project是主账号下唯一的Project 包含一个内置的Logstore 用来存储全局告警评估 触发 通知 管理的日志。同时基于此Logstore 在中Project下 还默认创建有三个仪表盘 分别是
告警链路中心 告警规则从触发到分组抑制静默在到通知到全流程数据展示。监控规则中心 告警规则最新评估状态和各个合并集合中的告警的最新状态展示 及触发展示。告警排障中心 主要用于用户自助排查告警规则配置类的错误 比如通知中配置了不可达的webhook 行动策略中配置了不存在的用户组等。在告警中心可以看到三个仪表盘的位置
告警中心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的告警监控规则共享同一个告警历史日志库和同一个告警仪表盘 通过告警规则配置详情可以看到该告警规则相关的仪表盘视图。
如下 展示的是一个告警规则对应的告警仪表盘。
以下展示是一个Project下的告警历史日志库 internal-alert-history
由于需要创建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命名 一个项目下的告警规则可以通过点击告警图标查看。
如下所示为一个项目下的告警规则列表。
同样创建更新删除告警规则告警需要有规则相应的权限。
权限配置参考{ Statement : [ Action : [ log:* Effect : Allow , Resource : acs:log:*:*:project/项目名称/job/* Version : 1 }监控目标权限
在创建告警规则时需要对监控目标拥有读取的权限 监控目标的授权方式包括三种 默认 内置角色 自定义角色 这里对内置角色和自定义角色不做展开 会有专门的文章来介绍内置角色和定义角色。默认授权方式是指使用当前创建告警规则的用户的权限来查询监控目标。
可以看出 在默认的授权方式下 当前账号需要有监控目标的读取权限。下面以某个项目下读取监控目标权限为例。
权限配置参考{ 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新版告警规则需要的权限在上面进行了分类详细的介绍和每个权限的一些配置。根据账号类型的不同 权限配置策略不同。
主账号 主账号用于该账号所有云资源的权限 无需设置权限。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 }
本文转载自公众号读芯术(ID:AI_Discovery)。 这一刻你正在应对什么挑战?这位前...
本文转载自微信公众号「bugstack虫洞栈」,作者小傅哥 。转载本文请联系bugstack...
近几年,互联网行业蓬勃发展,在互联网浪潮的冲击下,互联网创业已成为一种比较...
基本介绍 给定 n 个权值作为 n 个叶子节点,构造一颗二叉树,若该树的带权路径长...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
TIOBE 公布了 2021 年 3 月的编程语言排行榜。 本月 TIOBE 指数没有什么有趣的变...
背景 我们知道 如果在Kubernetes中支持GPU设备调度 需要做如下的工作 节点上安装...
前言 统计科学家使用交互式的统计工具(比如R)来回答数据中的问题,获得全景的认...
在Python开发过程中,我们难免会遇到多重条件判断的情况的情况,此时除了用很多...
溢价 域名 的续费价格如何?通常来说,因为溢价域名的价值高于普通域名,所以溢...