GKE集群配置RBAC时如何为Google用户组绑定对应集群角色
GKE用户组RBAC配置方案
核心问题原因
你未启用GKE专属的Google Groups for RBAC特性时,直接在ClusterRoleBinding中引用Google Workspace/Cloud Identity组的配置不会生效:原生Kubernetes RBAC的Group类型仅能识别集群内部的身份组,无法直接对接Google的目录服务组身份。
正确配置步骤
- 第一步:准备顶层安全组
在你的Google Workspace或Cloud Identity域名下创建固定命名的顶层组gke-security-groups@[你的实际域名],将你需要用于RBAC授权的abc@example.com、def@example.com两个组添加为该顶层组的成员。 - 第二步:启用Google Groups for RBAC特性
根据集群状态选择对应操作:- 新建集群:创建时在gcloud命令中添加参数
--security-groups=gke-security-groups@[你的实际域名],或在控制台集群创建页的「安全」配置板块勾选Google Groups for RBAC选项并填入上述顶层组地址 - 存量集群:执行更新命令开启特性,控制面会短暂重启不影响业务负载:
gcloud container clusters update [你的集群名称] \ --region [集群所在区域] \ --security-groups=gke-security-groups@[你的实际域名] - 新建集群:创建时在gcloud命令中添加参数
- 第三步:创建RBAC规则
集群特性启用完成后,你编写的ClusterRoleBinding配置即可正常生效。授予def@example.com集群admin权限的配置参考如下:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-role roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: admin subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: "def@example.com"
权限验证
配置完成后,使用对应组内的账号登录集群,可通过以下命令验证权限是否生效:
- 验证view权限:
kubectl auth can-i get pods -A预期返回yes - 验证admin权限:
kubectl auth can-i create deployments -A预期返回yes
内容的提问来源于stack exchange,提问作者Sanjay M. P.
相关产品推荐
相关产品推荐

