为何IAM用户/角色未加入aws-auth ConfigMap仍能以管理员身份访问EKS集群
EKS集群默认管理员权限原理说明
问题1:为何IAM身份未录入aws-auth ConfigMap仍能获得集群管理员权限
EKS有内置的集群创建者专属权限规则:创建EKS集群时所使用的IAM身份(IAM用户或IAM角色),会被EKS控制平面自动映射到Kubernetes的system:masters权限组,这个映射逻辑是EKS托管层直接实现的,不需要写入aws-auth ConfigMap即可生效。
你可以执行以下命令查看当前调用AWS CLI的IAM身份,和你创建集群时使用的身份一致的话,就会触发这个默认规则:
aws sts get-caller-identity
问题2:cluster-admin权限的定义位置
这个最高权限是Kubernetes和EKS两层共同实现的:
- Kubernetes侧默认内置了名为
cluster-admin的最高权限ClusterRole,同时默认存在一个同名ClusterRoleBinding,将cluster-admin角色绑定到了system:masters用户组,你可以执行以下命令查看这个内置绑定关系:
kubectl get clusterrolebinding cluster-admin -o yaml
- EKS控制平面在处理身份认证请求时,只要发现请求的IAM身份是集群创建者,会直接将该身份归到
system:masters组,不需要依赖aws-auth ConfigMap的映射规则,因此你在aws-auth中看不到对应的条目。
补充注意事项
- 这个创建者默认权限无法在集群侧取消,只能通过删除对应IAM身份的AWS侧权限来限制,生产环境建议使用专用的IAM角色作为集群创建者,避免使用个人IAM用户创建集群,降低人员变动带来的权限风险。
- 除了集群创建者之外,其他所有IAM身份要访问EKS集群,都需要手动添加到aws-auth ConfigMap中完成映射授权,没有默认权限。
内容的提问来源于stack exchange,提问作者mahesh kanna
相关产品推荐
相关产品推荐

