AWS CLI在Linux与Darwin的服务调用差异及STS权限问题排查
AWS CLI跨系统执行差异问题
问题现象
- 在Linux系统执行以下命令时失败:
aws --profile=REDACTED --region=REDACTED rds describe-db-instances - 相同命令在Darwin(Mac)系统执行成功。
- 排查发现:Linux系统下该命令会触发*AWS Simple Token Service(STS)*调用,但当前账号无
sts.AssumeRole权限;Darwin系统则跳过STS直接调用RDS服务。
环境信息
两台机器使用的AWS CLI版本完全一致:
aws-cli/1.25.76 Python/3.10.8 Linux/6.0.11 botocore/1.27.75
Linux端报错信息:
An error occurred (AccessDenied) when calling the AssumeRole operation: User: REDACTED is not authorized to perform: sts.AssumeRole on resource: REDACTED
已确认当前账号确实无sts.AssumeRole权限。
额外测试结果
故意输错区域名称时:
- Darwin系统首次调用的是RDS服务,报错无法连接到
https://rds.typo-region.amazonaws.com/ - Linux系统首次调用的是STS服务,报错无法连接到
https://sts.typo-region.amazonaws.com/
疑问
- 为何不同系统下的首次调用目标服务存在差异?
- AWS CLI触发STS调用的具体条件是什么?
- 是否是Linux机器的认证配置或会话管理存在错误?
内容的提问来源于stack exchange,提问作者benjaminedwardwebb
相关产品推荐
相关产品推荐

