移动应用通过角色来获取临时凭证
当移动应用(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云的授权服务逻辑
创建 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/*"
]
}
]
}