如何查看SSO登录子AWS账户时的当前扮演角色以配置EKS权限
查看子账户中当前扮演的AWS角色并更新EKS aws-auth ConfigMap
一、查看当前扮演的角色信息
1. 使用AWS CLI命令
在终端执行以下命令,返回结果的Arn字段包含当前扮演的角色信息:
aws sts get-caller-identity
输出示例(重点关注Arn字段):
{ "UserId": "AROAEXAMPLE1234567890:username@example.com", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/AWSAdministratorAccess/username@example.com" }
其中AWSAdministratorAccess是当前扮演的角色名称,对应的角色ARN为arn:aws:iam::123456789012:role/AWSAdministratorAccess(去掉assumed-role/及后续会话部分)。
2. 通过AWS控制台查看
登录子账户AWS控制台后:
- 点击右上角用户名,选择安全凭证
- 在会话详情区域,查看当前角色字段,即可获取角色名称和ARN
二、更新EKS的aws-auth ConfigMap
1. 导出当前ConfigMap内容
执行kubectl命令导出现有配置:
kubectl get configmap aws-auth -n kube-system -o yaml > aws-auth.yaml
2. 编辑ConfigMap文件
打开aws-auth.yaml,在mapRoles段添加你的角色信息(SSO扮演的角色通常用mapRoles):
示例添加内容:
mapRoles: - rolearn: arn:aws:iam::123456789012:role/AWSAdministratorAccess username: admin groups: - system:masters
rolearn:替换为你获取到的子账户角色ARNusername:自定义Kubernetes用户名groups:指定Kubernetes权限组,system:masters为集群管理员组,可按需调整
3. 应用更新后的配置
执行命令重新应用ConfigMap:
kubectl apply -f aws-auth.yaml -n kube-system
4. 验证权限
等待1-2分钟后,执行以下命令验证是否能正常查看节点:
kubectl get nodes
若能返回节点列表,说明配置已生效。
内容的提问来源于stack exchange,提问作者Nitin G
相关产品推荐
相关产品推荐

