1. 程式人生 > >MaxCompute和DataIDE許可權體系介紹

MaxCompute和DataIDE許可權體系介紹

產品關係

MaxCompute是阿里雲自主研發的大資料計算引擎。通過MaxCompute,可以使用SQL、MapReduce和Graph的計算模型處理海量資料。產品還提供了機器學習的功能,幷包裝成機器學習這個產品對外提供服務。使用者使用MaxCompute,不需要關心底層的分散式計算細節,就可以輕鬆地處理海量資料。

但是直接用MaxCompute也有一些不方便之處,比如需要更方便地進行開發程式碼的管理、進行資料的匯入匯出、設定任務的定時排程以及上下游依賴、管理任務的執行情況並做好異常報警、需要有簡單方便的元資料的管理以及我們這次要講的更方便的資料許可權設定。為此誕生了大資料開發套件(Data IDE)這個產品。Data IDE在MaxComput外面又包了一層。使用者不需要直接去操作MaxComupt,只需要在Data IDE上做操作就可以了,大大簡化了資料倉庫搭建的過程。有時候,我們甚至會稱Data IDE是MaxCompte的開發工具。

MaxCompte作為計算引擎,本身就有一套健全的安全規則和許可權體系。這些許可權設定,足夠讓使用者只能訪問到他被授權的那些資料。在此基礎上,Data IDE提供了一套自己的許可權體系,包含Data IDE上的模組的授權和MaxCompte上的授權。通過在Data IDE上做配置,就能很方便的給賬號授予對應的MaxCompte許可權。以下我們分別對這兩個產品做一些說明。

MaxCompute 許可權設定

MaxCompute在新增一個使用者後,可以對使用者通過ACL直接授權、基於角色的ACL授權、Policy授權、Package授權,使其獲得對應的許可權。其中ACL直接授權、基於角色的ACL授權是目前對外提供的許可權控制方法。Policy授權、Package授權這兩個功能,目前還是在內部測試階段,公共雲上的MaxCompute的文件裡暫時還沒有提供,但不排除以後會提供的可能。

新增使用者

MaxCompute需要把某個具體的雲賬號新增到專案裡後才能對這個賬號進行授權。MaxComupte本身支援對具體的某個雲賬號,或者本主賬號下的其他子賬號進行授權。不過後面的大資料開發套件就只支援本賬號下的子賬號。

新增的方式為

ACL授權

直接的ACL授權,其實就是一個簡單的,把XX許可權授權給YY,或者把YY上的XX許可權解除授權的一個過程。在add user之後,通過grant和revoke語法來進行授權或者解除授權,具體的語法是

grant actions on object to subject 
revoke actions on object from subject

舉個實際的例子,要給一個賬號授權查詢某張表的許可權,然後又解除授權,步驟是

grant List, CreateTable, CreateInstance on project prj1 to user [email protected]; --使用grant語句對使用者授權
grant Describe, Select on table wc_in to user [email protected];
revoke Describe, Select on table wc_in from user [email protected];
revoke List, CreateTable, CreateInstance on project prj1 from user [email protected]; --使用revoke解除授權

而基於角色的ACL授權就是先定義一個角色(或者說是一個許可權包),比如說建立一個叫開發者的角色,然後把各種前面提到的許可權先授權給這個角色。後面來了個研發人員需要這樣的許可權,直接把開發者這個角色授權給他就可以了,不需要全部重新授權一遍。可以看下授權的命令

add user [email protected]; --新增使用者
create role dev; --建立角色
grant List, CreateInstance on project prj1 to role dev; --對角色賦權
grant Describe, Select on table userprofile to role dev;
grant dev to [email protected]; --對使用者賦予角色dev

其他

如前面提到,Policy授權、Package授權兩個功能,目前公共雲的MaxcCompute上還沒有提供,所以本文也不再做詳細介紹。不過可以可以大致說明一下:

Policy是通過設定json格式的配置來授權,使用起來比較複雜,功能上也比較全。

Package是先把資源新增到資源包裡,然後授予對方安裝資源包的方式來實現資源的跨專案授權

DataIDE許可權設定

DataIDE的許可權主要分IDE本身的一些功能許可權和底層計算引擎的許可權。IDE裡,在新增使用者後,可以給其授予部署、訪客 、專案管理員、開發、運維的角色,在IDE裡配置了角色後,對應的賬號可以獲得IDE上對應的角色所擁有的IDE上的對應模組的操作許可權外,還獲得了底層的計算引擎MaxCompute上的對應許可權,如圖
image
比如我給chuanxue這個子賬號授權了“開發”的角色後
image
可以看到。在子賬號授予許可權後,除了DataIDE上的相關模組的許可權外,還給了這個MaxCompute專案的一些開發需要用到的專案許可權(CreateTable、CreateInstance、List、Read、Write;可以看到是通過ACL實現的)以及用Policy實現其他的一些許可權。

