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

换新笔记本配置AWS EKS后执行kubectl命令遇sts:AssumeRole权限错误求助

解决IAM角色AssumeRole权限拒绝问题

核心原因

当前使用的IAM用户<AWS_USERNAME>未被授权扮演指定的IAM角色role_name,导致kubectl通过AWS CLI获取凭证时失败。

解决步骤

  1. 修改目标IAM角色的信任策略
    登录AWS控制台,进入IAM服务,找到角色role_name:

    • 切换到「信任关系」标签页,点击「编辑信任策略」
    • 在策略的Statement数组中添加允许当前用户扮演该角色的规则,示例如下:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::xxxxxxxxxxxx:user/<AWS_USERNAME>"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    

    保存策略后,等待1-2分钟让权限生效。

  2. 验证当前用户的IAM权限
    确认当前IAM用户的权限策略中没有禁止sts:AssumeRole操作,且存在允许对arn:aws:iam::xxxxxxxxxxxx:role/role_name执行该操作的规则(如果用户有附加的权限策略)。

  3. 重新生成kubeconfig配置
    重新执行以下命令更新kubectl配置:

    aws eks update-kubeconfig \
        --region us-west-2 \
        --name my-app-prd \
        --role-arn arn:aws:iam::xxxxxxxxxxxx:role/role_name
    
  4. 测试权限
    再次运行kubectl get svc验证是否能正常访问EKS集群资源。

额外排查点

  • 检查命令中填写的角色ARN、用户ARN是否存在拼写错误(比如账号ID、角色名、用户名)
  • 确认当前AWS CLI使用的是正确的用户配置(可通过aws configure list查看当前配置的用户信息)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:16:11