You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何IAM用户无AssumeRole权限可切换指定角色?解析权限差异

IAM角色信任策略的权限差异解析

场景回顾

你拥有一个具备完整EC2访问权限的IAM角色,其初始信任策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::AccountA:user/dev"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

出现两种不同的权限表现:

  • 当信任策略主体为具体IAM用户arn:aws:iam::AccountA:user/dev时,该用户未关联任何AssumeRole权限策略,仍能切换至该角色。
  • 当将信任策略中的主体扩展为账号ID时,必须为用户附加显式的sts:AssumeRole权限才能切换角色。

原因解析

这是AWS IAM权限评估逻辑在两种场景下的差异导致的:

  • 指定具体IAM用户作为信任主体:
    这种情况下,信任策略直接明确了"允许这个特定用户执行sts:AssumeRole操作",相当于一次性完成了"主体范围"和"操作权限"的双重授权。用户发起角色切换请求时,AWS仅通过信任策略的校验即可放行,无需额外检查用户自身的权限策略。

  • 指定账号ID作为信任主体:
    当信任策略开放给整个账号时,它只完成了"允许该账号内的实体访问角色"的范围性授权,但无法确定账号内具体哪个用户有权执行sts:AssumeRole。此时就需要用户自身的权限策略来补充明确授权——只有当用户的权限策略允许其调用sts:AssumeRole,同时信任策略允许该用户所在账号,请求才会通过校验。

简言之,精准到个体的信任策略自带操作权限授权;范围性的账号级信任策略,必须搭配用户自身的权限策略才能完成完整的权限校验。

内容的提问来源于stack exchange,提问作者Mann564

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:41:11