移动应用通过角色来获取临时凭证
当移动应用(App)直连OSS上传或下载数据时,App需要向应用服务器申请访问凭证。应用服务器以RAM用户身份扮演RAM角色,调用STS API AssumeRole接口获取临时安全令牌,并将临时安全令牌传递给App,App使用临时安全令牌访问OSS
从这个角度来说并不需要主用户的AK

只是需要
- 准入用户
-
子用户控制
创建子用户
赋予公共权限
公共权限是进行提权, 例如:
推送
- 发送短信
- Feedback
- Oss 存储
赋予限制存储权限
创建 OSS 存储策略
在权限管理中加入个人自定义权限{"Version": "1","Statement": [{"Effect": "Allow","Action": ["oss:PutObject","oss:DeleteObject"],"Resource": ["acs:oss:*:*:bucket-production","acs:oss:*:*:bucket-production/*"],"Condition": {}}]}
赋予 STS 权限
STS临时授权访问OSS 详细记录了权限创建, 以下仅仅是对其进行简单的描述
这个是 Ali云的授权服务逻辑![[WIP]阿里云细粒度STS授权 - 图2](/uploads/projects/duoli@os/cfc2740bf1f04a5fcbddd1bde2fcf10b.png)
创建 STS 子用户
app-sts@…
创建 Ram 角色
app-sts
创建 app-oss-sts 权限
这里的权限授予普通的访问权限和自定目录的存储权限
将权限赋予 RAM 角色{"Version": "1","Statement": [{"Effect": "Allow","Action": ["oss:PutObject"],"Resource": ["acs:oss:*:*:bucket-production","acs:oss:*:*:bucket-production/*"]}]}
![[WIP]阿里云细粒度STS授权 - 图3](/uploads/projects/duoli@os/5feabc88aa0395025b02db37ff497b30.png)