在實際的工作中,需要先根據子賬號使用者的實際需要的IDE的許可權,授予他對應的專案成員管理裡的角色。一般情況下,這樣授權就已經足夠了。但是如果有一些MaxCompute的許可權需要調整的,可以再通過MaxCompute的授權命令進行調整。

除了這個之外,DataIDE的資料管理模組裡還支援對錶進行許可權申請,申請通過後,會自動通過ACL的方式獲得對應的表的Describe和Select許可權。

典型案例

以上說明後可能需要一些實際的例子來說明會更加清楚。之前有過這樣的一個案例,有個使用者在專案內授予了開發許可權,但是查詢的時候一直沒有提示沒有這張表的查詢許可權。照道理說,有了開發許可權後,就已經有這個專案下的所有的表的查詢許可權了。從錯誤上看,我們認為目前的許可權異常是出在計算引擎上的,所以需要檢查MaxCompute上的許可權設定。

首先到https://workbench.data.aliyun.com/console?#/projectlist ,看看專案名稱對應的顯示名,從而得到真實的專案名稱。其實這個是個非常簡單但是容易犯錯的情況,很多開發工程師並非是專案的建立者,看到的別名就誤以為是專案名稱,導致授權檢查的時候查錯專案。
image
比如咱們這個截圖裡,專案的名稱是aliyun2014,但是顯示名是aliyun。所以出現問題的時候,要排查的也是看aliyun2014這個專案下的許可權對不對。

然後我們可以在大資料開發套件裡,建立一個SQL指令碼,執行whoami;來看看當前的執行賬號是否確實是預期中的那個賬號,如圖
image
看看專案名稱能不能對上,對上後看看Name是否和自己的預期是能對上的。

確定了專案名稱和登入賬號後,可以用專案管理員的賬號,開啟MaxCompute的客戶端,使用Show grants for xxx;檢視這個賬號的所有的許可權(前文就有一個這樣show grants的截圖)。通過這個辦法可以看到這個賬號的目前計算引擎上的實際許可權。如果發現這裡的許可權不對的話,那說明可能是被人從計算引擎層面上誤刪除了對應的許可權,可以再通過命令補上,當然更加方便的方法是在DataIDE上取消其開發角色後再重新加上,這樣在加上的時候會重新進行MaxComupte的許可權的授權。

相關推薦

MaxComputeDataIDE許可權體系介紹

產品關係 MaxCompute是阿里雲自主研發的大資料計算引擎。通過MaxCompute,可以使用SQL、MapReduce和Graph的計算模型處理海量資料。產品還提供了機器學習的功能,幷包裝成機器學習這個產品對外提供服務。使用者使用MaxCompute,不需要關心底層的分散式計算細節,就可以輕鬆地處

mysql 的許可權體系介紹

mysql 的許可權體系介紹 mysql 的許可權體系大致分為5個層級: 全域性層級 全域性許可權適用於一個給定伺服器中的所有資料庫。這些許可權儲存在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤銷全域性許可權。 資料庫層級 資料庫許可權

linux關於S許可權T許可權介紹

linux系統內有檔案有三種身份 u:擁有者  g:群組   o:其他人 這些身份對於文件又有下面許可權 可以用ls -l 檔名 檢視許可權資訊 r:讀許可權,使用者可以讀取文件的內容,如用cat,m

ELK6.2.3日誌分析工具elasticsearch x-pack6.2.3許可權管理Security模組內建角色介紹

啟動elasticsearch 1.自定義設定密碼,三個內建賬號根據提示設定密碼 ./bin/x-pack/setup-passwords interactive 2.自動生成密碼 ./bin/x-pack/setup-passwords auto 3.在kibana通過DSL語句設定密碼

Java基礎(18):集合(容器)—CollectionMap兩大體系介紹用法

