DLF-Auth
DLF-Auth組件是數(shù)據(jù)湖構(gòu)建DLF(Data Lake Formation)產(chǎn)品提供的,通過(guò)該組件可以開(kāi)啟數(shù)據(jù)湖構(gòu)建DLF的數(shù)據(jù)權(quán)限功能,可以對(duì)數(shù)據(jù)庫(kù)、數(shù)據(jù)表、數(shù)據(jù)列、函數(shù)進(jìn)行細(xì)粒度權(quán)限控制,實(shí)現(xiàn)數(shù)據(jù)湖上統(tǒng)一的數(shù)據(jù)權(quán)限管理。本文為您介紹如何開(kāi)啟DLF-Auth權(quán)限。
背景信息
數(shù)據(jù)湖構(gòu)建DLF是一款全托管的快速幫助用戶(hù)構(gòu)建云上數(shù)據(jù)湖的服務(wù),提供了云上數(shù)據(jù)湖統(tǒng)一的權(quán)限管理和元數(shù)據(jù)管理,詳細(xì)信息請(qǐng)參見(jiàn)數(shù)據(jù)湖構(gòu)建產(chǎn)品簡(jiǎn)介。數(shù)據(jù)權(quán)限功能,請(qǐng)參見(jiàn)數(shù)據(jù)權(quán)限概述。
前提條件
已創(chuàng)建E-MapReduce集群,并選擇了OpenLDAP服務(wù),詳情請(qǐng)參見(jiàn)創(chuàng)建集群。
說(shuō)明在創(chuàng)建集群的軟件配置頁(yè)面,元數(shù)據(jù)使用默認(rèn)的DLF統(tǒng)一元數(shù)據(jù)。
數(shù)據(jù)湖構(gòu)建DLF的數(shù)據(jù)權(quán)限管理功能已經(jīng)開(kāi)放,開(kāi)啟該功能需要在您開(kāi)通DLF產(chǎn)品后,按照DLF權(quán)限設(shè)置開(kāi)啟相關(guān)數(shù)據(jù)目錄(Catalog)的權(quán)限開(kāi)關(guān)。
使用限制
數(shù)據(jù)湖構(gòu)建DLF權(quán)限僅支持通過(guò)RAM用戶(hù)進(jìn)行權(quán)限管理,因此需要在EMR控制臺(tái)通過(guò)用戶(hù)管理功能添加用戶(hù)。
數(shù)據(jù)湖構(gòu)建DLF的數(shù)據(jù)權(quán)限管理功能支持區(qū)域請(qǐng)參見(jiàn)已開(kāi)通的地域和訪問(wèn)域名。
DLF-Auth啟用Hive或Spark后,Ranger將無(wú)法點(diǎn)擊啟用或禁用Hive或Spark;Ranger啟用Hive或Spark后,DLF-Auth將無(wú)法點(diǎn)擊啟用或禁用Hive或Spark。
DLF-Auth支持的EMR版本及計(jì)算引擎列表。
EMR 主版本
Hive
Spark
Presto
Impala
EMR 3.x版本
EMR-3.39.0及以前版本
不支持
不支持
不支持
不支持
EMR-3.40.0
支持
支持
支持
不支持
EMR-3.41.0至EMR-3.43.1
支持
支持
不支持
不支持
EMR-3.44.0及以上版本
支持
支持
支持
支持
EMR 5.x版本
EMR-5.5.0及以前版本
不支持
不支持
不支持
不支持
EMR-5.6.0
支持
支持
支持
不支持
EMR-5.7.0至EMR-5.9.1
支持
支持
不支持
不支持
EMR-5.10.0 及以上版本
支持
支持
支持
支持
操作流程
通過(guò)本文操作,您可以開(kāi)啟DLF-Auth,實(shí)現(xiàn)數(shù)據(jù)湖上全托管的統(tǒng)一的權(quán)限管理。
(可選)步驟四:開(kāi)啟Hive LDAP認(rèn)證
如果開(kāi)啟了DLF-Auth權(quán)限,建議您開(kāi)啟Hive LDAP認(rèn)證,以便于連接Hive的用戶(hù)都可以通過(guò)LDAP認(rèn)證后執(zhí)行相關(guān)腳本。
步驟一:開(kāi)啟Hive權(quán)限控制
進(jìn)入DLF-Auth頁(yè)面。
登錄EMR on ECS。
在頂部菜單欄處,根據(jù)實(shí)際情況選擇地域和資源組。
在EMR on ECS頁(yè)面,單擊目標(biāo)集群操作列的集群服務(wù)。
在集群服務(wù)頁(yè)面,單擊DLF-Auth服務(wù)區(qū)域的狀態(tài)。
開(kāi)啟Hive權(quán)限控制。
在DLF-Auth服務(wù)頁(yè)面,打開(kāi)enableHive開(kāi)關(guān)。
在彈出的對(duì)話框中,單擊確定。
重啟HiveServer。
在集群服務(wù)頁(yè)面,選擇Hive服務(wù)。
在Hive服務(wù)頁(yè)面,單擊HiveServer操作列的 。
在彈出的對(duì)話框中,輸入執(zhí)行原因,單擊確定。
在確認(rèn)對(duì)話中,單擊確定。
步驟二:添加RAM用戶(hù)
您可以通過(guò)用戶(hù)管理功能添加用戶(hù),詳細(xì)操作如下。
進(jìn)入用戶(hù)管理頁(yè)面。
登錄EMR on ECS。
在頂部菜單欄處,根據(jù)實(shí)際情況選擇地域和資源組。
在EMR on ECS頁(yè)面,單擊目標(biāo)集群操作列的集群服務(wù)。
單擊上方的用戶(hù)管理頁(yè)簽。
在用戶(hù)管理頁(yè)面,單擊添加用戶(hù)。
在添加用戶(hù)對(duì)話框中,在用戶(hù)名下拉列表中,選擇已有的RAM用戶(hù)作為EMR用戶(hù)的名稱(chēng),輸入密碼和確認(rèn)密碼。
單擊確定。
步驟三:驗(yàn)證權(quán)限
如果RAM用戶(hù)已擁有AliyunDLFDssFullAccess權(quán)限,或者RAM用戶(hù)被授予了AdministratorAccess,則該RAM用戶(hù)具備了所有DLF細(xì)粒度資源的訪問(wèn)權(quán)限,無(wú)需進(jìn)行數(shù)據(jù)授權(quán)操作。DLF權(quán)限說(shuō)明,請(qǐng)參見(jiàn)權(quán)限說(shuō)明。
授權(quán)前驗(yàn)證當(dāng)前用戶(hù)權(quán)限。
使用SSH方式登錄到集群,詳情請(qǐng)參見(jiàn)登錄集群。
執(zhí)行以下命令訪問(wèn)HiveServer2。
beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>
說(shuō)明<user>和<password>為步驟二:添加RAM用戶(hù)中您設(shè)置的用戶(hù)名和密碼。
查看已有數(shù)據(jù)表信息。
例如,執(zhí)行以下命令,查看test表信息。
testdb.test
請(qǐng)根據(jù)您實(shí)際信息修改。select * from testdb.test;
因?yàn)楫?dāng)前用戶(hù)沒(méi)有權(quán)限,會(huì)報(bào)沒(méi)有權(quán)限而查詢(xún)失敗的錯(cuò)。
為RAM用戶(hù)添加權(quán)限。
在左側(cè)導(dǎo)航欄中,選擇 。
在數(shù)據(jù)授權(quán)頁(yè)面,單擊新增授權(quán)。
在新增授權(quán)頁(yè)面,配置以下參數(shù)。
參數(shù)詳情信息,請(qǐng)參見(jiàn)新增授權(quán)。
參數(shù)
描述
授權(quán)主體
主體類(lèi)型
默認(rèn)RAM用戶(hù)。
主體選擇
在主體選擇下拉列表中,選擇您在步驟二:添加RAM用戶(hù)中添加的用戶(hù)。
授權(quán)資源
授權(quán)方式
默認(rèn)資源授權(quán)。
資源類(lèi)型
根據(jù)您實(shí)際情況選擇。
本文示例為元數(shù)據(jù)表。
權(quán)限配置
數(shù)據(jù)權(quán)限
本文示例為Select。
授權(quán)權(quán)限
單擊確定。
授權(quán)后驗(yàn)證當(dāng)前用戶(hù)權(quán)限。
參見(jiàn)步驟1重新查看數(shù)據(jù)表的信息,因?yàn)橐呀?jīng)授權(quán),所以可以查詢(xún)到相關(guān)數(shù)據(jù)表的信息。
(可選)步驟四:開(kāi)啟Hive LDAP認(rèn)證
進(jìn)入集群服務(wù)頁(yè)面。
登錄EMR on ECS。
在頂部菜單欄處,根據(jù)實(shí)際情況選擇地域和資源組。
在EMR on ECS頁(yè)面,單擊目標(biāo)集群操作列的集群服務(wù)。
開(kāi)啟LDAP認(rèn)證。
在集群服務(wù)頁(yè)面,單擊Hive服務(wù)區(qū)域的狀態(tài)。
打開(kāi)enableLDAP開(kāi)關(guān)。
EMR-5.11.1及之后版本,EMR-3.45.1及之后版本
在服務(wù)概述區(qū)域,打開(kāi)enableLDAP開(kāi)關(guān)。
在彈出的對(duì)話框中,單擊確定。
EMR-5.11.0及之前版本,EMR-3.45.0及之前版本
在組件列表區(qū)域,選擇HiveServer操作列的
。在彈出的對(duì)話框中,輸入執(zhí)行原因,單擊確定。
在確認(rèn)對(duì)話框中,單擊確定。
重啟HiveServer。
在組件列表區(qū)域,單擊HiveServer操作列的重啟。
在彈出的對(duì)話框中,輸入執(zhí)行原因,單擊確定。
在確認(rèn)對(duì)話框中,單擊確定。
常見(jiàn)問(wèn)題
Q:使用多個(gè)Catalog時(shí),如何為DLF-AUTH單獨(dú)設(shè)置Catalog ID?
A:您可以參照以下步驟為DLF-AUTH單獨(dú)設(shè)置Catalog ID。
因?yàn)樵摪姹静恢С謫?dòng)Presto,所以不需要配置Presto計(jì)算引擎。
進(jìn)入DLF-Auth頁(yè)面。
登錄EMR on ECS。
在頂部菜單欄處,根據(jù)實(shí)際情況選擇地域和資源組。
在EMR on ECS頁(yè)面,單擊目標(biāo)集群操作列的集群服務(wù)。
在集群服務(wù)頁(yè)面,單擊DLF-AUTH服務(wù)區(qū)域的配置。
配置Hive計(jì)算引擎。
您可以根據(jù)需要配置Hive計(jì)算引擎。
新增Hive計(jì)算引擎配置項(xiàng)。
單擊dlf-hive-security.xml頁(yè)簽。
單擊上方的新增配置項(xiàng)。
設(shè)置Key為dlf.catalog.id,Value為您當(dāng)前集群關(guān)聯(lián)的DLF Catalog ID。
您可以在Hive服務(wù)配置頁(yè)簽,查看dlf.catalog.id的參數(shù)值,即為DLF Catalog ID。
單擊確定。
在彈出的對(duì)話框中,輸入執(zhí)行原因,單擊保存。
重啟HiveServer服務(wù)。
切換到Hive服務(wù)的狀態(tài)頁(yè)面。
在組件列表區(qū)域,選擇HiveServer操作列的
。在彈出的對(duì)話中,輸入執(zhí)行原因,單擊確定。
在確認(rèn)對(duì)話中,單擊確定。
配置Spark計(jì)算引擎。
您可以根據(jù)需要配置Spark計(jì)算引擎。
新增Spark計(jì)算引擎配置項(xiàng)。
單擊dlf-spark-security.xml頁(yè)簽。
單擊上方的新增配置項(xiàng)。
設(shè)置Key為dlf.catalog.id,Value為您當(dāng)前集群關(guān)聯(lián)的DLF Catalog ID。
您可以在Spark服務(wù)配置頁(yè)簽,查看dlf.catalog.id的參數(shù)值,即為DLF Catalog ID。
單擊確定。
在彈出的對(duì)話框中,輸入執(zhí)行原因,單擊保存。
重啟Spark Thrift Server服務(wù)。
切換到Spark服務(wù)的狀態(tài)頁(yè)面。
在組件列表區(qū)域,選擇Spark Thrift Server操作列的
。在彈出的對(duì)話中,輸入執(zhí)行原因,單擊確定。
在確認(rèn)對(duì)話中,單擊確定。