实现 STS 方式访问 OSS

角色是基于子账号的维度上进行调用,所以需要客户预先准备好一个子账号,具体流程如下


一、创建子账号


实现 STS 方式访问 OSS


如上图,主账号登陆控制台,创建一个子账号 “xiaoqiang”


二、创建角色


由于 STS 令牌访问是基于角色方式实现的,所以需要创建一个角色,如果只是登陆控制台的话,不需要用到 STS token ,只用角色登陆即可,文章最后有备注。
1、登陆主账号后,到访 RAM 控制台,角色管理,点击创建角色


实现 STS 方式访问 OSS


2、如下图进行操作即可,创建一个测试角色(role)


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


三、了解角色的基本属性


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


如上图查看角色基础信息


1、是你创建的角色名称(开发调用,和控制台登陆都会用到)
2、ARN 是角色的身份ID,在开发调用时会用到。
3、可以给角色绑定一个策略,如果不绑定策略,现在就是一个空角色,什么权限也没有。(注意,只能通过绑定策略方式给角色授权,角色本身无法直接修改权限)


四、为角色创建一个单独策略


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


如上图方法创建一个自定义策略,我这里是给的 OSS 管理权限,客户如果要定义不同的场景权限,需要自己去学习下文档自行编写,有些参考例子可以自己看下 教程


五、将权限策略和角色进行绑定


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


如上图,将之前创建的权限策略 zhangsan_policy 和角色 testzhangsan 绑定在一起。这样角色就具备的访问 OSS 的相关操作权限,剩下的就是让其他的子账号来扮演角色,对应的子账号就有了角色对应的权限。类似面向对象的 “继承” 概念一样。


六、子账号扮演角色


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


实现 STS 方式访问 OSS


如上图,给子账号授权一个 “AliyunSTSAssumeRoleAccess” 的策略后,zhang san_policy 就能扮演角色 testzhangsan 了,也就能具备角色对应的 OSS 访问权限了。


后续


如果客户要在开发中调用,可以通过 子账号 AccesskeyID 和 Access secretly 、ARN、RoleName 组合去生成 STS token 访问 OSS,具体的生成方法可以用 ossutil 自己去模拟下。


如果客户要登陆控制台,需要在阿里云控制台上通过切换角色的方式登陆。


实现 STS 方式访问 OSS

上一篇:Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之14.Servlet请求头信息


下一篇:SLB负载均衡