AWS EKS修改aws-auth config-map后丢失集群访问权限如何解决
误改EKS aws-auth ConfigMap导致全集群访问丢失的解决指南
查询集群创建者ARN的方法
- 方法1:CloudTrail事件查询
进入CloudTrail控制台,筛选事件名称为CreateCluster,时间范围选择集群创建的大致时间段,事件详情内的userIdentity.arn字段即为集群创建者ARN。如果集群创建时间超过90天,且没有提前配置CloudTrail跟踪将事件持久化到S3,默认无法查询到历史事件。 - 方法2:EKS API直接查询
执行以下AWS CLI命令,部分区域的EKS服务已经支持直接返回创建者信息:aws eks describe-cluster --name <替换为你的集群名称> --query "cluster.createdBy"
注意:AWS根用户默认没有EKS集群的访问权限,除非你之前主动在aws-auth ConfigMap中配置过根用户的ARN,因此尝试用根用户访问集群失败属于正常现象。
无需提交工单的修复方案
如果你已经获取到集群创建者ARN,可以按以下步骤恢复访问:
- 配置集群创建者对应的IAM身份的AWS CLI访问凭证,集群创建者默认被授予EKS集群的
system:masters权限,该权限不受aws-auth ConfigMap修改影响。 - 执行命令生成有效kubeconfig:
aws eks update-kubeconfig --name <替换为你的集群名称> - 修复aws-auth ConfigMap,如果有备份可以直接应用备份,没有备份可以先编辑ConfigMap恢复必要的权限配置:
kubectl edit configmap aws-auth -n kube-system
如果你找不到集群创建者,可以尝试以下兜底方案:
- 排查账号下的EKS节点组关联的IAM角色,该角色默认拥有操作aws-auth ConfigMap的权限,你可以登录节点组内的EC2实例,使用该角色的凭证执行修复操作。
- 检查是否有其他预先配置过集群admin权限的IAM角色/用户,比如集群运维专用角色、CI/CD服务关联的角色等,使用对应身份执行修复。
非预设权限的IAM身份就算能够生成EKS访问token,也会因为没有RBAC权限无法修改kube-system命名空间下的ConfigMap,该现象属于正常的权限控制逻辑。
最终解决方案
如果以上方案都无法执行,提交AWS官方支持工单是最稳妥的解决路径:
提交工单时选择EKS服务对应分类,说明故障为误修改aws-auth ConfigMap导致全集群访问丢失,AWS工作人员核实你的账号权限后,会为你提供集群所有者信息或者直接修复ConfigMap配置。请注意此类非紧急故障的处理并非即时生效,建议提前预留足够的故障处理时间。
内容的提问来源于stack exchange,提问作者stuzzo
相关产品推荐
相关产品推荐