boolean add(E e)_______________________________新增指定元素 boolean addAll(Collection c)___________________將指定集合中所有元素都新增到此 collection boolean contains(Object

Data Lake Analytics賬號權限體系詳細介紹

數據查詢 tables 頁面 from aliyun 大量 fma prop comm 一、Data Lake Analytics介紹數據湖(Data Lake)是時下大數據行業熱門的概念:https://en.wikipedia.org/wiki/Data_lake。基於

AOP 橫行切面編程 縱向編程 介紹

哪些 體系 動態 子類 連接 poi cnblogs 攔截 切入點 1 aop:面向切面(方面)編程,擴展功能不修改源代碼實現 2 AOP采取橫向抽取機制,取代了傳統縱向繼承體系重復性代碼3 aop底層使用動態代理實現(1)第一種情況,有接口情況,使用動態代理創建接口實

老司機帶你用MaxCompute表格存儲玩轉車聯網數據

tps 爆發 sqlserve 屬性 分庫 所有 spa 控制 定期 原文鏈接 “自動駕駛汽車”在近兩年頻頻出現於各大科技新聞頭條,自2012年谷歌獲得美國首個自動駕駛汽車許可證以來,國外各大知名汽車廠商如奔馳、沃爾沃、大眾、通用、豐田、日產、特斯拉等也紛紛宣布自己的自動駕

Java並發性多線程介紹

多任務 其中 介紹 tar 時間 分布 發生 自己 一定的 以下內容轉自http://ifeve.com/java-concurrency-thread/: 在過去單CPU時代,單任務在一個時間點只能執行單一程序。之後發展到多任務階段,計算機能在同一時間點並行執行多任務或

C++開發人臉性別識別教程(3)——OpenCv配置ImageWatch插件介紹

下劃線 toc bsp 對話 顯示 調試 詳細 結構 post   OpenCv是C++圖像處理的重要工具。這個人臉性別識別的項目就是借助OpenCv進行開發的。盡管網上已經有了非常多關於OpenCv的配置教程,但出於教程完整性考慮。這裏還是用專門的一篇博客來介紹Ope

Mysql存儲過程函數區別介紹

fill get .com href 參數 tle gravity 由於 target 原文鏈接 存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲過程,而函數通常是數據庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定用戶表。

TextInputLayout TextInputEditText 的簡單介紹以及使用

watcher 信息 cal line led retext name sign 控件 TextInputLayout 和 TextInputEditText 是屬於 design 包裏面的控件 吶,就是這個:compile ‘com.android.support:des

jar包war包的介紹區別

jar war 包 JavaSE程序可以打包成Jar包(J其實可以理解為Java了),而JavaWeb程序可以打包成war包(w其實可以理解為Web了)。然後把war發布到Tomcat的webapps目錄下,Tomcat會在啟動時自動解壓war包。JAR(Java Archive,Java 歸檔文

處理大數據流常用的三種Apache框架:Storm、SparkSamza。(主要介紹Storm)

領導 hdf 客戶端 orm 至少 per yar 持續性 apache 處理實時的大數據流最常用的就是分布式計算系統,下面分別介紹Apache中處理大數據流的三大框架: Apache Storm 這是一個分布式實時大數據處理系統。Storm設計用於在容錯和

window.onload$(function(){})的區別介紹

ima .com () 技術 func load ont cnblogs win 詳細介紹參考《鋒利的JQ》window.onload和$(function(){})的區別介紹

SpringMvcservlet簡單對比介紹

標簽 word div ron -name ride path eight edi 引言:由於最近要開始springMVC的學習,所以現在先簡單介紹一下springMVC,自己也是一個初學者,所以也有很多不懂,主要是以討論為主。 一、servlet實現登錄。 咱們先來看

用戶組管理命令介紹與詳解

linux 命令用戶管理命令:useradd,userdel,usermod,passwd,chsh.chfn,finger,id,chageUseradd(建立用戶)useradd [options] USERNAME 例:useradd -g mygroup user2建立一個

[Python爬蟲] 在Windows下安裝PhantomJSCasperJS及入門介紹(上)

支持 包括 load node webpage 函數 cas examples ctr 最近在使用Python爬取網頁內容時,總是遇到JS臨時加載、動態獲取網頁信息的困難。例如爬取CSDN下載資源評論、搜狐圖片中的“原圖”等,此時嘗試學習Phantomjs和

1-7課程體系介紹

cati bsp lan 發揮 課程體系 pac 可用 linux服務 iba 轉載請說明出處:http://www.cnblogs.com/zaifeng0108/p/7363936.html RedHat 0基礎,入門最難 都是基礎,但不同的人手裏發揮不同的威力 永遠不

【轉】jar包war包的介紹區別

lac rep 理解 j2e 浪費時間 需要 適合 格式 nbsp JavaSE程序可以打包成Jar包(J其實可以理解為Java了),而JavaWeb程序可以打包成war包(w其實可以理解為Web了)。然後把war發布到Tomcat的webapps目錄下,Tomcat會在啟