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

EKS集群aws-auth ConfigMap损坏导致鉴权失败如何恢复集群访问?

解决方案

核心原理

EKS有两个不受aws-auth ConfigMap控制的内置管理员权限通道:

  1. 集群创建时使用的原始IAM身份(用户/角色),默认被授予system:masters最高权限
  2. EKS访问入口(Access Entry)功能中配置的集群权限策略,优先级高于aws-auth ConfigMap

操作步骤

步骤1:优先使用原始集群创建者身份恢复

  • 登录AWS控制台,进入EKS集群详情页,在「配置」标签下找到「集群创建者ARN」,记录对应IAM身份
  • 在AWS CLI中切换为该身份(可通过配置~/.aws/credentials对应密钥、或使用sts assume-role切换角色)
  • 执行命令重新生成kubeconfig凭证:
    aws eks update-kubeconfig --name <你的集群名称> --region <集群所在区域>
    
  • 执行kubectl get ns验证权限,正常返回结果则进入下一步修复ConfigMap

步骤2:修复aws-auth ConfigMap

执行命令编辑ConfigMap:

kubectl edit configmap aws-auth -n kube-system

将mapUsers字段中为空的username补全,修正后的配置示例如下(注意yaml缩进格式要正确,原有mapRoles配置不要改动):

apiVersion: v1
data:
  mapRoles: <原有默认配置保留>
  mapUsers: |
    - userarn: arn:aws:iam::<你的AWS账号ID>:root
      username: root
      groups:
      - system:bootstrappers
      - system:nodes

保存退出后ConfigMap会自动生效。

兜底方案:找不到原始集群创建者时使用

如果无法定位原始集群创建者身份,可通过EKS访问入口直接开通管理员权限:

  1. 用持有eks:CreateAccessEntry权限的IAM身份(比如AWS根用户)登录AWS控制台,进入EKS集群「访问」标签页
  2. 点击「添加访问条目」,选择你当前使用的IAM身份,关联AmazonEKSClusterAdminPolicy策略,作用范围选择「集群」
  3. 等待2分钟配置生效后,重新执行aws eks update-kubeconfig生成凭证,即可访问集群修复ConfigMap

验证

切换回你日常使用的IAM身份,重新更新kubeconfig后执行kubectl get nodes,无报错即为修复完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:39:04