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

AWS SSO授权EKS调用sts:AssumeRole失败问题排查

问题根因

你当前已经通过AWS SSO获取了AWSReservedSSO_DeveloperReadonly_a6a1426b0fdf9f87角色的有效凭证,但~/.kube/config中配置了--role参数,导致aws eks get-token命令会主动尝试用当前已生效的角色凭证,再次Assume同名称角色,而SSO默认生成的角色没有配置自身Assume自己的权限,因此触发AccessDenied报错。

解决步骤

  1. 修改kubeconfig配置,删除多余的--role参数
    打开~/.kube/config,找到users.ro.user.exec.args段,删除--role和对应的角色ARN两行,修改后配置如下:
args:
- --region
- us-east-2
- eks
- get-token
- --cluster-name
- foo

修改完成后可先手动执行命令验证token生成是否正常:
aws eks get-token --cluster-name foo --region us-east-2
如果能正常返回token结构体,再执行kubectl get pods验证即可。

  1. (可选)如果删除参数后仍报EKS权限错误,检查aws-auth ConfigMap配置
    你当前aws-auth中配置的roleARN没有带SSO角色的默认路径前缀,请登录IAM控制台找到对应AWSReservedSSO_DeveloperReadonly_a6a1426b0fdf9f87角色,复制完整的ARN(格式为arn:aws:iam::<账号ID>:role/aws-reserved/sso.amazonaws.com/<区域>/AWSReservedSSO_DeveloperReadonly_a6a1426b0fdf9f87),替换aws-auth ConfigMap中mapRoles段对应的rolearn值即可。

补充说明

该问题通常是生成kubeconfig时额外添加了--role-arn参数导致,后续如果使用当前已登录的SSO身份直接访问EKS,执行aws eks update-kubeconfig --name <集群名>时不需要加--role-arn参数,生成的配置就不会携带多余的--role字段。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:01