角色__身份管理_用戶指南_訪問控製-阿裏雲
1. 基本概念
教科書式角色(Textbook-Role)
教科書式角色(或傳統意義上的角色)是指一組權限集合,它類似於RAM裏的Policy。如果一個用戶被賦予了某種角色,也就意味著該用戶被賦予了一組權限,然後該用戶就能訪問被授權的資源。
RAM角色(RAM-Role)
RAM角色不同於教科書式角色。RAM角色是一種虛擬用戶(或影子賬號),它是RAM用戶類型的一種。這種虛擬用戶有確定的身份,也可以被賦予一組權限(Policy),但它沒有確定的身份認證密鑰(登錄密碼或AccessKey)。與普通RAM用戶的差別主要在使用方法上,RAM角色需要被一個授信的實體用戶扮演,扮演成功後實體用戶將獲得RAM角色的臨時安全令牌,使用這個臨時安全令牌就能以角色身份訪問被授權的資源。
虛擬用戶 vs 實體用戶
虛擬用戶與實體用戶的區別在於是否能被直接身份認證,實體用戶擁有確定的登錄密碼或AccessKey,比如雲賬號、RAM-User賬號、雲服務賬號;而虛擬用戶沒有確定的認證密鑰,比如RAM-Role。
RAM-Role必須與一種實體用戶身份聯合起來才能使用。如果一個實體用戶要想使用被賦予的某個RAM角色,實體用戶必須先以自己身份登錄,然後執行切換到角色的操作將自己從實體身份切換到角色身份。當切換到角色身份後,將隻能執行該角色身份被授權的所有操作,而登錄時實體身份所對應的訪問權限被隱藏。如果用戶希望從角色身份回到實體身份,那麼隻需執行切回登錄身份的操作,此時將擁有實體身份所對應的訪問權限,而不再擁有角色身份所擁有的權限。
RAM角色主要用於解決身份聯盟(Identity Federation)相關需求,比如聯合您的企業本地賬號實現SSO (Single-Sign-On)、委托其他雲賬號及其下RAM用戶操作您所控製的資源、委托雲服務操作您所控製的資源。
注意:如果沒有特別說明,文中出現的角色都是指RAM角色。
與RAM角色相關的幾個基本概念如下:
概念 | 注解 |
---|---|
RoleARN | RoleARN是角色的全局資源描述符,我們使用它來指定角色。RoleARN遵循阿裏雲ARN的命名規範。比如,某個雲賬號下的devops角色的ARN為:acs:ram:*:1234567890123456:role/devops。 |
受信演員 | 角色的受信演員是指可以扮演角色(即扮演角色)的實體用戶身份。創建角色時必須指定受信演員,角色隻能被受信的演員扮演。 |
權限策略 | 一個角色可以綁定一組權限(Policy)。沒有綁定權限的角色也可以存在,但不能被使用。 |
扮演角色 | 扮演角色(AssumeRole)是實體用戶獲取角色身份的安全令牌的方法。一個實體用戶通過調用AssumeRole的API可以獲得角色的安全令牌,使用安全令牌可以訪問雲服務API。 |
切換角色 | 切換角色(SwitchRole)是在控製台中實體用戶從當前登錄身份切換到角色身份的方法。一個實體用戶登錄到控製台之後,可以切換到被許可扮演的某一種角色身份,然後以角色身份操作雲資源。切換到角色身份後,原實體用戶身份的訪問權限將被屏蔽。用戶不需要使用角色身份時,可以從角色身份切換回原來的登錄身份。 |
角色令牌 | 角色令牌是角色身份的一種臨時訪問密鑰。角色身份沒有確定的訪問密鑰,當一個實體用戶要使用角色時,必須通過扮演角色來獲取對應的角色令牌,然後使用角色令牌來調用阿裏雲服務API。 |
2. 角色的使用場景
- 臨時授權移動App客戶端直接操作您所控製的資源
場景概述:企業A開發了一款移動App,並購買了OSS服務。移動App需要上傳數據到OSS(或從OSS下載數據),A不希望所有App都通過AppServer來進行數據中轉,而希望讓App能直連OSS上傳/下載數據。由於移動App運行在用戶自己的終端設備上,這些設備並不受A的控製。出於安全考慮,A不能將訪問密鑰保存到移動App中。A希望將安全風險控製到最小,比如,每個移動App直連OSS時都必須使用最小權限的訪問令牌,而且訪問時效也要很短(比如30分鍾)。
解決思路:雲賬號A在RAM中創建一個角色,給角色授予合適的權限,並允許AppServer(以RAM用戶身份運行)使用該角色。當App需要直連OSS上傳/下載數據時,AppServer可以使用角色,獲取角色的一個臨時安全令牌並傳送給App,App就可以使用臨時安全令牌直接訪問OSS API。如果需要更精細地控製每個App的權限,AppServer可以在使用角色時進一步限製臨時安全令牌的資源操作權限,比如,不同App用戶隻能操作不同的子目錄,那麼AppServer在使用角色時就可以進行這種限製。
- 跨賬號的資源操作與授權管理
場景概述:A和B代表不同的企業。A購買了多種雲資源(如ECS實例/RDS實例/SLB實例/OSS存儲桶/...)來開展業務。A希望能專注於業務係統,而將雲資源運維監控管理等任務委托或授權給企業B。當然,企業B可以進一步將代運維任務分配給B的員工。B可以精細控製其員工對A的雲資源操作權限。如果A和B的這種代運維合同終止,A隨時可以撤銷對B的授權。
解決思路:雲賬號A在RAM中創建一個角色,給角色授予合適的權限,並允許雲賬號B使用該角色。如果雲賬號B下的某個員工(RAM用戶)需要使用該角色,那麼雲賬號B可以自主進行授權控製。代運維操作時,賬號B下的RAM用戶將使用被授予的角色身份來操作賬號A的資源。如果賬號A與賬號B的合作終止,A隻需要撤銷賬號B對該角色的使用。一旦賬號B對角色的使用權限被撤銷,那麼B下的所有RAM用戶對該角色的使用權限將被自動撤銷。
3. 角色的類型
RAM支持兩種類型的角色:用戶角色和服務角色。
- 用戶角色
允許RAM用戶所扮演的角色,被稱為用戶角色。扮演角色的RAM用戶可以屬於自己雲賬號,也可以是屬於其他雲帳號。用戶角色主要用來解決跨帳號訪問和臨時授權的問題。
- 服務角色
允許雲服務所扮演的角色,被稱為服務角色。服務角色主要用於授權雲服務代理您進行資源操作。
4. 創建與使用角色
4.1 創建角色
通過RAM控製台來創建RAM角色的基本步驟如下:
- 選擇角色類型
- 選擇受信的演員身份
- 填寫角色名稱
- 給角色綁定權限策略
(1) 創建RAM用戶使用的角色
操作步驟:登入RAM控製台,選擇角色管理 -> 新建角色,在創建角色的窗口中選擇用戶角色,然後按步驟執行。
如果您創建的角色是給您自己名下的RAM用戶使用(比如授權移動App客戶端直接操作OSS資源的應用場景),那麼你可以選擇當前雲賬號為受信雲賬號。
如果您創建的角色是給其他雲賬號名下的RAM用戶使用(比如跨賬號的資源授權場景),那麼您需要選擇其他雲賬號,並在受信雲賬號ID中填寫其他雲賬號的ID,如下圖所示:
創建角色成功後,在RAM控製台的角色管理頁麵中,可以看到相應的角色詳情如下:
成功創建角色後,我們還需要給該角色授權。給角色授權的方法和給普通RAM用戶授權的方法類似,請參考給用戶授權內容。
(2) 創建雲服務使用的角色
操作步驟:登入RAM控製台,選擇角色管理 -> 新建角色,在創建角色的窗口中選擇服務角色,然後按步驟執行。
4.2 使用角色
必須使用RAM用戶身份扮演角色(AssumeRole)
為了遵循最佳安全實踐,我們不允許受信雲賬號以自己身份扮演角色。因此,受信雲賬號必須通過創建一個RAM用戶賬號,並授予該RAM用戶賬號的AssumeRole權限,然後以RAM用戶身份去扮演角色。
操作步驟:
- 創建一個RAM用戶,為該用戶創建AccessKey或設置登錄密碼
- 給該RAM用戶授權,授權時可以選擇AliyunSTSAssumeRoleAccess係統授權策略
(1) RAM用戶使用角色身份訪問雲服務API
當RAM用戶被授予AssumeRole權限之後,他就可以使用自己的AccessKey調用安全令牌服務(STS)的AssumeRole接口來獲取某個角色的臨時安全令牌。關於AssumeRole API的調用方法,請參考STS API文檔。
(2) RAM用戶使用角色身份操作控製台
如果要使用角色身份進行控製台操作,首先RAM用戶需要以自己身份登錄控製台,然後通過“切換角色”的方式使用角色身份進行控製台操作。
例如,company2(企業別名)下的RAM用戶zhangsan登錄控製台之後,控製台右上角會顯示該用戶的身份信息,如下圖所示:
用戶點擊“切換身份”操作,進入角色切換的頁麵,此時用戶需要選擇相應的企業別名和角色名(假設當前用戶已被授權允許扮演company1(企業別名)下的ecs-admin角色):
切換成功後,將以角色身份訪問控製台。此時控製台右上角將顯示角色身份(即當前身份)和登錄身份。
最後更新:2016-11-23 16:04:01
上一篇:
組__身份管理_用戶指南_訪問控製-阿裏雲
下一篇:
權限__授權管理_用戶指南_訪問控製-阿裏雲
配置負載均衡實例的攻擊防護能力__實例管理_用戶指南_負載均衡-阿裏雲
設置頁麵優化__配置操作接口_API 手冊_CDN-阿裏雲
DTS支持RAM主子賬號__訪問控製_用戶指南_數據傳輸-阿裏雲
查詢可配置的係統參數__其他接口_API_API 網關-阿裏雲
安全組使用FAQ__ECS常見問題_產品使用問題_雲服務器 ECS-阿裏雲
CDN訪問異常時候,測試問題出現在CDN節點還是本地網絡__故障檢測_產品使用問題_CDN-阿裏雲
設置跨域訪問__安全管理_開發人員指南_對象存儲 OSS-阿裏雲
Dubbo 注解兼容情況__EDAS 中的 Dubbo 開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
查詢域名截圖配置__直播流操作接口_API 手冊_CDN-阿裏雲
消費者訂閱服務__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