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

通过IAM角色从EC2实例用kubectl访问EKS遇权限问题求助

问题分析与解决步骤

你在ConfigMap里配置的rolearn写错了,用了已假定角色的ARN(带EC2实例ID的那个),而Kubernetes AWS认证插件需要的是IAM角色本身的ARN,不是临时的假定角色ARN。这才导致了"无法对自身执行sts:AssumeRole"的权限错误。

具体修正操作:

  • 编辑你的kubectl ConfigMap(通常EKS环境下是aws-auth这个ConfigMap),把错误的rolearn替换为IAM角色的原生ARN:
    - rolearn: arn:aws:iam::<account-id>:role/EC2WorkstationRole
      username: system:node:{{EC2PrivateDNSName}}
      groups:
        - system:masters
    
  • 保存并应用ConfigMap更改:
    kubectl apply -f <你的ConfigMap文件路径>.yaml
    # 或者如果是直接编辑的话,保存退出后自动生效
    
  • 等待几秒让Kubernetes刷新认证配置,再执行kubectl get pods验证权限。

补充说明:

EC2实例已经绑定了IAM角色,实例上的临时凭证会自动被Kubernetes的AWS认证插件识别,不需要让已假定的角色再去"假定自己"。你之前的配置相当于让当前角色去调用sts:AssumeRole请求自己的临时身份,这本身就不符合IAM权限逻辑,而且也完全没必要。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:40:43