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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在使用阿里云SLS时,如果使用主账号创建更新告警,监控自身账号下的资源时,不会遇到权限问题;在很多场景下,为了使权限职责更加清楚,用户在使用阿里云时往往不会直接使用主账号来进行日常操作,而是会创建不同的子账号,赋予不同的权限,比如子账号A用来管理ECS实例,账号B用来管理日志服务;甚至还可以更细粒度的进行控制,比如子账号a用来采集日志,子账号b用来创建监控告警。这些对资源的访问控制都可以使用阿里云的访问控制机制来实现。本文将介绍如何使用阿里云的访问控制来创建SLS新版告警规则。

前言

在使用阿里云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

告警概览

中用除告警

品修改配置

基础信息

所属仪表盘

告弯历史统计

创建时间

2021-06-0721:41:19

检查频率

2021-06-0800:02:46

上次更新

固定间隔1分钟

设置

启用状态

已开启

已启用

关闭

监控状态

统计报表

告警历史统计

入全屏

C刷新

重置时间

时间选择

执行成功时通知率今天(..告警规则执行次数Top10

告警次数今天(相对)

执行成功率今天(相对)

今天(相对)

3次3次

环比昨日

3605050%0

8

28

新告警测试告警状态

通知成功次数今天(相对)

90

三g

D0

3次

执行成功率

执行成功时通知率

100%

100%

环比昨日

100.00%


以下展示是一个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用户及授权
  • 自定义权限策略:权限精细,配置复杂。


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

  • 在左侧导航栏中,选择权限管理 > 权限策略管理
  • 单击创建权限策略
  • 新建自定义权限策略页面中,选择脚本配置。输入以下脚本,并单击确定。需要将脚本中的项目名称更换为相应的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资源分组和授权【链接

进一步参考



最后,如果您还想了解更多智能运维前沿资讯,欢迎您报名参加【数智创新行·智能运维专场】。

6月25日|上海·西岸国际人工智能中心

数智创新行上海站·智能运维专场

阿里云将带来云原生智能运维解决方案,满足海量事件有效感知、高效响应,可观测数据统一分析、故障定位,以及基于AI的异常检测等需求,助力企业构建自己的运维平台,成为开发、运维人员高效可靠的助手。

扫描海报二维码或点击下方链接报名, 期待您一起开启智能运维新时代!

https://www.aliyun.com/page-source//developer/special/osssalon智能运维专场图片.jpg


相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
1月前
|
监控 安全 网络安全
安全防御之授权和访问控制技术
授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问相应的资源。
75 0
|
1月前
|
JSON Prometheus Cloud Native
Grafana 系列 -Loki- 基于日志实现告警
Grafana 系列 -Loki- 基于日志实现告警
|
6月前
|
Web App开发 存储 监控
日志服务之告警接入与管理
本教程介绍如何使用日志服务接入NGINX模拟数据,并配置告警规则来对NGINX访问错误进行监控。
323 0
|
3月前
|
人工智能 运维 监控
SLS 智能运维 AI 基础模型创新
SLS 全新发布运维场景基础模型,覆盖 Log、Metric、Trace 等可观测数据场景,模型提供开箱即用的异常检测、自动标注、分类和根因分析等能力;根因分析算法千级异常请求秒级定位,生产中准确率达95%;同时支持人工辅助微调,提供人工标注、结果打标修正,模型根据人工反馈自动微调,提升场景准确率。
90991 1
|
3月前
|
人工智能 运维 自然语言处理
AI Powered SLS 智能分析能力创新
随着云计算技术不断升级,承载业务的 IT 基础设施规模扩大,各个应用之间的链路关系变得越来越复杂,每时每刻都在产生海量级的日志。
97884 3
|
10月前
|
机器学习/深度学习 SQL 存储
SLS智能巡检最佳实践:针对有异常标签数据
日志服务 SLS 智能异常分析 APP 提供自动化、智能化模型训练能力,可以根据设定的历史数据区间进行监督建模。您可以使用模型训练任务通过监督的方式加强对自身数据的异常学习,来提升未来的异常预警的准确率,模型训练任务主要有以下优势:直接使用SLS的智能巡检功能,准确率不及预期,可以选择使用SLS的模型训练任务,来提升异常检测的准确性智能巡检检测出来的异常和您所认为的异常之间可能存在gap,这种情况
155 0
|
10月前
|
运维 监控 数据处理
SLS智能巡检最佳实践:创建预测任务
日志服务 SLS 智能异常分析 APP 提供自动化、智能化模型训练能力,可以根据设定的历史数据区间进行监督建模。您可以使用模型训练任务通过监督的方式加强对自身数据的异常学习,来提升未来的异常预警的准确率,模型训练任务主要有以下优势:直接使用SLS的智能巡检功能,准确率不及预期,可以选择使用SLS的模型训练任务,来提升异常检测的准确性智能巡检检测出来的异常和您所认为的异常之间可能存在gap,这种情况
212 0
|
10月前
|
存储 运维 监控
SLS智能巡检最佳实践:针对无标签数据
日志服务 SLS 智能异常分析 APP 提供自动化、智能化模型训练能力,可以根据设定的历史数据区间进行监督建模。您可以使用模型训练任务通过监督的方式加强对自身数据的异常学习,来提升未来的异常预警的准确率,模型训练任务主要有以下优势:直接使用SLS的智能巡检功能,准确率不及预期,可以选择使用SLS的模型训练任务,来提升异常检测的准确性智能巡检检测出来的异常和您所认为的异常之间可能存在gap,这种情况
115 0
|
运维
《基于日志trace的智能故障定位系统》电子版地址
基于日志trace的智能故障定位系统
50 0
《基于日志trace的智能故障定位系统》电子版地址
|
监控
限制SLS告警通知时段的几种常见方法
在对系统进行监控告警的过程中,有时候并非在任何时候都要接收告警通知,本文会介绍几种常见的限制告警通知时段的方法,以及它们各自所适用的场景。
339 0
限制SLS告警通知时段的几种常见方法

相关产品

  • 日志服务