01.06 漫談PetaBase-i的基於角色的細粒度授權系統

近幾年來,企業對數據的重視程度與日俱增,與之相伴的是企業對數據安全的風險意識也越來越高。每一天都有更多的數據、用戶或者應用進入企業的數據中心中來,雖然對於以數據驅動的組織來說這是一個好消息,但對於安全管理人員來說,如何保證用戶數據訪問和BI應用程序的充分安全是個揮之不去的問題。

痛點:數據安全管理存在問題

數據在生產過程中,可能因人為管理不善帶來各類風險,如內部人員導致的數據洩露和暴露企業與個人隱私等。很多企業正在部署或者已經部署了大數據平臺,這些平臺絕大部分都是採用目前流行的Hadoop架構,儘管Hadoop在文件系統層有很強的安全性,但它缺乏顆粒級的授權支持。因此,這些企業不得不被迫做出選擇:要麼將數據置於非保護狀態,要麼將所有的用戶拒之門外。

在大數據的安全管理方面遇到的一系列痛點問題,我們歸納起來,主要有3點:

1. 缺乏統一賬號管理:大數據組件較多,各自一套,缺乏統一用戶賬號體系。

2. 缺失身份認證管理:大數據組件鑑別訪問身份薄弱,對大數據訪問入口缺乏有效的身份認證手段。

3. 數據授權能力弱:數據使用缺乏細粒度授權方式和精細化的權限控制保護機制。

針對上述問題,億信華辰實時大數據平臺PetaBase-i中加入了加強的細粒度的基於角色的授權系統。它使用了粗粒度的、基於Kerberos統一身份認證的安全機制與細粒度級、基於角色的授權以及多租戶的管理模式相結合的多重安全授權。

Kerberos是目前Hadoop生態中非常流行且成熟的統一身份認證機制,在Hive、HDFS、YARN等開源組件的權限認證方面有著廣泛的應用。kerberos實現的是機器級別的安全認證,也包括機器上的服務到服務的安全認證,集群對通過認證的節點,提供相應的服務,防止了被冒充的可能性。在PetaBase-i實時大數據平臺的PB Web Console中可以通過可視化配置啟用Kerberos認證。

漫談PetaBase-i的基於角色的細粒度授權系統

但Kerberos對用戶級別上的認證並沒有實現,也就是說沒有解決上文所說的痛點3——數據授權的問題。為了解決這個問題,我們在實時大數據平臺PetaBase-i中引入了一個Apache的開源組件Sentry。

Sentry是一個Hadoop的授權模塊,為了對正確的用戶和應用程序提供精確的訪問級別,Sentry提供了細粒度級、基於角色的授權以及多租戶的管理模式。Sentry的基於授權規則定義和操作粒度控制的授權模型使得在SQL模型中,可以很容易地實現對數據庫對象(表、視圖、用戶)和相關操作(SELECT,INSERT,CREATE 等等)進行訪問控制。

漫談PetaBase-i的基於角色的細粒度授權系統

現在,實時大數據平臺PetaBase-i可以滿足企業和政府用戶的RBAC(role-based acess control)需求:

  • 安全授權:控制數據訪問,對已通過驗證的用戶提供數據訪問特權。
  • 細粒度訪問控制:支持細粒度的Hadoop數據訪問控制。在服務器、數據庫、表和視圖範圍提供了不同特權級別的訪問控制,包括查找、插入等,以及限制對行或列的訪問。
  • 基於角色的管理:可以輕易將訪問同一數據集的不同特權級別授予多個組。
  • 多租戶管理:允許為不同數據集設置權限,可以在數據庫/schema級別進行權限管理。
  • 統一平臺:提供了一個統一平臺,使用現有的Kerberos實現安全認證。

那麼,這套系統很複雜嗎?一點也不!和傳統RDBMS一樣,用戶使用Grant語句就可以在數據庫,表和列級別設置這些細粒度權限。此外,用戶還可以單獨控制SELECT,INSERT,CREATE,ALTER和DROP權限。

下面是一個簡短的例子:

CREATE TABLE test_tbl( name STRING, time TIMESTAMP, message STRING,)STORED AS PARQUET;

GRANT ALL ON TABLE test_tbl TO userA; /*授予用戶userA對庫表test_tbl完全控制的權限*/

看,就是這麼簡單!如果你現在使用實時大數據平臺PetaBase-i的細粒度角色授權系統,你就能享受到更多的便利:

  • 能夠在Hadoop中存儲更敏感的數據;
  • 使更多的終端用戶擁有Hadoop數據訪問權;
  • 創建更多的Hadoop使用案例;
  • 構建多用戶應用程序。


分享到:


相關文章: