本文主要是介绍STS中临时授权时出现“You are not authorized to do this action. You should be authorized by RAM“报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
使用STS临时授权的方式可以操作OSS实现上传、下载等功能,在使用代码实现授权时出现以下报错。
Error message: You are not authorized to do this action. You should be authorized by RAM.
问题原因
出现报错存在的部分原因如下:
- 原因一:代码中使用的AccessKey和AccessKeySecret是主账号的,并非RAM用户的。
- 原因二:没有为RAM用户添加AliyunSTSAssumeRoleAccess系统策略。
- 原因三:代码中使用的RoleARN参数对应的角色不是用户角色,而是服务角色。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
原因一的解决方法
在代码中使用RAM用户的AccessKey和AccessKeySecret。
原因二的解决方法
登录RAM访问控制的控制台,进入人员管理页面,单击用户,然后单击指定RAM用户名,在权限管理页面中,确认该RAM用户的已被授权AliyunSTSAssumeRoleAccess系统策略。
原因三的解决方法
需要确定代码中使用的RoleARN参数对应的角色是用户角色。可参考以下两种方法进行RAM用户的角色判定。
创建RAM用户角色时进行判定
RAM用户角色的定义在创建RAM角色时可参考下图分辨。其中,阿里云账号为用户角色,阿里云服务为服务角色。
通过策略信息进行判定
登录主账号控制台,进入人员管理页面,单击RAM角色管理,选择指定RAM用户,在基本信息页面中,单击信任策略管理,进行RAM用户的角色判定。判定方法如下图所示,在信任策略管理中,若选中区域为RAM,则为用户角色,若选中区域为Service,则为服务角色。
相关文档
- STS临时授权访问OSS实现步骤
- RAM角色和STS token常见问题
适用于
- 对象存储OSS
这篇关于STS中临时授权时出现“You are not authorized to do this action. You should be authorized by RAM“报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!