无需调用STS API能否实现跨账号访问?相关权限疑问
关于AWS跨账号访问的两个问题解答
为什么根账号无需配置STS策略就能切换跨账号角色?
AWS根账号(Root User)是账号的最高权限实体,默认拥有所有AWS服务的全部操作权限,包括STS服务的sts:AssumeRole动作,不需要额外配置任何IAM允许策略。这是根账号的固有特性,它不受常规IAM权限策略的限制(除非被组织SCP或资源级拒绝策略明确限制,但你场景中未提及这类限制)。
同时,你在目标账号中创建的角色信任关系已明确允许根账号("AWS": "arn:aws:iam::[根账号ID]:root")扮演该角色,当根账号发起角色切换请求时:
- STS服务会验证目标角色的信任关系是否允许根账号访问
- 由于根账号默认拥有
sts:AssumeRole权限,请求直接通过,返回临时安全凭证 - 你即可使用这些凭证访问目标账号的资源
如果你是用根账号下的IAM用户user1操作,那需要确认user1是否被授予sts:AssumeRole权限,但你提到的是“根账号并未直接配置STS调用策略”,若操作主体是根账号本身,就符合上述逻辑。
是否可以不调用STS API实现跨账号访问?
可以,有以下几种无需主动调用STS API的跨账号访问方式:
- 资源级跨账号授权:直接在目标资源的权限策略中指定外部账号的IAM实体(用户、组、角色)作为授权主体。例如,给S3桶添加桶策略,允许另一个账号的特定IAM用户直接访问桶内资源,该用户无需切换角色,直接用自身账号的凭证即可访问,全程不需要调用STS。
- AWS RAM资源共享:通过AWS Resource Access Manager(RAM)将资源共享给同组织或外部账号的实体,共享完成后,授权用户可直接用自身凭证访问共享资源,无需主动调用STS API。
- 组织内的直接权限继承:若两个账号同属一个AWS组织,可通过服务控制策略(SCP)配置跨账号的资源访问权限,符合条件的用户直接用自身凭证访问目标资源,无需切换角色。
注意:大多数跨账号角色切换的场景依赖STS的
AssumeRole动作,但直接资源授权类的方式不需要主动调用STS,底层可能由AWS服务自动处理,但对用户而言无需手动调用STS API。
内容的提问来源于stack exchange,提问作者Herena
相关产品推荐
相关产品推荐

