集群创建者信息丢失时如何使用其他用户访问EKS集群
EKS集群创建者遗失时管理员访问方案
报错原因
Your current user or role does not have access to Kubernetes objects on this EKS cluster
该报错是EKS的默认权限机制导致的:集群创建时使用的IAM实体(用户/角色)会被自动绑定到Kubernetes内置的system:masters管理员组,其余IAM身份即便拥有AWS全局管理员权限,默认也无法访问集群内部Kubernetes资源。
前提准备
- 你当前使用的管理员IAM身份需具备AWS侧
eks:DescribeCluster、eks:CreateAccessEntry、eks:AssociateAccessPolicy权限 - 执行以下命令获取当前IAM身份的ARN,后续配置需要用到:
aws sts get-caller-identity --query Arn --output text
操作步骤
方案1:使用EKS原生访问入口配置(推荐)
该方案为AWS官方支持的权限配置方式,无需直接操作集群内部ConfigMap,适配所有1.22及以上版本的EKS集群:
- 执行以下命令为你的管理员IAM身份绑定集群管理员权限,将占位符替换为你的实际参数:
aws eks create-access-entry \ --cluster-name <你的EKS集群名称> \ --principal-arn <上一步获取的管理员IAM ARN> \ --kubernetes-groups system:masters \ --region <集群所在AWS区域>
- 执行命令更新本地kubeconfig配置:
aws eks update-kubeconfig --name <你的EKS集群名称> --region <集群所在AWS区域>
- 验证权限是否生效:
kubectl get nodes
正常返回节点列表即为配置成功。
方案2:修改aws-auth ConfigMap(适配1.22以下版本旧集群)
针对未启用EKS访问入口的旧版本集群,可直接修改Kubernetes系统命名空间下的aws-auth ConfigMap完成授权:
- 执行命令拉取当前aws-auth配置到本地:
kubectl get configmap aws-auth -n kube-system -o yaml > aws-auth.yaml
- 编辑
aws-auth.yaml文件,在mapUsers字段下添加你的管理员身份配置:
mapUsers: | - userarn: <你的管理员IAM ARN> username: admin groups: - system:masters
- 应用修改后的配置:
kubectl apply -f aws-auth.yaml -n kube-system
- 重新更新kubeconfig后执行
kubectl get nodes验证即可。
排查注意事项
- 权限配置后最多需要2分钟生效,配置完成后稍等片刻再重试
- 若依然报错,再次执行
aws sts get-caller-identity确认当前使用的IAM身份ARN和配置的ARN完全一致 - 确保本地aws cli配置的区域和集群所在区域匹配
内容的提问来源于stack exchange,提问作者irfan
相关产品推荐
相关产品推荐

