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

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
对象存储 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


相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
14天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
3月前
|
安全 数据库 数据安全/隐私保护
|
3月前
|
安全 数据安全/隐私保护 开发者
|
3月前
|
安全 数据安全/隐私保护
|
3月前
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
71 0
|
5月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
存储 运维 Serverless
函数计算产品使用问题之日志告警不生效,一般是由于什么造成的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
弹性计算 运维 Shell
智能日志分析器
【4月更文挑战第30天】
50 0
|
6月前
|
JSON Prometheus Cloud Native
Grafana 系列 -Loki- 基于日志实现告警
Grafana 系列 -Loki- 基于日志实现告警
|
6月前
|
机器学习/深度学习 运维 监控
用SLS配置日志关键字告警的N种方法
本文由日志关键词告警出发,介绍了使用SLS进行关键词监控告警配置,并且介绍了几种常见的配置方法,可以覆盖关键词监控的大部分场景。
365 0
用SLS配置日志关键字告警的N种方法

相关产品

  • 日志服务
  • 下一篇
    无影云桌面