无法访问EKS API:aws-auth配置后k8s-admin权限异常
解决EKS中aws-auth ConfigMap配置后k8s-admin权限问题
核心问题:YAML格式错误
你的mapUsers段存在缩进错误,YAML对层级缩进要求严格,username和groups必须与userarn保持同一层级缩进,否则配置无法被正确解析,这是导致权限不生效的直接原因。
正确的mapUsers配置片段如下:
mapUsers: | - userarn: arn:aws:iam::XXX:user/k8s-admin username: k8s-admin groups: - system:masters
修复与验证步骤
修正aws-auth ConfigMap
直接编辑集群中的ConfigMap文件:kubectl edit configmap/aws-auth -n kube-system将
mapUsers段的缩进修正为上述格式后保存退出。确认配置生效
查看更新后的ConfigMap内容,确保格式正确:kubectl get configmap/aws-auth -n kube-system -o yaml重置kubeconfig缓存
如果使用AWS CLI生成kubeconfig,重新生成并指定k8s-admin用户的认证信息:aws eks update-kubeconfig --region <你的集群区域> --name <集群名称> --profile k8s-admin替换
<你的集群区域>和<集群名称>为实际值,--profile对应你本地AWS CLI中配置的k8s-admin用户凭证。测试权限
执行命令验证权限是否恢复:kubectl get pods -n default若配置正确,将能正常列出default命名空间下的Pod。
清理不必要配置
mapAccounts用于跨AWS账号访问授权,单个用户权限配置不需要该段,可直接删除,避免干扰认证逻辑。
额外提醒
- 确保IAM用户
k8s-admin拥有eks:DescribeCluster权限,否则无法通过AWS CLI生成有效的kubeconfig。 - EKS的aws-auth配置变更通常需要1-2分钟生效,若立即测试失败可稍作等待后重试。
内容的提问来源于stack exchange,提问作者Murakami
相关产品推荐
相关产品推荐

