您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何使用Ranger給HDFS授權(quán),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
文檔概述
1.介紹CDP7.1.3 中Ranger 中HDFS 默認(rèn)權(quán)限策略
2.使用Ranger 給HDFS 設(shè)置權(quán)限策略并驗證
測試環(huán)境
1.操作系統(tǒng)Redhat7.6
2.CDP DC7.1.3
使用admin用戶登錄http://cdp02.fayson.com:6080 頁面,點擊cm_hdfs 進(jìn)入該頁面
在該頁面中可以看到默認(rèn)有兩個策略,第一個是hdfs 用戶的策略,默認(rèn)擁有所有目錄所有權(quán)限,rangerlookup 擁有所有目錄讀的權(quán)限。
第二個策略是keyadmin 用戶擁有/ranger/audit/kms 目錄的所有權(quán)。這兩個策略是CDP安裝后自帶的策略,建議不要隨意修改這兩個用戶的權(quán)限策略。
3.1HDFS授權(quán)
在上面我們介紹了hdfs 用戶擁有所有目錄的權(quán)限如果還需要設(shè)置一個同樣權(quán)限或者是所有目錄的權(quán)限。需要在該策略中繼續(xù)添加其他權(quán)限策略,因為相同目錄的策略只能有一個。
首先我們添加一個用戶,fayson 這里添加使用的腳本所有節(jié)點添加了一個fayson用戶。
然后在HDFS中勾選 Enable Ranger Authorization ,并保存重啟生效
在沒給權(quán)限之前驗證如下:
設(shè)置fayson 擁有所有目錄讀寫的權(quán)限,設(shè)置需要在all-path 策略中新增一個權(quán)限條件。正確的做法如下:
保存策略后,點擊查看
不能如下新增一個策略,會提示相同的資源已經(jīng)創(chuàng)建了一個策略[all-path],錯誤的做法如下:
然后進(jìn)行驗證,成功創(chuàng)建
3.2HDFS多級授權(quán)以及拒絕條件策略
多級授權(quán)驗證,首先創(chuàng)建兩個本地測試用戶,testuser1 、testuser2,并且在Ranger 頁面創(chuàng)建Ranger 登錄用戶關(guān)聯(lián)組(ldap 用戶無需進(jìn)行該操作即可使用用戶密碼登錄)
登錄Ranger,可以看到User Source 時External。由于本地Linux 用戶默認(rèn)無法同步密碼,需在Settings > Users 中將默認(rèn)同步的Linux 刪除,然后手動關(guān)聯(lián)組重建。
點擊右上角的紅色刪除按鈕刪除后,然后點擊Add New User 。進(jìn)行如下操作,密碼至少為包含英文和字母的8個字母,選擇角色為User,并且選擇關(guān)聯(lián)組分別為testuser1、和testuser2。testuser2 步驟基本一致,省略。
手動創(chuàng)建好后用戶顯示如下,User Source 顯示為Internal在當(dāng)前登錄時可以看到組件的權(quán)限策略,但是不能添加任何策略,如果嘗試添加策略時保存會提示如下錯誤
當(dāng)前testuser1和testuser2 均無hdfs 中 /test 目錄的寫權(quán)限
然后通過Ranger admin 用戶給testuser1 /test 目錄all 權(quán)限,并委派admin權(quán)限,也就是勾選Delegate Admin,再由testuser1 給testuser2 授權(quán)進(jìn)行驗證。
驗證testuser1 權(quán)限,并創(chuàng)建接下來要驗證的權(quán)限的目錄,為了避免HDFS 本身的權(quán)限干擾,這里將所有的目錄權(quán)限設(shè)置為700
Allow Conditions策略設(shè)置以及驗證
具體策略設(shè)置如下:
驗證如下:
Exclude from Allow Conditions 策略驗證,這里由于/test/Exclude 目錄本身testuser2 是沒有讀寫權(quán)限的,所以在Allow Conditions中給了所有權(quán)限,但是在Exclude from Allow Conditions 排除了讀權(quán)限,在這種情況下,testuser2 權(quán)限是有寫的權(quán)限但是沒有讀的權(quán)限,也證實了Exclude from Allow Conditions策略已生效以及拒絕策略優(yōu)先的設(shè)計邏輯:
Deny 策略驗證,這里與Exclude from Allow 策略有些類似,/test/Deny 目錄本身testuser2沒有任何權(quán)限,在Allow Conditions 中給了所有權(quán)限用于驗證,在Deny Conditions中設(shè)置拒絕讀權(quán)限。同樣證實Deny 策略已生效以及拒絕策略優(yōu)先的設(shè)計邏輯
設(shè)置驗證testuser2 Deny Conditions策略生效,并切換testuser1 用戶驗證非Deny Conditions 的策略
Exclude from Deny Conditions策略驗證,同樣/test/ExcludeDeny 由于testuser2用戶沒有任何權(quán)限,在Allow Conditions 中給了該目錄的所有權(quán)限,然后在Deny Conditions和
Exclude from Deny Conditions 設(shè)置如下。其結(jié)果與Deny Conditions策略一致
設(shè)置驗證testuser2 Exclude from Deny Conditions策略生效,由于排除了Deny Conditions 的設(shè)置,所以可以正常讀。
如果在Exclude from Deny Conditions取消排除Read 的權(quán)限,則可寫而不可讀,如下設(shè)置
關(guān)于如何使用Ranger給HDFS授權(quán)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。