首页
/
每日頭條
/
科技
/
apache2評分表模闆
apache2評分表模闆
更新时间:2025-03-13 12:54:37

一、業務背景

大數據集群最基本的就是數據以及用于計算的資源,是一個公司的寶貴财富,我們需要将它們很好管理起來,将相應的數據和資源開放給對應的用戶使用,防止被竊取、被破壞等,這就涉及到大數據安全。

現狀&&需求

目前我們大數據集群的現狀是處于裸奔狀态,隻要可以登錄linux機器即可對集群繼續相關操作

所以集群安全對于我們來說迫在眉睫,主要需求有以下幾個方面:

支持多組件,最好能支持當前公司技術棧的主要組件,HDFS、HBASE、HIVE、YARN、STORM、KAFKA等

支持細粒度的權限控制,可以達到HIVE列,HDFS目錄,HBASE列,YARN隊列,STORM拓撲,KAKFA的TOPIC

開源,社區活躍,按照現有的集群改情況造改動盡可能的小,而且要符合業界的趨勢。

二、大數據安全組件介紹與對比

目前比較常見的安全方案主要有三種:

Kerberos(業界比較常用的方案)

Apache Sentry(Cloudera選用的方案,cdh版本中集成)

Apache Ranger(Hortonworks選用的方案,hdp發行版中集成)

1、Kerberos

Kerberos是一種基于對稱密鑰的身份認證協議,它作為一個獨立的第三方的身份認證服務,可以為其它服務提供身份認證功能,且支持SSO(即客戶端身份認證後,可以訪問多個服務如HBase/HDFS等)。

apache2評分表模闆(Ranger原理與應用實踐)1

服務名作用KDCKerberos的服務端程序,用于驗證各個模塊Client需要訪問服務的用戶,KDC和Service會對用戶的身份進行認證Service即集成了Kerberos的服務,如HDFS/YARN/HBase等

Kerberos協議過程主要有三個階段,第一個階段Client向KDC申請TGT,第二階段Client通過獲得的TGT向KDC申請用于訪問Service的Ticket,第三個階段是Client用返回的Ticket訪問Service。

優點:

服務認證,防止broker datanode regionserver等組件冒充加入集群

解決了服務端到服務端的認證,也解決了客戶端到服務端的認證

缺點:

kerberos為了安全性使用臨時ticket,認證信息會失效,用戶多的情況下重新認證繁瑣

kerberos隻能控制你訪問或者拒絕訪問一個服務,不能控制到很細的粒度,比如hdfs的某一個路徑,hive的某一個表,對用戶級别上的認證并沒有實現(需要配合LDAP)

2、Apache Sentry

Apache Sentry是Cloudera公司發布的一個Hadoop安全開源組件,它提供了細粒度級、基于角色的授權.

apache2評分表模闆(Ranger原理與應用實踐)2

優點:

Sentry支持細粒度的hdfs元數據訪問控制,對hive支持列級别的訪問控制

Sentry通過基于角色的授權簡化了管理,将訪問同一數據集的不同特權級别授予多個角色

Sentry提供了一個統一平台方便管理

Sentry支持集成Kerberos

缺點:

組件隻支持hive,hdfs,impala 不支持hbase,yarn,kafka,storm等

3、Apache Ranger

Apache Ranger是Hortonworks公司發布的一個Hadoop安全組件開源組件

優點:

提供了細粒度級(hive列級别)

基于訪問策略的權限模型

權限控制插件式,統一方便的策略管理

支持審計日志,可以記錄各種操作的審計日志,提供統一的查詢接口和界面

豐富的組件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM)

支持和kerberos的集成

提供了Rest接口供二次開發

4、為什麼我們選擇Ranger

多組件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM),基本覆蓋我們現有技術棧的組件

支持審計日志,可以很好的查找到哪個用戶在哪台機器上提交的任務明細,方便問題排查反饋

擁有自己的用戶體系,可以去除kerberos用戶體系,方便和其他系統集成,同時提供各類接口可以調用

綜上:我們考慮到和開放平台的集成,以及我們的技術棧和集群操作的審計等幾個問題最終選用了apache ranger

三、Apache Ranger系統架構及實踐

1、架構介紹

apache2評分表模闆(Ranger原理與應用實踐)3

2、組件介紹

RangerAdmin

以RESTFUL形式提供策略的增删改查接口,同時内置一個Web管理頁面。

Service Plugin

嵌入到各系統執行流程中,定期從RangerAdmin拉取策略,根據策略執行訪問決策樹,并且記錄訪問審計

插件名稱安裝節點Hdfs-PluginNameNodeHbase-PluginHMaster HRegionServerHive-PluginHiveServer2Yarn-PluginResourceManager

Ranger-SDK

對接開放平台,實現對用戶、組、策略的管理

3、權限模型

訪問權限無非是定義了”用戶-資源-權限“這三者間的關系,Ranger基于策略來抽象這種關系,進而延伸出自己的權限模型。”用戶-資源-權限”的含義詳解:

用戶

由User或Group來表達,User代表訪問資源的用戶,Group代表用戶所屬的用戶組。

資源

不同的組件對應的業務資源是不一樣的,比如

HDFS的FilePath

HBase的Table,Column-family,Column

Hive的Database,Table,Column

Yarn的對應的是Queue

權限

由(AllowACL, DenyACL)來表達,類似白名單和黑名單機制,AllowACL用來描述允許訪問的情況,DenyACL用來描述拒絕訪問的情況,不同的組件對應的權限也是不一樣的。

