使用者與角色
多租戶安全體系:
1、使用者認證
MaxCompute賬号體系
MaxCompute支援雲賬号和RAM賬号兩種賬号體系
雲賬号:預設情況下,MaxCompute項目僅能識别阿裡雲賬号系統;
申請阿裡雲賬号-實名認證-建立運作密鑰accesskeys
accesskey由兩部分組成:accesskeyid和accesskeysecret組成,accesskeyid 用于檢索Accesskey,Accesskey用于計算消息簽名
檢視賬号系統指令:
list accountproviders;
RAM賬号:RAM(resource access management)是阿裡雲為客戶提供的使用者身份管理與資源通路控制服務,通過RAM服務,主賬号可以建立、管理使用者賬号(RAM賬号),控制這些使用者賬号對主賬号名下資源具有的操作權限。
從歸屬關系上看,雲賬戶與RAM使用者是一種主子關系。
從權限角度看,雲賬戶與RAM使用者是一種root與user的關系(類比Linux系統)。
MaxCompute僅能識别RAM的賬号體系,不能識别RAM的權限體系;添加RAM
賬号系統指令:
add accountprovider ram;
使用者認證:
使用者認證檢查請求request發送者的真實身份:正确驗證消息發送方的真實身份,正确驗證接收到的消息在途中是否被篡改。
雲賬号認證使用消息簽名機制,可以保證消息在傳輸過程中的完整性integrity和真實性authenticity,目前采用的消息簽名算法是HMAC-SHA1
LVS負載均衡發送accessid MD5簽名-HTTP Server發送accessid MD5簽名-雲賬号伺服器傳回accountid-HTTP Server
項目空間使用者管理:
1、Alice建立一個名為wonderland的項目,自動成為owner;沒有Alice授權,其他任何人都無法通路wonderland;
2、Alice要授權Bob允許他通路wonderland的一些對象:首先bob要有一個合法的雲賬号,然後Alice要把bob的雲賬号加到項目中,最後賦一些對象的權限給bob。
3、alice要禁止Bob通路項目,則直接将他的雲賬号從項目中移除即可,前提是bob沒有被賦予任何角色。
4、bob雖然被移除了項目,但他之前被賦予的權限仍然保留在項目中。下次一旦他被Alice加入到同一個項目,原有的權限将會被自動激活。
角色管理:角色(role)是一組通路權限的集合。
相比owner,admin角色不能将admin角色賦給别的使用者,不能設定項目空間的安全配置,不能修改項目空間的鑒權模型。
角色的限制:admin角色的權限不能被修改;沒被使用的角色才可以被删除。
2、項目空間的使用者與授權管理
授權三要素:主體subject、客體object、操作action
授權兩方法:ACL基于對象的授權;Policy基于政策的授權。
ACL授權客體包括project、table、function、resource、instance。
說明:project類型對象的createtable操作、table類型的select、alter、update、drop操作需要與project對象的create instance操作權限配合使用;當跨項目操作如在項目A裡select項目B的table,則需要有項目A的createinstace和項目B的tableselect權限。
ACL授權:
基本文法:
grant on
權限檢視:
A:表示allow,即允許通路。
D:表示deny,即拒絕通路。
C:表示with Condition,即為帶條件的授權,隻出現在policy授權體系中。
G:表示with grant option,即可以對object進行授權
檢視指定使用者權限:
show grants;檢視目前使用者自己的通路權限
show grants for ;檢視指定使用者的通路權限,僅由projectowner和admin才能執行權限。
檢視指定角色權限:
describe role;檢視指定角色的通路權限角色指派
項目空間的安全配置:鑒權模型配置
使用者管理和授權
基于标簽的安全管理
基于标簽的安全控制
labelsecurity基本操作
LabelSecurity注意事項
應用場景
應用場景2
跨項目空間的資源分享
Package
package是一種跨項目空間共享資料及資源的機制,主要用于解決跨項目空間的使用者授權問題。
建立者(資源提供方)+使用者(資源使用者)=Package機制
Package建立者
Package使用者
例子:
項目空間的資料保護
防止資料流出:
項目空間的保護機制
設定ProjectProtection規則:資料隻能流入,不能流出
set ProjectProtection=true;
設定後,觸犯了ProjectProtection規則的資料流出會被禁止。
預設時,ProjectProtection不會被設定,需要手工開啟。
項目空間保護下的合規資料流出
資源分享和資料保護
