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

如何为同VPC内无角色密钥的EC2实例启用EKS集群kubectl访问权限

是的,你可以通过创建IAM身份(用户或角色)并添加到aws-auth ConfigMap的方式完成EKS身份认证,实现同VPC EC2实例访问集群的需求。针对你的场景,直接使用绑定到EC2的IAM角色配置会比创建IAM用户更简便,不需要额外生成和管理访问密钥。

具体操作步骤

步骤1:获取EC2实例绑定的IAM角色ARN

登录到EC2实例后执行以下命令,即可获得当前实例正在使用的IAM角色ARN:
aws sts get-caller-identity
输出中的Arn字段格式一般为arn:aws:iam::[你的AWS账号ID]:role/[角色名],记录该值备用。

步骤2:更新EKS的aws-auth ConfigMap

使用拥有EKS集群管理员权限的身份执行以下命令,编辑ConfigMap:
kubectl edit configmap aws-auth -n kube-system
在mapRoles列表下新增你的EC2角色配置,参考如下:

请替换<>包裹的内容为你的实际值,原有配置不要修改或删除

mapRoles: |
  - groups:
    - system:masters
    rolearn: arn:aws:iam::<AWS账号ID>:role/<EC2绑定的IAM角色名>
    username: ec2-admin
  # 原有其他role配置保留

如果不需要给该实例授予集群全权限,可以自定义Kubernetes RBAC规则后替换system:masters为你自定义的权限组即可。

步骤3:验证集群访问

回到EC2实例执行以下命令生成kubeconfig配置:
aws eks update-kubeconfig --name <你的EKS集群名> --region <集群所在区域>
执行kubectl get nodes验证访问是否正常,能正常返回节点信息即配置成功。

之前操作失败原因说明

你之前给EC2角色授予的AWS管理员权限属于IAM层面的权限,EKS的RBAC权限体系独立于AWS IAM,必须通过aws-auth ConfigMap完成IAM身份到Kubernetes权限的映射后才能生效。
如果使用SSM会话登录EC2,可执行aws sts get-caller-identity确认当前使用的身份ARN是否和你添加到aws-auth的角色ARN一致,避免SSM会话身份覆盖EC2实例角色的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:21:02