STS中临时授权时出现“You are not authorized to do this action. You should be authorized by RAM“报错

本文详细阐述了在使用STS临时授权操作阿里云OSS时遇到的权限问题,涉及AccessKey错误、RAM用户策略设置及RoleARN角色判定,提供了解决方法和安全建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

使用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,则为服务角色。

相关文档

适用于

  • 对象存储OSS
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值