EC2实例无法通过STS AssumeRole获取AdministratorAccess权限问题
EC2实例关联角色权限报错问题排查
核心错误逻辑
你的报错本质是用EC2实例已获取的临时角色身份,尝试再次调用sts:AssumeRole去获取该实例关联的实例配置文件权限,这是不符合EC2实例角色工作机制的操作。
具体原因分析
- 操作逻辑错误:EC2实例关联IAM角色后,AWS会自动通过实例元数据服务(IMDS)向实例推送临时凭证,不需要手动执行
aws sts assume-role命令来获取权限。手动执行该命令属于重复操作,且当前临时身份没有权限对自身对应的实例配置文件执行AssumeRole动作。 - 信任策略范围限制:你配置的标准EC2信任策略是允许
ec2.amazonaws.com服务主体Assume角色,而非允许已通过该角色生成的临时用户(即报错中的arn:aws:sts::000111222333:assumed-role/Administrator_EC2/i-07e8e4a9cc81cd5fe)去Assume角色或实例配置文件,因此触发权限拒绝。 - 实例配置文件绑定验证(次要):虽然你已关联角色,仍可确认实例配置文件是否正确绑定目标角色——实例配置文件是EC2与IAM角色的桥梁,若绑定异常也可能导致凭证获取失败,但你的报错属于权限问题,此可能性较低。
正确操作方式
在EC2实例内直接使用AWS CLI或SDK调用服务即可,系统会自动从IMDS获取实例角色的临时凭证,无需手动执行AssumeRole操作。例如执行aws s3 ls,会直接使用Administrator_EC2角色的权限。
内容的提问来源于stack exchange,提问作者Nick Fusaro
相关产品推荐
相关产品推荐

