角色是基於子賬號的維度上進行調用,所以需要客戶預先準備好一個子賬號,具體流程如下
一、創建子賬號
如上圖,主賬號登陸控制檯,創建一個子賬號 “xiaoqiang”
二、創建角色
由於 STS 令牌訪問是基於角色方式實現的,所以需要創建一個角色,如果只是登陸控制檯的話,不需要用到 STS token ,只用角色登陸即可,文章最後有備註。
1、登陸主賬號後,到訪 RAM 控制檯,角色管理,點擊創建角色
2、如下圖進行操作即可,創建一個測試角色(role)
三、瞭解角色的基本屬性
如上圖查看角色基礎信息
1、是你創建的角色名稱(開發調用,和控制檯登陸都會用到)
2、ARN 是角色的身份ID,在開發調用時會用到。
3、可以給角色綁定一個策略,如果不綁定策略,現在就是一個空角色,什麼權限也沒有。(注意,只能通過綁定策略方式給角色授權,角色本身無法直接修改權限)
四、為角色創建一個單獨策略
如上圖方法創建一個自定義策略,我這裡是給的 OSS 管理權限,客戶如果要定義不同的場景權限,需要自己去學習下文檔自行編寫,有些參考例子可以自己看下 教程
五、將權限策略和角色進行綁定
如上圖,將之前創建的權限策略 zhangsan_policy 和角色 testzhangsan 綁定在一起。這樣角色就具備的訪問 OSS 的相關操作權限,剩下的就是讓其他的子賬號來扮演角色,對應的子賬號就有了角色對應的權限。類似面向對象的 “繼承” 概念一樣。
六、子賬號扮演角色
如上圖,給子賬號授權一個 “AliyunSTSAssumeRoleAccess” 的策略後,zhang san_policy 就能扮演角色 testzhangsan 了,也就能具備角色對應的 OSS 訪問權限了。
後續
如果客戶要在開發中調用,可以通過 子賬號 AccesskeyID 和 Access secretly 、ARN、RoleName 組合去生成 STS token 訪問 OSS,具體的生成方法可以用 ossutil 自己去模擬下。
如果客戶要登陸控制檯,需要在阿里雲控制檯上通過切換角色的方式登陸。