角色是基于子账号的维度上进行调用,所以需要客户预先准备好一个子账号,具体流程如下
一、创建子账号
如上图,主账号登陆控制台,创建一个子账号 “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 自己去模拟下。
如果客户要登陆控制台,需要在阿里云控制台上通过切换角色的方式登陆。