EKS Fargate中aws-auth配置:集群创建者如何获取管理员权限
AWS EKS aws-auth ConfigMap 相关疑问解答
一、mapRoles字段的作用
mapRoles是aws-auth ConfigMap的核心配置项,用于将AWS IAM角色映射到Kubernetes的用户组与用户名:
- 当IAM角色通过EKS身份认证流程时,会被分配到配置中指定的K8s用户组,同时获得对应的用户名(配置里的
{{SessionName}}是变量,会自动替换为IAM角色会话的实际名称) - 你提供的配置里,是把Fargate Pod执行角色映射到
system:bootstrappers、system:nodes、system:node-proxier这几个K8s内置组,这些组是给节点相关身份使用的,确保Fargate节点能正常接入集群并完成基础运维操作。
二、集群创建者的管理员权限来源
你当前的aws-auth配置里没有admins组相关内容,是因为EKS集群的初始管理员权限是集群创建时自动配置的,无需在aws-auth里显式声明:
- 执行集群创建操作的IAM实体(用户或角色),会被EKS自动加入Kubernetes的
system:masters组——这是K8s内置的超级管理员组,拥有集群的全部权限 - 这个默认配置不会直接显示在aws-auth ConfigMap中,你可以通过以下命令验证创建者的权限绑定:
kubectl get clusterrolebinding system:masters -o yaml
输出内容会展示绑定到system:masters组的相关身份信息。
三、添加其他管理员的方法
如果需要给其他IAM用户/角色分配管理员权限,需手动在aws-auth的mapUsers或mapRoles中添加配置,将对应IAM身份映射到system:masters组,示例如下:
apiVersion: v1 data: mapRoles: | # 原有Fargate角色配置 - groups: - system:bootstrappers - system:nodes - system:node-proxier rolearn: arn:aws:iam::accountID:role/eksctl-name-cluster-FargatePodExecutionRole-1JTMRBGU971E6 username: system:node:{{SessionName}} # 新增管理员角色映射 - groups: - system:masters rolearn: arn:aws:iam::accountID:role/eks-admin-role username: eks-admin mapUsers: | # 新增管理员用户映射 - userarn: arn:aws:iam::accountID:user/eks-admin-user username: eks-admin-user groups: - system:masters kind: ConfigMap metadata: name: aws-auth namespace: kube-system
内容的提问来源于stack exchange,提问作者tmp dev
相关产品推荐
相关产品推荐

