STS授权用户访问OSS
话说我们这周终于要购买生产环境设备啦(嗨皮,终于到我大展拳脚的时候),但需要周三后。其中,OSS是需要用到的资源之一,需要STS授权访问,今天没事做,就提早配了。
参考文档【https://help.aliyun.com/document_detail/100624.html】
简单来说,这玩意是给前端用的(至少在我公司是这样的),利用这个临时访问凭证,上传文件,其中OSS创建的bucket读写权限为:公共读。
把握一个宗旨,看阿里的帮助文档就会豁然开朗。
里面涉及RAM子账号权限配置,遵循基本的RBAC权限逻辑,所以理解RBAC后,RAM的权限配置就没有那么复杂了。基本思路:
权限策略 ——》 角色 ——》 用户 ——》 跨域配置
权限给到某个角色(关联),角色赋予某个用户,巴拉巴拉。。。
1、准备环境,建一个公共读的Bucket,假设名称:xxx2022
2、创建自定义策略
权限策略决定了能进行什么操作
【权限管理】 ——》 【权限策略】——》【创建权限策略】,切换到“脚本编辑”
其中权限策略名称随意
这个配置的意思,是允许对某个oss的bucket进行所有操作,其中“xxx2022”是bucket的名称
2、关联权限和角色
有了权限,则需要一个角色将权限和用户关联起来,可以使用已有角色,也可以新建角色。然后给角色添加权限
(1)创建角色 (xxxrole)
a)选择类型:阿里云账号
b)配置角色:角色名称随意
c)选择信任的云账号:当前云账号
注意:创建完角色后,需要记录ARM,
供接口授权使用,以便前端可以调用授权上传文件。
(2)为角色(xxxrole)授权
把刚刚创建的自定义策略,授权给这个角色
3、给用户授权
实际上oss后台上传和sts前端授权上传是两个不一样的配置。这里结合起来了。如果只是后台上传,则直接给用户添加 系统的 AliyunOSSFullAccess 权限即可,
如果需要sts则按这个步骤,配置sts权限
(1)创建用户
注意:记下 AccessKey ID 和 AccessKey Secret
(2)给用户授权
a)配置sts权限
【用户】 ——》 【权限管理】 ——》 【添加权限】 ——》 xxx2022-auth(步骤1创建的自定义策略)
b)为用户授予请求AssumeRole的权限
配置 AliyunSTSAssumeRoleAccess系统策略。
4、配置OSS跨域访问
由于前端上传,获取sts的可能是不同域名,需要在oss配置跨域访问。
切换到oss管理控制台
【权限管理】 ——》 【跨域设置】
(1)来源 :*
(2)允许 Methods:GETPOSTPUTDELETEHEAD
(3)允许Headers:*
(4)暴露headers:
etag
x-oss-request-id