MaxCompute與DataWorks權限介紹和示例

背景:用戶在使用MaxCompute與DataWorks這兩種權限模型不清楚,而且對於相關MaxCompute的權限執行語句也不太熟悉,以致於在本身的實際操做中不能創建完整的權限策略,致使權限控制的混亂,甚至在開發過程當中時常遇到權限問題的錯誤,致使延誤業務的推進進展,該篇文檔集主要的權限知識點與一體,經常使用的MaxCompute權限語句,以及經典的開發環境和生產環境之間的賦權示例給你們作出作出介紹。數據庫

1、MaxCompute的安全模型安全

1

2、DataWorks安全模型函數

2

3、子帳戶添加的限制阿里雲

3

4、MaxCompute的受權管理圖spa

4

5、受權場景和注意事項命令行

5

6、移除用戶的注意事項code

6

7、成員管理的相關語句對象

查當作員:ip

Project owner或admin命令行執行
List users;   --查當作員列表
Show grants for <username>; -- 查看某成員權限

添加成員:ci

1.DataWorks添加RAM子帳號;
2.Project owner或admin命令行方式執行
add user <username>   --可爲RAM子帳戶或其餘雲帳戶

刪除成員:

1.DataWorks刪除RAM子帳號;
2.Project owner或admin命令行方式執行:
remove user <username>

8、角色管理的相關語句:

查看角色:

查看role列表:List roles;
查看role中的權限:describe role <role_name>
查看某用戶在什麼role中:show grants for <username>
查看某個role都指派給那些user:目前不支持!

建立角色:

建立role:Create role <role_name>;
給角色受權:grant actions on object to <role_name>
添加用戶到角色:grant <roleName> TO <full_username>

刪除角色:

刪除角色中的用戶:REVOKE <roleName> FROM <full_usename>;
撤銷對角色的受權:revoke <privList> on <objType> <objName> from role <rolename>
刪除角色: DROP ROLE <roleName>

9、policy受權介紹

Policy受權則是⼀種基於主體的受權。經過Policy受權的權限數據(即訪問策略)被看作是受權主體的⼀種 ⼦資源。只有當主體(⽤戶或⻆⾊)存在時才能進⾏Policy受權操做。當主體被刪除時,經過Policy受權的 權限數據會被⾃動刪除。 Policy受權使⽤MaxCompute⾃定義的⼀種訪問策略語⾔來進⾏受權,容許或 禁⽌主體對項⽬空間對象的訪問權限。 

Policy受權機制,主要解決ACL受權機制⽆法解決的⼀些複雜受權場景,⽐如:

  • ⼀次操做對⼀組對象進⾏受權,如全部的函數、全部以 「taobao」 開頭的表
  • 帶限制條件的受權,如受權只會在指定的時段內纔會⽣效、當請求者從指定的IP地址發起請求時受權才 會⽣效、或者只容許⽤戶使⽤SQL(⽽不容許其它類型的Task)來訪問某張表。

Policy受權語句格式以下:

GET POLICY; --讀取項目空間的Policy 
PUT POLICY <policyFile>; --設置(覆蓋)項目空間的Policy 
GET POLICY ON ROLE <roleName>; --讀取項目空間中某個角色的Policy 
PUT POLICY <policyFile> ON ROLE <roleName>; --設置(覆蓋)項目空間中某個角色的Policy

policy基本術語

  • 主體(Principal) 主體(Principal)是指訪問策略中的權限被指派的對象。⽐如,訪問策略」容許張三在 2011年12⽉31⽇以前對資源SampleBucket執⾏CreateObject操做」中的主體是」張三」。
  • 操做(Action) 操做(Action)是指主體對資源的訪問⽅法。⽐如,訪問策略」容許張三在2011年12⽉ 31⽇以前對資源SampleBucket執⾏CreateObject操做」中的操做是」CreateObject」。
  • 資源(Resource) 資源(Resource)是指主體請求訪問的對象。⽐如,訪問策略」容許張三在2011年12 ⽉31⽇以前對資源SampleBucket執⾏CreateObject操做」中的資源是」SampleBucket」。
  • 訪問限制(Access Restriction) 訪問限制(Access Restriction)是指權限⽣效的限制條件。⽐如,訪 問策略」容許張三在2011年12⽉31⽇以前對資源SampleBucket執⾏CreateObject操做」中的限制 條件是」在2011年12⽉31⽇以前」。
  • 效⼒(Effect) 受權效⼒包括兩個⽅⾯:容許操做(Allow)和拒絕操做(Deny)。一般,Deny有更⾼ 的效⼒,在權限檢查時會優先使⽤。 注意:「拒絕操做」和」撤銷受權」是徹底獨⽴的兩個概念,撤銷授 權一般包括撤銷對Allow和Deny這兩種不一樣效⼒的受權,⽐如傳統數據庫⼀般⽀持Revoke和Revoke Deny兩種操做

受權語句(Statement)結構

  • Effect: 指明該條語句的權限類型,取值必須爲Allow或Deny。
  • Principal: 若是Policy在受權時是與⽤戶或⻆⾊綁定,那麼就不容許再指定Principal,⽐如 MaxCompute的Role Policy。 若是Policy在受權時是與項⽬空間或項⽬空間內的對象綁定,那麼必 須指Principal,⽐如MaxCompute的Project Policy。
  • Action: 它表示受權操做,能夠是⼀個或多個操做名,可⽀持通配符號」 」 和 」 ? 」 。 例 如 , A c t i o n = 「 」 表示全部的操做。
  • Resource: 它表示受權對象,能夠是⼀個或多個對象名,可⽀持通配符號」 」 和 」 ? 」 。 例 如 R e s o u r c e = 「 」 表示全部的對象。
  • Condition Block: 條件塊是該條受權語句所述權限得以⽣效的條件。條件塊結構請參⻅下節的描述。

10、Policy的實際使用受權案例

基於之前的經驗,咱們在odps項目中建立了兩個基本的角色,分別是開發角色dev、查詢角色adhoc。

create role dev;
create role adhoc;

咱們對於角色的權限要求大概分以下兩類:

  • A開發權限:不能修改project屬性但能夠讀取project信息,有建表、建資源、建Job等各類經常使用權限;能夠修改、刪除本身在開發庫中建立的表,但對於其餘同窗建立的表則只有讀取權限。
  • B查詢權限:只能讀取project信息,不能建表、建資源、建Job;只能讀取表,但沒有任何修改、刪除權限。

咱們的安全策略大體是這樣的:

  • 開發庫上,給全部開發同窗賦予A開發權限。
  • 生產庫上,給全部開發同窗賦予B查詢權限。

原文連接

本文爲阿里雲內容,未經容許不得轉載。

相關文章
相關標籤/搜索