如何在資料庫中進行RBAC許可權應用

CloudQuery發表於2021-02-07

上週我們發了一篇關於“刪庫跑路”引發了大家對於資料安全的思考,而許可權管理又跟資料安全密不可分。許可權管理作為資料系統的重要組成部分,透過控制賬號的可支配能力,防止因使用者操作不當導致的資料洩露、資料篡改等問題,同時,對敏感資料按檢視角色進行隔離,避免不相關的人看到不應該瞭解的資料,達到風險管控的效果。
這篇文章,我們就來講講CloudQuery的許可權管理功能。

CloudQuery 如何設計資料許可權管理

當前我們使用的最為普及的許可權模型是RBAC(Role-Based Access Control,基於角色的訪問控制),CloudQuery 的許可權管理功能同樣是基於RBAC許可權模型。簡單來講,就是一個使用者擁有若干角色,每個角色擁有若干許可權。這樣,就構成了“使用者-角色-許可權”的授權模型。在該模型中,使用者與“角色”之間,角色和許可權之間,一般是多對多的關係。

rbac模型.png

而在RBAC模型之前,被廣泛應用的是DAC(Discretionary Access Control)自主訪問控制。DAC模型不具有“角色”這一概念,在系統中,管理員直接將許可權授予使用者,而擁有該許可權的使用者又可將許可權分配給其他使用者。在該模型中,只有使用者到許可權的多對多關係。DAC模型強調靈活性,所以適用於個人或幾個人的小團隊,因為其對許可權控制比較分散,當使用者超過一定人數會極大增加管理員的重複工作量,且容易出錯,不便於管理。

RBAC則彌補了DAC的缺陷,在使用者和許可權之間引入“角色”的概念後,每個使用者關聯一個或多個角色,每個角色關聯一個或多個許可權,角色可根據實際業務需求靈活建立,省去了每新增一個使用者就要關聯一遍所有許可權的麻煩,更加適用於複雜組織架構的許可權管理。並且RBAC模型也可模擬出DAC模型的效果。

下面,我們就具體來講講CloudQuery的許可權管理功能以及如何進行許可權授予。

基礎概念:

  • 賬號:系統管理員會給每個使用者建立一個賬號,使用者需要有對應賬號才能登入CloudQuery,相當於使用者的唯一令牌,去控制該賬號的可執行許可權。
  • 角色:從本質上來說角色是一組許可權或許可權集的集合。透過將幾個許可權或許可權集搭配授權至一個角色,再將角色繫結至使用者賬號,該使用者就能行使角色所承載的多個許可權。
  • 系統許可權:目前CloudQuery的系統許可權僅包含:系統設定、新增連線、審計分析。
  • 資料庫操作許可權:對資料庫和資料進行控制隔離,讓資料相關者看到合適的資料,將資料不相關者杜絕在外。目前資料庫操作許可權分為訪問層級限制和操作限制(增刪改查),精準控制使用者可訪問至某個連線下的某個資料庫中某張表,同時賦予一定的操作許可權。
  • 許可權集:多個許可權的合集
  • 初始化許可權集:在建立連線成功後會自動生成一個初始化許可權(最小許可權集),僅包含該連線下所有資料庫的SELECT許可權。初始化許可權集原生包含的操作許可權不可編輯與修改,但可新增其他資料操作許可權。
  • 初始化角色:隨初始化許可權集一同生成,當初始化許可權集中的許可權發生變化時,初始化角色包含的許可權自動更改。初始化角色不可編輯與修改,只能直接繫結使用者。

在CloudQuery的許可權管理中,一共有三個角色:系統管理員、Owner以及普通使用者。下面,我們分別就這三個角色來說明他們的許可權管理。

系統管理員

系統管理員可以對組織架構下所有使用者進行系統許可權的授權。

截圖20210204 下午3.10.48.png

Step 1:系統管理員建立角色
Step 2:將單一或多個許可權授予一個角色
Step 3:將角色繫結至使用者

Owner

Owner是擁有“新增連線”許可權的人,可以分配所有連線下的所有資料操作許可權至普通使用者。

截圖20210204 下午4.26.28.png

Step 1:Owner 建立資料操作許可權
Step 2:建立許可權集。可將單個或多個資料操作許可權儲存至一個許可權集。這裡需要注意的是,在建立連線成功後,許可權集中天然生成了初始化許可權集。
Step 3:建立角色
Step 4:將許可權授予角色。在資料操作許可權的角色管理中,可以直接將單個或多個操作許可權授予角色,也可將許可權集授予角色。
可簡單化為公式:m許可權+n許可權集=角色許可權(m和n至少有一個不等於0)
Step 5:將角色繫結至使用者

普通使用者

系統管理員和Owner會根據企業內實際業務情況,授予不同部門的員工相應的系統許可權和資料操作許可權。普通使用者只能在自己的許可權範圍內對系統進行操作。

例如:給張三賦予“運營分析專員”角色,“運營分析專員”具有公司某個MySQL連線中“銷售資料庫”中所有表的“查詢表”許可權。此時,張三則可進入系統進行該庫下所有表的查詢操作,但除此之外,張三不可在“銷售庫”中進行建立表或刪除表等其他動作,更無法檢視除“銷售資料庫”以外的其他資料庫。

總結

透過本文,可以更加系統地瞭解目前CloudQuery的許可權模組功能。DBA可以針對性地進行資料庫操作授權,同時為了減少授權工作量還可以搭配許可權集、角色等等定義。為了讓我們的資料更安全,為了讓各種資料操作者行為更加規範,一起來體驗一下全新的CloudQuery許可權管控功能吧。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985270/viewspace-2756660/,如需轉載,請註明出處,否則將追究法律責任。

相關文章