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

使用创建EKS集群的角色无法访问集群资源如何解决

EKS集群访问权限报错问题解决

根因定位

你遇到的权限问题核心是混淆了EKS集群创建过程中的两类IAM角色:

  • 执行aws eks create-cluster命令时的调用者身份:也就是你当前EC2实例附加的my-cluster-role,只有这个身份会被EKS默认自动授予system:masters集群管理员权限
  • 命令中--role-arn参数指定的是EKS集群服务角色:仅用于EKS后台调用AWS服务管理VPC、负载均衡等资源,和你访问Kubernetes资源的权限无关

你收到的报错显示身份被识别为system:node:i-xxxxxxxx,说明你的my-cluster-role被EKS的aws-auth配置映射成了EC2工作节点身份,节点身份默认仅拥有pod、service等有限资源的访问权限,没有集群级别的管理权限。

解决步骤

步骤1:获取集群管理员操作权限

首先切换到最初执行aws eks create-cluster命令的IAM身份(如果是其他用户/角色),重新生成kubeconfig:

aws eks --region us-east-1 update-kubeconfig --name my-cluster

此时该身份拥有集群管理员权限,可以修改权限配置。

步骤2:给EC2实例角色绑定管理员权限

在管理员身份下编辑EKS的aws-auth配置文件:

kubectl edit configmap aws-auth -n kube-system

在mapRoles字段中添加如下配置,替换为你的实际账号ID和角色名:

- groups:
  - system:masters
  rolearn: arn:aws:iam::012345678910:role/my-cluster-role
  username: cluster-admin:{{SessionName}}

保存配置后,回到你的EC2实例重新执行kubectl命令,即可正常访问所有集群资源。

特殊场景处理:无法找到原始集群创建身份

如果已经丢失了最初创建集群的IAM身份,可以通过AWS控制台操作恢复权限:

  • 登录AWS控制台,进入对应EKS集群的「访问」标签页
  • 点击「添加访问入口」,选择my-cluster-role,为其授予AmazonEKSClusterAdminPolicy策略,访问范围选择整个集群
  • 等待配置生效后回到EC2实例操作即可

之前创建ClusterRoleBinding失败的原因

你的当前身份没有RBAC资源的修改权限,必须先获得集群管理员权限后才能操作ClusterRole、ClusterRoleBinding这类权限配置资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:15:07