涂增英
(美的集团 广东佛山 528311)(zengying.tu@midea.com)
当前,几乎所有企业都在思考数字化转型的方法,并把数字化转型当作企业未来生存和发展的制胜法宝.随着企业信息化工作和数字化转型工作的深入,企业的核心竞争力将会以各个信息系统中的数据来体现.所以数据的价值将会越来越高,而控制数据的安全访问,也成为企业重点关注的问题.
与此同时,零信任架构的理念[1-2]也逐步成熟,信息安全领域开始了以零信任理念为基础,研究为企业数字化转型保驾护航的课题.其中,探索零信任架构中权限管理方式就是重要的课题之一.
在零信任架构中,“从不信任,始终验证”[3]是最基本的观点,统一的认证和授权是它的核心能力.通过建设统一的权限管理平台,可以对零信任的授权机制实现统一管控和治理.
在企业开展信息化和数字化工作的过程中,越来越多的信息系统被建设起来,全方位实现了工作的在线化、可视化和数字化,并实现了各个系统之间数据的交互和流通.然而,这些信息系统通常是由不同的人员设计的.不同的人员对于权限管理的理解和习惯都有很大的不同.另外,权限管理的方式,通常也与各个系统承载的业务紧密相关.随着信息化和数字化进程的深入,缺乏统一架构设计的系统越来越多,权限管理的模型和使用方式也越来越多.在各个系统中,权限管理功能的重复建设不仅造成不必要的预算浪费,对于管理成本和后续运维也带来诸多痛点.
对于普通用户的主要痛点:
1) 每个系统都有各自的申请入口,用户需要申请权限时,需要花费很大的精力去寻找到申请入口.这对于新员工来说是一次非常糟糕的体验.
2) 每个系统的申请方式都不尽相同,有些通过邮件申请,有些通过内部聊天工具申请,有些通过电话申请,有些通过简单的申请页面申请.不同的系统有着不同的申请方式,给用户造成很大的困惑,同时,也带来一系列的审计和举证问题.
对于审计人员的主要痛点:
用户权限分布在各个系统中,审计用户权限时,需要逐个系统核查,工作量大、周期长、时效性低.
对于企业安全管理的主要痛点:
1) 每个系统设计者对于权限管控的重要性有着不同的认识.比如,一些系统的用户权限没有设置权限到期时间,一旦给用户授予权限,不管用户以后用不用这个权限,都会一直保留.又如,对于权限的管控粒度是否合适,也会因为设计者的认知偏差而受影响.从数据安全性考虑,一个合适的权限管理方案是非常重要且需要谨慎对待,但是各个系统往往会把工作重心放在业务功能设计上,而权限管控容易被忽略或被滞后处理.
2) 对于普通用户,在工作过程中会不断地需要增加系统权限.有时是为了日常工作,有时是为了临时工作.慢慢地,用户在各个系统中的权限越来越多,越来越分散.几年之后,对于使用较少的系统,用户多数情况下是不清楚自己在哪个系统有权限,有什么权限.没有管理手段跟进,多数用户不会主动取消这些多余的权限.当用户调岗或离职之后,用户的权限可能仍然有效.这都是业务系统潜在的安全风险和合规风险.
3) 权限管控不到位,没有遵循最小权限原则,很大程度上放大了用户权限.
除此之外,还有很多其他的问题,如缺乏统一的权限管理规范、系统管理员手动干预太多、容易造成误操作等等.这些问题的根源都是没有对权限进行统一管理造成的,后续我们将讨论如何解决这些问题.
我们无时无刻都在使用“权限”,都在讨论“权限”.在信息系统中,权限管理是指什么呢,从百度百科中得到的答案是:一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少[4].在数字世界,资源包含了一切,不管是你看到的,还是听到的.所以,必须对这些资源进行管控,否则就会“失控”或“泄露”.这种过程就可以简单称为权限管理.权限管理的目的就是为了确保“资源”只能被已授权的用户访问和使用.经过大量调研和分析,目前大部分系统的权限管理都由功能权限和数据权限2部分组成.功能权限主要是指信息系统中的各种功能(比如添加、删除、修改)或功能菜单,通常我们所知道的角色,就是最常见的一种功能权限的表现形式;数据权限主要是指各种功能可以操作的数据范围,最常见的一种数据权限控制维度就是企业行政组织架构,拥有不用组织权限时,看到的数据也不同.图1所示为功能权限和数据权限的组成部分:
图1 功能权限和数据权限的组成
我们可以理解为:数据权限是在功能权限基础之上更加细化的一种权限管控方式.如果信息系统的数据是所有用户都可以看到的,那无需对数据进行控制,只需要定义合适的角色即可.
在大部分企业中,权限管理的工作仍然是信息系统管理员的工作.这些管理员对于所负责的权限数据非常熟悉,但是业务用户对于权限是什么没有什么概念.他们只能描述成需要完成什么工作,管理员再基于对这种描述的理解赋予用户相应的权限.这种场景下,非常难以做到权限最小化和准确化,导致权限管理过于松散,不利于安全控制,也给业务带来各种风险.随着业务用户越来越多,业务系统随之增多,需要逐步把权限管理的工作分散给业务用户,把信息系统管理人员从简单重复的工作中解放出来,提高人员工作效率.
然而,如前文所述,各个信息系统的权限管理方式和模型是不同的,想要对权限进行统一管控,就需要一套能够兼容现有系统权限管理模型且能适应未来信息系统要求的模型,一个可以自定义模型的模型,如图2所示.
图2 自定义模型
在自定义模型设计中,最重要的是引入了2个概念:权限对象和权限维度.权限对象就是前面提到的功能权限和数据权限的抽象.一个系统中可以定义1个或多个权限对象,每个权限对象之间是相互独立的,前面提到的功能权限和数据权限就是一种权限对象;每个权限对象中可以定义1个或多个权限维度,每个权限维度都对应了各个应用系统中控制权限的维度,通常维度越多,权限控制的粒度越细.为了更好地说明这种设计思路的可行性,下面介绍企业中使用最为广泛的2种权限模型,如图3所示.
图3 权限模型举例
模型1:在一个权限对象下定义2个权限维度,如角色和组织.角色代表1组功能操作,如菜单.组织代表数据权限,如行政组织架构,最终形成的权限意义是1个用户只能对指定的组织架构数据进行相应的功能操作.每次授予和取消权限,都需要按照角色和组织的对应关系进行操作.
模型2:定义2个权限对象,每个权限对象下定义1个权限维度,分别是角色和组织.角色代表1组功能操作.组织代表数据权限,最终形成的权限意义是1个用户能够对指定的组织架构数据进行相应的功能操作.但是在进行权限授予和取消时,可以分别申请或取消角色,或分别申请或取消组织.当用户再申请1个角色时,这个角色和以前申请的角色共享1份数据权限;当用户再申请1个行政组织时,这个行政组织代表的数据权限适用于用户所有已有角色.
除了这2种常用的权限模型外,还可以定义出很多其他的模型,灵活性非常高.所以,基于这种设计,可以将企业中各个业务系统中的权限数据进行汇集,实现统一管理的目标.
在企业中实现统一权限管理,对于统一权限平台的稳定性、可靠性和性能要求是非常高的.这里采用Mysql作为核心数据(包括用户权限、各系统的功能权限和数据权限基础数据等)的核心存储库,在必要时需要进行分表分库存储.同时,使用Redis和ElasticSearch作为缓存,提升对外服务的性能.平台提供的核心服务采用微服务的方式实现,提升各个服务的独立性和扩展性.在与各个信息系统集成时,可以支持https和MQ这2种接入服务,图4是平台架构示意图.
图4 平台架构
对于统一权限平台方,需要定义信息系统接入的统一接口规范,由各系统自行实现权限逻辑,这样才能避免权限平台实现逻辑过于复杂,同时加速平台的推广和零信任体系的落地.
在零信任架构中,持续认证和授权是核心能力之一,也是传统IAM(identity and access management)权限管理方式的不同之处.访问主体需要进行的认证强度和被授予的权限大小,都和主体所处的环境、客体的安全状况和安全要求、访问的时间等因素有关.用户在访问信息系统的过程中,零信任组件会不断向后端发起鉴权请求,按照权限最小化原则和相应的安全策略,给用户动态授予合适的操作权限并终止不合适的权限.如果由各个信息系统单独实现权限管理服务和鉴权服务,零信任架构的复杂度、统一安全策略的实施难度以及各类服务的效率,都会随着信息系统的增加而增加.因此,建设统一权限平台,是一个必然的选择.
基于统一权限平台可以实现企业很多管理目标,例如:
第一,从用户角度,用户可以在统一的平台实现权限的自我管理,包括申请、延期、取消等,也可以看到自己在各个系统中的权限情况.
第二,从安全角度,企业发布的公司级别安全策略,可以通过平台一次性落地.
第三,从审计角度,用户权限的全生命周期状态,都可以通过平台进行跟踪,确保用户权限管理的可追溯性.
第四,从合规角度,单个系统只能实现系统内部的职责分离和控制,无法实现跨系统之间的职责分离和管控,进一步减少管控盲区,提高合规能力.
第五,从投资角度,新建的信息系统不再需要建设权限管理功能,减少建设周期和投入.
第六,从管理角度,管理用户权限,可以通过用户自助的流程化管理方式,较少管理过程中的任意参与.
对于企业来说,建设统一平台的收益远远不止于此.随着数字化工作的开展,实现数据安全可控是最核心的价值和目标.
目前,本文方案已经在实际项目中得到应用,效果很好.统一权限平台建设是一个逐步完善的过程:在访问控制技术上,要支持基于角色的访问控制(role-based access control, RBAC)[5-6],也要支持基于属性的访问控制(attribute-based access control, ABAC)[7];在使用场景中,要考虑用户体验、合规、安全性等问题.总之,权限管控的目标就是保障业务和数据的安全性.随着零信任架构落地方案的成熟,实现权限的统一管理将是企业安全建设的重要组成部分.