云敏自研基础模块之CBAC引擎介绍

序言

CBAC是“基于上下文的访问控制”(Context based Access Control)的英文首字母缩写,它是指云敏团队自研的一套以配置即代码为基础的高性能、可审计、可编程的分布式权限访问控制引擎,用于根据权限设置控制用户的操作,提升系统的安全性。

云敏自研基础模块之CBAC引擎介绍

一、访问控制概述

云敏自研基础模块之CBAC引擎介绍

访问控制是物理安全和信息安全领域的重要概念,它是指有选择性地限制对某个位置或资源的访问。而这里所说的“访问”可以包括消耗、进入或者使用。对某个资源的访问的许可被称为鉴权。

有效地进行访问控制,能够规避越权操作为系统安全性和使用体验带来的风险。诸如访问控制列表(ACL)、基于角色的访问控制(RBAC)都是我们常见的访问控制方式。

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

二、为什么要自研CBAC引擎?

云敏自研基础模块之CBAC引擎介绍

诚然,市面上有很多现成的访问控制系统,但这些系统往往都会有些功能方面的限制条件。比如上面提到的RBAC这种访问控制策略,最适合实现“只有甲方项目经理能够修改流水线”。但是如果我们期望使用访问控制规则实现“只有周五下午六点到七点之间可以启动部署流水线”,那么RBAC就无能为力了。因此,我们有必要回归到软件系统访问控制的本质上,实现一套通用的访问控制引擎,RBAC其实就是这个引擎中所配置的策略之一。

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

三、CBAC是如何被设计出来的?

云敏自研基础模块之CBAC引擎介绍

在软件系统的访问控制中,我们往往能够使用这样的句子来描述:

当满足 <某种关于用户、服务器的约束>,允许 <某种访问> 进行。

比如:

  • 当用户年龄满18岁,允许进入游戏

  • 当用户使用谷歌浏览器,允许获取短信验证码

  • 当服务器内存占用超过50%,允许执行内存回收

  • 当访问的服务器位于北京,允许购买华北机房的服务器

  • 当用户角色是系统管理员,允许修改系统设置

这些描述的背后,暗含了三个重要的要素:

  1. 上下文:当前访问环境的即时状态信息,既包括客户端上下文(当前用户、角色、浏览器等),也包括服务端的上下文(当前服务器的硬件基础设施、操作系统、软件等)

  2. 访问控制策略:依据上下文和约束条件进行鉴权结果计算的算法

  3. 访问:每一种访问都是包含了所使用的控制策略的约束条件输入

因此,我们有了一个公式:

鉴权结果 = 控制策略(上下文,访问约束条件)

根据这个公式,我们便得到了这个模型:

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

四、实现可配置性和可编程性

云敏自研基础模块之CBAC引擎介绍

可配置性和可编程性是CBAC的核心基础,只有这样,CBAC引擎才能根据不同的需求配置不同的访问控制策略。为此,我们的CBAC引擎构建于云敏流水线的另一个基础模块“配置即服务”(后序文章会为陆续介绍),同时技术选型采用Node.js作为开发语言。

我们先将js脚本嵌入到了YAML配置文件中,以rbac策略的配置为例:

云敏自研基础模块之CBAC引擎介绍

而要让这段字符串可以执行,我们使用了Data URL机制,直接将字符串转变为es模块。

云敏自研基础模块之CBAC引擎介绍

最后,将整个鉴权机制封装成服务,我们便得到了一套高性能、可编程、高可配置的访问控制引擎!

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

总结

CBAC引擎为云敏流水线带来了巨大的便利,实现了快速的权限配置和鉴权机制,大大加快了开发进度,如果您对此感兴趣,或者想了解云敏流水线的最新进展,欢迎与我们取得联系。

云敏自研基础模块之CBAC引擎介绍

文章作者:李   淳

排版设计:王蔚棋

手绘插画:岳   媛

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33155.html

(0)
EBCloud's avatarEBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • 梭子鱼防火墙

    随着网络安全威胁的不断增加,各行各业都在寻找更有效的防护手段。而在这个快节奏的时代,梭子鱼防火墙已经成为了网络安全加速行业的一匹黑马。它究竟是什么?它又有哪些功能和特点?与传统防火…

    行业资讯 2024年4月8日
    0
  • 域名被网络污染,域名被污染了怎么恢复

    DNS 服务提供商是负责将域名转换为IP 地址的机构。选择安全可靠的DNS服务提供商可以大大降低您的网上商店域名污染的风险。我们建议选择知名、值得信赖且安全的DNS 服务提供商,并…

    行业资讯 2024年5月6日
    0
  • 南昌网站设计

    南昌网站设计,是当前云服务器行业中备受关注的话题。随着互联网的发展,网站已经成为企业宣传、产品推广和客户交流的重要渠道。而南昌作为一个充满活力和发展潜力的城市,其网站设计行业也日渐…

    行业资讯 2024年4月2日
    0
  • 为什么dns会异常,为什么dns地址会改变

    为什么DNS这么容易被污染?这是困扰很多互联网用户的问题。随着互联网的普及,我们每天都在使用DNS服务,但您是否注意到您输入的网址可能打不开或者打开错误的页面?这可能是DNS污染造…

    行业资讯 2024年5月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注