阿里云首页

RAM用户调用AssumeRole获取STS Token时发生报错

问题描述

RAM用户使用API、CLI或SDK调用AssumeRole获取STS Token时,出现以下报错信息:

说明AssumeRole接口的调用方法请参见AssumeRole

Error message: You are not authorized to do this action. You should be authorized by RAM.

问题原因

  • 该RAM用户缺少允许STS扮演角色的权限策略。
  • RAM角色的信任策略不包含您正在使用的RAM用户,即RAM角色不允许该RAM用户扮演。

解决方案

  • RAM用户缺少允许STS扮演角色的权限策略:请为该RAM用户添加系统策略(AliyunSTSAssumeRoleAccess)或自定义策略,您也可以通过创建自定义策略指定RAM用户具体可以扮演的RAM角色。
    1. 登录RAM控制台
    2. 在左侧导航栏,单击RAM角色管理
    3. 单击目标RAM角色名称。
    4. 基本信息区域,查看RAM角色ARN。
    5. 参见以下策略示例,将自定义策略授权给RAM用户,便可以指定具体可以扮演的RAM角色。关于如何为RAM用户授权,请参见为RAM用户授权
      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Resource": "acs:ram:*:$accountId:role/$roleName"
              }
          ],
          "Version": "1"
      }
      说明
      • Resource为获取的RAM角色ARN。
      • [$AccountId]为阿里云账号ID。
      • [$RoleName]为RAM角色名称。
  • RAM角色不允许该RAM用户扮演:请为RAM角色添加允许该RAM用户扮演的信任策略,详情请参见修改RAM角色的信任策略

适用于

  • 访问控制
首页 RAM用户调用AssumeRole获取STS Token时发生报错