雲資料庫HBase企業級安全解析

  • 2019 年 10 月 6 日
  • 筆記

開源HBase安全介紹

開源HBase的安全功能主要包含3個部分:

1.Access Controller coprocessor實現的ACL許可權控制;

2.RPC層的安全認證,主要實現有kerberos認證; 3.HBase的WebUI支援https訪問。

開源HBase ACL許可權控制介紹

HBsae ACL是基於coprocessor實現的一套許可權控制機制,可以有效控制用戶對HBase的數據訪問許可權,最小維度控制到列級。支援按用戶、用戶組來進行許可權分配。HBsae ACL的作用範圍大小:global > namespace > table > famliy > quelifier。而認證通過優先順序順序:global > namespace > table > family > quelifier。看以看出用戶許可權是由大到小進行認證,因此在規定用戶許可權時要注意用戶的受限的許可權上層的大許可權有無被限制。此外可以按單個用戶user分配進行許可權管理,也可以按 用戶group進行許可權管理,認證順序user>group。

開源HBase ACL使用案例

在對某公司HBase資料庫管理小組各成員進行許可權分配後,可以實現各相關人員的許可權但是並不能保證訪問許可權的安全,假若有來自外界的冒充人員,在獲取相應API後,在不開啟身份認證時系統會誤認為其是小組內的成員,這樣就存在了安全風險。此時需要系統開啟身份認證來拒絕冒充人員的訪問,從而達到安全要求。

開源HBase 身份認證

身份認證(Authentication)是用於識別用戶身份的過程,只有通過身份認證的用戶才有可能訪問某些服務。與身份認證不同的是,ACL授權僅僅控制的是指定的用戶訪問某些制定服務,但並不進行相應的身份識別。因此,只有身份認證(Authentication)和授權(Authorization)一同使用才能達到更更好的安全作用。

HBase目前支援的身份認證方式是kerberos認證,在RPC級實現的認證功能,並且kerberos也是hadoop內置的唯一認證方式。HBase/HDFS/Zookeeper一般同時開啟kerberos認證功能使用。

當前開源HBase的安全常用搭建方案主要有3方面: 1.HBase啟用kerberos認證,啟用https WebUI 訪問,啟用ACL許可權授權控制,開啟日誌審計,流量限制; 2.HDFS啟用kerberos認證,啟用許可權控制,啟用數據加密; 3.Zookeeper啟用kerberos認證,啟用zk的ACL許可權控制。

Kerberos介紹

Kerberos是一種網路認證協議,目前Kerberos協議有很多實現版本,其本質使用對稱加密的技術實現網路中的身份認證。通常使用第三方服務的方式提供身份認證,即獨立於相關的服務組件。目前很多大數據服務組件都默認集成了Kerberos,均可以開啟Kerberos身份啟動服務。

當一個用戶需要訪問某個被Kerberos保護的服務時,Kerberos認證過程可以分為兩個階段:

1.Kerberos服務端程式(Authentication Server,AS)對用戶的身份認證; 2.服務對用戶的身份認證。

目前開源HBase在開啟相應身份認證後,雖然安全性得到了有效提高,但是其存在成本方面投入巨大,訪問集群準備 步驟多且繁鎖,使用並不友好,配置複雜繁瑣,需要將賬戶與系統進行綁定等缺點。

雲資料庫HBase安全介紹

雲資料庫HBase在安全的方面主要支援功能有:網路層安全隔離、身份認證、許可權控制,日誌審計、流量控制,數據加密。公網用戶、經典網用戶若想用戶VPC需要先加入白名單,否則是無法進行訪問的。

雲資料庫HBase的網路安全隔離方面,用戶可以設置防火牆白名單、安全組埠限制,選擇HBase安裝在VPC專有網路上;在身份認證上,採用Intel和Alibaba合作開發的HAS服務做身份認證,使用更友好;在許可權控制上兼容HBase Access Controller coprocessor,支援細粒度許可權控制,用戶賬戶不依賴本地linux系統用戶,提高了使用的效率;在審計上可以記錄用戶對資源訪問操作,監控/跟蹤資源訪問的安全風險。因此,與開源HBase相比雲資料庫HBase在安全性、成本、用戶友好方面都有較大的提高。

雲HBase安全模組還提供了:

1)支援多種認證方式實現,如賬戶密碼、RAM、LDAP等;

2)擴展backend元數據高可用服務; 3)簡化client配置; 4)快捷方便的命令行行管理工具; 5)可以向客服提供與現存賬戶認證體系對接的能力。

雲HBase安全原理

1.什么是HAS?

HAS (Hadoop Authentication Service),由致力於解決開源大數據服務和生態系統的認證支援。目前開源大數據(Hadoop/Spark)在安全認證上只內置支援了Kerberos方式,HAS提出了一種新的認證方式(Kerberos-based token authentication),通過與現有的認證和授權體系進行對接,使得在Hadoop/Spark在上面支援Kerberos以外的認證方式變成可能,並對最終用戶簡化和隱藏Kerberos的複雜性。

2.HAS系統架構

HAS基於Apache Kerby 基礎上,以較少的開發 成本實現的全新的針對開源⼤大數據認證的方案。Apache Kerby為HAS主要:提供了了全面的kerberos 客戶端lib和工具;提供了Kerby KDC:高效、高可用服務;強大的ASN-1支援;TokenPreauth 全新的token認證機制。

HAS協議流程主要是對Kerberos進行擴展,其協議基礎是TokenPreauth機制,該機制主要是在Apache Kerby中實現。該機制允許用戶使用第三⽅方頒發的token來代替,並由password向KDC進行身份驗證,目前已經被廣泛的使用在互聯網、雲和移動互聯網中,使得Kerberos系統能夠和其他認證方案相結合,並推動了Kerberos在雲和大數據平台上的發展。

雲HBase安全應用場景

安全需求無處不在,例如,企業為了防止員工惡意報復,防止外部用戶訪問盜竊數據,甚至刪除所有數據等。可以說只要是生產的環境,就有安全的需求,只是安全要求的防護級別有所不不同。例如對於公有雲常見的用戶,一般HBase資料庫就是內網DB,只供自己訪問使用,沒有第三方人員公用,加上存儲的數據可能都是用戶日誌數據,那麼這個客戶可能只需要外部網路層隔離就可以了。如果某公司HBase資料庫與某業務第三方服務商供存儲,可能就需要更更進一步的身份、許可權、審計等安全需求了。

雲HBase與開源HBase相比,實現了運維成本和使用成本的下降,簡化了配置,並且不依賴系統賬戶來實現公網用戶、經典網用戶的訪問,最為重要的的是在安全性上有了更大的提高。