涂增英
(美的集團 廣東佛山 528311)(zengying.tu@midea.com)
當(dāng)前,幾乎所有企業(yè)都在思考數(shù)字化轉(zhuǎn)型的方法,并把數(shù)字化轉(zhuǎn)型當(dāng)作企業(yè)未來生存和發(fā)展的制勝法寶.隨著企業(yè)信息化工作和數(shù)字化轉(zhuǎn)型工作的深入,企業(yè)的核心競爭力將會以各個信息系統(tǒng)中的數(shù)據(jù)來體現(xiàn).所以數(shù)據(jù)的價值將會越來越高,而控制數(shù)據(jù)的安全訪問,也成為企業(yè)重點關(guān)注的問題.
與此同時,零信任架構(gòu)的理念[1-2]也逐步成熟,信息安全領(lǐng)域開始了以零信任理念為基礎(chǔ),研究為企業(yè)數(shù)字化轉(zhuǎn)型保駕護航的課題.其中,探索零信任架構(gòu)中權(quán)限管理方式就是重要的課題之一.
在零信任架構(gòu)中,“從不信任,始終驗證”[3]是最基本的觀點,統(tǒng)一的認證和授權(quán)是它的核心能力.通過建設(shè)統(tǒng)一的權(quán)限管理平臺,可以對零信任的授權(quán)機制實現(xiàn)統(tǒng)一管控和治理.
在企業(yè)開展信息化和數(shù)字化工作的過程中,越來越多的信息系統(tǒng)被建設(shè)起來,全方位實現(xiàn)了工作的在線化、可視化和數(shù)字化,并實現(xiàn)了各個系統(tǒng)之間數(shù)據(jù)的交互和流通.然而,這些信息系統(tǒng)通常是由不同的人員設(shè)計的.不同的人員對于權(quán)限管理的理解和習(xí)慣都有很大的不同.另外,權(quán)限管理的方式,通常也與各個系統(tǒng)承載的業(yè)務(wù)緊密相關(guān).隨著信息化和數(shù)字化進程的深入,缺乏統(tǒng)一架構(gòu)設(shè)計的系統(tǒng)越來越多,權(quán)限管理的模型和使用方式也越來越多.在各個系統(tǒng)中,權(quán)限管理功能的重復(fù)建設(shè)不僅造成不必要的預(yù)算浪費,對于管理成本和后續(xù)運維也帶來諸多痛點.
對于普通用戶的主要痛點:
1) 每個系統(tǒng)都有各自的申請入口,用戶需要申請權(quán)限時,需要花費很大的精力去尋找到申請入口.這對于新員工來說是一次非常糟糕的體驗.
2) 每個系統(tǒng)的申請方式都不盡相同,有些通過郵件申請,有些通過內(nèi)部聊天工具申請,有些通過電話申請,有些通過簡單的申請頁面申請.不同的系統(tǒng)有著不同的申請方式,給用戶造成很大的困惑,同時,也帶來一系列的審計和舉證問題.
對于審計人員的主要痛點:
用戶權(quán)限分布在各個系統(tǒng)中,審計用戶權(quán)限時,需要逐個系統(tǒng)核查,工作量大、周期長、時效性低.
對于企業(yè)安全管理的主要痛點:
1) 每個系統(tǒng)設(shè)計者對于權(quán)限管控的重要性有著不同的認識.比如,一些系統(tǒng)的用戶權(quán)限沒有設(shè)置權(quán)限到期時間,一旦給用戶授予權(quán)限,不管用戶以后用不用這個權(quán)限,都會一直保留.又如,對于權(quán)限的管控粒度是否合適,也會因為設(shè)計者的認知偏差而受影響.從數(shù)據(jù)安全性考慮,一個合適的權(quán)限管理方案是非常重要且需要謹(jǐn)慎對待,但是各個系統(tǒng)往往會把工作重心放在業(yè)務(wù)功能設(shè)計上,而權(quán)限管控容易被忽略或被滯后處理.
2) 對于普通用戶,在工作過程中會不斷地需要增加系統(tǒng)權(quán)限.有時是為了日常工作,有時是為了臨時工作.慢慢地,用戶在各個系統(tǒng)中的權(quán)限越來越多,越來越分散.幾年之后,對于使用較少的系統(tǒng),用戶多數(shù)情況下是不清楚自己在哪個系統(tǒng)有權(quán)限,有什么權(quán)限.沒有管理手段跟進,多數(shù)用戶不會主動取消這些多余的權(quán)限.當(dāng)用戶調(diào)崗或離職之后,用戶的權(quán)限可能仍然有效.這都是業(yè)務(wù)系統(tǒng)潛在的安全風(fēng)險和合規(guī)風(fēng)險.
3) 權(quán)限管控不到位,沒有遵循最小權(quán)限原則,很大程度上放大了用戶權(quán)限.
除此之外,還有很多其他的問題,如缺乏統(tǒng)一的權(quán)限管理規(guī)范、系統(tǒng)管理員手動干預(yù)太多、容易造成誤操作等等.這些問題的根源都是沒有對權(quán)限進行統(tǒng)一管理造成的,后續(xù)我們將討論如何解決這些問題.
我們無時無刻都在使用“權(quán)限”,都在討論“權(quán)限”.在信息系統(tǒng)中,權(quán)限管理是指什么呢,從百度百科中得到的答案是:一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問而且只能訪問自己被授權(quán)的資源,不多不少[4].在數(shù)字世界,資源包含了一切,不管是你看到的,還是聽到的.所以,必須對這些資源進行管控,否則就會“失控”或“泄露”.這種過程就可以簡單稱為權(quán)限管理.權(quán)限管理的目的就是為了確?!百Y源”只能被已授權(quán)的用戶訪問和使用.經(jīng)過大量調(diào)研和分析,目前大部分系統(tǒng)的權(quán)限管理都由功能權(quán)限和數(shù)據(jù)權(quán)限2部分組成.功能權(quán)限主要是指信息系統(tǒng)中的各種功能(比如添加、刪除、修改)或功能菜單,通常我們所知道的角色,就是最常見的一種功能權(quán)限的表現(xiàn)形式;數(shù)據(jù)權(quán)限主要是指各種功能可以操作的數(shù)據(jù)范圍,最常見的一種數(shù)據(jù)權(quán)限控制維度就是企業(yè)行政組織架構(gòu),擁有不用組織權(quán)限時,看到的數(shù)據(jù)也不同.圖1所示為功能權(quán)限和數(shù)據(jù)權(quán)限的組成部分:
圖1 功能權(quán)限和數(shù)據(jù)權(quán)限的組成
我們可以理解為:數(shù)據(jù)權(quán)限是在功能權(quán)限基礎(chǔ)之上更加細化的一種權(quán)限管控方式.如果信息系統(tǒng)的數(shù)據(jù)是所有用戶都可以看到的,那無需對數(shù)據(jù)進行控制,只需要定義合適的角色即可.
在大部分企業(yè)中,權(quán)限管理的工作仍然是信息系統(tǒng)管理員的工作.這些管理員對于所負責(zé)的權(quán)限數(shù)據(jù)非常熟悉,但是業(yè)務(wù)用戶對于權(quán)限是什么沒有什么概念.他們只能描述成需要完成什么工作,管理員再基于對這種描述的理解賦予用戶相應(yīng)的權(quán)限.這種場景下,非常難以做到權(quán)限最小化和準(zhǔn)確化,導(dǎo)致權(quán)限管理過于松散,不利于安全控制,也給業(yè)務(wù)帶來各種風(fēng)險.隨著業(yè)務(wù)用戶越來越多,業(yè)務(wù)系統(tǒng)隨之增多,需要逐步把權(quán)限管理的工作分散給業(yè)務(wù)用戶,把信息系統(tǒng)管理人員從簡單重復(fù)的工作中解放出來,提高人員工作效率.
然而,如前文所述,各個信息系統(tǒng)的權(quán)限管理方式和模型是不同的,想要對權(quán)限進行統(tǒng)一管控,就需要一套能夠兼容現(xiàn)有系統(tǒng)權(quán)限管理模型且能適應(yīng)未來信息系統(tǒng)要求的模型,一個可以自定義模型的模型,如圖2所示.
圖2 自定義模型
在自定義模型設(shè)計中,最重要的是引入了2個概念:權(quán)限對象和權(quán)限維度.權(quán)限對象就是前面提到的功能權(quán)限和數(shù)據(jù)權(quán)限的抽象.一個系統(tǒng)中可以定義1個或多個權(quán)限對象,每個權(quán)限對象之間是相互獨立的,前面提到的功能權(quán)限和數(shù)據(jù)權(quán)限就是一種權(quán)限對象;每個權(quán)限對象中可以定義1個或多個權(quán)限維度,每個權(quán)限維度都對應(yīng)了各個應(yīng)用系統(tǒng)中控制權(quán)限的維度,通常維度越多,權(quán)限控制的粒度越細.為了更好地說明這種設(shè)計思路的可行性,下面介紹企業(yè)中使用最為廣泛的2種權(quán)限模型,如圖3所示.
圖3 權(quán)限模型舉例
模型1:在一個權(quán)限對象下定義2個權(quán)限維度,如角色和組織.角色代表1組功能操作,如菜單.組織代表數(shù)據(jù)權(quán)限,如行政組織架構(gòu),最終形成的權(quán)限意義是1個用戶只能對指定的組織架構(gòu)數(shù)據(jù)進行相應(yīng)的功能操作.每次授予和取消權(quán)限,都需要按照角色和組織的對應(yīng)關(guān)系進行操作.
模型2:定義2個權(quán)限對象,每個權(quán)限對象下定義1個權(quán)限維度,分別是角色和組織.角色代表1組功能操作.組織代表數(shù)據(jù)權(quán)限,最終形成的權(quán)限意義是1個用戶能夠?qū)χ付ǖ慕M織架構(gòu)數(shù)據(jù)進行相應(yīng)的功能操作.但是在進行權(quán)限授予和取消時,可以分別申請或取消角色,或分別申請或取消組織.當(dāng)用戶再申請1個角色時,這個角色和以前申請的角色共享1份數(shù)據(jù)權(quán)限;當(dāng)用戶再申請1個行政組織時,這個行政組織代表的數(shù)據(jù)權(quán)限適用于用戶所有已有角色.
除了這2種常用的權(quán)限模型外,還可以定義出很多其他的模型,靈活性非常高.所以,基于這種設(shè)計,可以將企業(yè)中各個業(yè)務(wù)系統(tǒng)中的權(quán)限數(shù)據(jù)進行匯集,實現(xiàn)統(tǒng)一管理的目標(biāo).
在企業(yè)中實現(xiàn)統(tǒng)一權(quán)限管理,對于統(tǒng)一權(quán)限平臺的穩(wěn)定性、可靠性和性能要求是非常高的.這里采用Mysql作為核心數(shù)據(jù)(包括用戶權(quán)限、各系統(tǒng)的功能權(quán)限和數(shù)據(jù)權(quán)限基礎(chǔ)數(shù)據(jù)等)的核心存儲庫,在必要時需要進行分表分庫存儲.同時,使用Redis和ElasticSearch作為緩存,提升對外服務(wù)的性能.平臺提供的核心服務(wù)采用微服務(wù)的方式實現(xiàn),提升各個服務(wù)的獨立性和擴展性.在與各個信息系統(tǒng)集成時,可以支持https和MQ這2種接入服務(wù),圖4是平臺架構(gòu)示意圖.
圖4 平臺架構(gòu)
對于統(tǒng)一權(quán)限平臺方,需要定義信息系統(tǒng)接入的統(tǒng)一接口規(guī)范,由各系統(tǒng)自行實現(xiàn)權(quán)限邏輯,這樣才能避免權(quán)限平臺實現(xiàn)邏輯過于復(fù)雜,同時加速平臺的推廣和零信任體系的落地.
在零信任架構(gòu)中,持續(xù)認證和授權(quán)是核心能力之一,也是傳統(tǒng)IAM(identity and access management)權(quán)限管理方式的不同之處.訪問主體需要進行的認證強度和被授予的權(quán)限大小,都和主體所處的環(huán)境、客體的安全狀況和安全要求、訪問的時間等因素有關(guān).用戶在訪問信息系統(tǒng)的過程中,零信任組件會不斷向后端發(fā)起鑒權(quán)請求,按照權(quán)限最小化原則和相應(yīng)的安全策略,給用戶動態(tài)授予合適的操作權(quán)限并終止不合適的權(quán)限.如果由各個信息系統(tǒng)單獨實現(xiàn)權(quán)限管理服務(wù)和鑒權(quán)服務(wù),零信任架構(gòu)的復(fù)雜度、統(tǒng)一安全策略的實施難度以及各類服務(wù)的效率,都會隨著信息系統(tǒng)的增加而增加.因此,建設(shè)統(tǒng)一權(quán)限平臺,是一個必然的選擇.
基于統(tǒng)一權(quán)限平臺可以實現(xiàn)企業(yè)很多管理目標(biāo),例如:
第一,從用戶角度,用戶可以在統(tǒng)一的平臺實現(xiàn)權(quán)限的自我管理,包括申請、延期、取消等,也可以看到自己在各個系統(tǒng)中的權(quán)限情況.
第二,從安全角度,企業(yè)發(fā)布的公司級別安全策略,可以通過平臺一次性落地.
第三,從審計角度,用戶權(quán)限的全生命周期狀態(tài),都可以通過平臺進行跟蹤,確保用戶權(quán)限管理的可追溯性.
第四,從合規(guī)角度,單個系統(tǒng)只能實現(xiàn)系統(tǒng)內(nèi)部的職責(zé)分離和控制,無法實現(xiàn)跨系統(tǒng)之間的職責(zé)分離和管控,進一步減少管控盲區(qū),提高合規(guī)能力.
第五,從投資角度,新建的信息系統(tǒng)不再需要建設(shè)權(quán)限管理功能,減少建設(shè)周期和投入.
第六,從管理角度,管理用戶權(quán)限,可以通過用戶自助的流程化管理方式,較少管理過程中的任意參與.
對于企業(yè)來說,建設(shè)統(tǒng)一平臺的收益遠遠不止于此.隨著數(shù)字化工作的開展,實現(xiàn)數(shù)據(jù)安全可控是最核心的價值和目標(biāo).
目前,本文方案已經(jīng)在實際項目中得到應(yīng)用,效果很好.統(tǒng)一權(quán)限平臺建設(shè)是一個逐步完善的過程:在訪問控制技術(shù)上,要支持基于角色的訪問控制(role-based access control, RBAC)[5-6],也要支持基于屬性的訪問控制(attribute-based access control, ABAC)[7];在使用場景中,要考慮用戶體驗、合規(guī)、安全性等問題.總之,權(quán)限管控的目標(biāo)就是保障業(yè)務(wù)和數(shù)據(jù)的安全性.隨著零信任架構(gòu)落地方案的成熟,實現(xiàn)權(quán)限的統(tǒng)一管理將是企業(yè)安全建設(shè)的重要組成部分.