插件權限項HdfsRead Write ExecuteHbaseRead Write Create AdminHiveSelect Create Update Drop Alter Index Lock Read Write AllYarnsubmit-app admin-queue

4、權限實現

Ranger-Admin職責:

管理員對于各服務策略進行規劃,分配相應的資源給相應的用戶或組,存儲在db中

Service Plugin職責:

定期從RangerAdmin拉取策略

根據策略執行訪問決策樹

實時記錄訪問審計

策略執行過程:

apache2評分表模闆(Ranger原理與應用實踐)4

策略優先級:

黑名單優先級高于白名單

黑名單排除優先級高于黑名單

白名單排除優先級高于白名單

決策下放:

如果沒有policy能決策訪問,一般情況是認為沒有權限拒絕訪問,然而Ranger還可以選擇将決策下放給系統自身的訪問控制層

組件集成插件原理:

apache2評分表模闆(Ranger原理與應用實踐)5

ranger通過實現各組件擴展的權限接口,進行權限驗證

Hdfs實現原理

hdfs-site.xml會修改如下配置:

<property> <name>dfs.permissions.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>true</value> </property> <property> <name>dfs.namenode.inode.attributes.provider.class</name> <value>org.apache.ranger.authorization .hadoop.RangerHdfsAuthorizer</value> </property>

加載過程:

apache2評分表模闆(Ranger原理與應用實踐)6

Hbase實現原理

在安裝完hbase插件後,hbase-site.xml會修改如下配置:

<property> <name>hbase.security.authorization</name> <value>true</value> </property> <property> <name>hbase.coprocessor.master.classes</name> <value>org.apache.ranger.authorization.hbase .RangerAuthorizationCoprocessor </value> </property> <property> <name> hbase.coprocessor.region.classes </name> <value>org.apache.ranger.authorization.hbase .RangerAuthorizationCoprocessor </value> </property>

加載過程:

apache2評分表模闆(Ranger原理與應用實踐)7

Hive實現原理

<property> <name>hive.security.authorization.enabled</name> <value>true</value> </property> <property> <name>hive.security.authorization.manager</name> <value>org.apache.ranger.authorization.hive.authorizer .RangerHiveAuthorizerFactory </value> </property>

加載過程:

apache2評分表模闆(Ranger原理與應用實踐)8

Yarn實現原理

yarn-site.xml

<property> <name>yarn.acl.enable</name> <value>true</value> </property> <property> <name>yarn.authorization-provider</name> <value> org.apache.ranger.authorization.yarn.authorizer .RangerYarnAuthorizer </value> </property>

加載過程:

apache2評分表模闆(Ranger原理與應用實踐)9

四、Ranger實踐

1、組權限實現

由于在調用各服務過程中使用hdfs shell、hbase-shell、hive-jdbc隻能獲取到用戶信息,在隻有組策略時會匹配不成功,認為沒有權限,實現辦法是加入ldap組件同步用戶組信息,這樣增加了系統的複雜性,我們通過改寫ranger-admin代碼,在客戶端plugin獲取策略時,将組權限賦予用戶,這樣就實現了組策略功能。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
lol2022妖姬為什麼沒人玩了
lol2022妖姬為什麼沒人玩了
北京時間2月24日,設計師回答了一些玩家的提問,其中樂芙蘭玩家非常關心之前設計師提到了将會對妖姬進行一些回調,至今還沒有任何改動登陸測試服,這次設計師給出了大概的時間,預計會在8.5版本的後半部進行測試但是不會在8.5生效。德拉克薩的暮刃我...
2025-03-13
64系統開機啟動項怎麼設置關閉的操作方法
64系統開機啟動項怎麼設置關閉的操作方法
不少深度技術用戶在安裝完win764系統之後都會下載很多自己需要的軟件來使用,但很多小夥伴不知道有些軟件是默認會設置成開機自啟動的,然而開機啟動項過多,就會影響電腦的開機速度。那在win7系統中開機啟動項怎麼設置關閉呢?下面深度系統小編以w...
2025-03-13
球球大作戰名字顔色代碼怎麼弄
球球大作戰名字顔色代碼怎麼弄
球球大作戰名字顔色大全,在球球大作戰中,名字顔色代碼怎麼更改呢?擁有不一樣的名字顔色,走上不一樣的球球道路,小夥伴們趕緊随小編一起去看看吧(•̀ᴗ•́)و̑̑新玩法搶先玩,新光環免費領哦~球球大作戰名字顔色大全:顔色代碼:不同的顔色是有不同...
2025-03-13
元宵節燈謎朋友圈
元宵節燈謎朋友圈
元宵節燈謎朋友圈?元宵節猜燈謎,是中華民族的優良傳統,現在小編就來說說關于元宵節燈謎朋友圈?下面内容希望能幫助到你,我們來一起看看吧!元宵節燈謎朋友圈元宵節猜燈謎,是中華民族的優良傳統。今年的猜燈謎,交由數學老師出的謎語,1.謎題:0000...
2025-03-13
騰訊會員優惠方法
騰訊會員優惠方法
你見過騰訊視頻1年會員京東plus一年會員隻需要88元的活動嗎?掃碼或點擊下面圖片了解詳情騰訊視頻的力度有點大啊,這一次不買不行,不續費不行了。這是組合會員-1年騰訊視頻會員1年京東plus會員=98微信分享活動朋友圈立減5元火鍋視頻新用戶...
2025-03-13
Copyright 2023-2025 - www.tftnews.com All Rights Reserved