无法在新GKE集群上创建clusterrolebinding

时间:2018-04-11 08:50:48

标签: google-kubernetes-engine

我配置了一个托管GKE集群(Kubernetes版本1.9.4-gke.1),基本身份验证已禁用。当我尝试创建RBAC配置(用于运行我的入口控制器)时,我收到以下错误: Error from server (Forbidden): clusterrolebindings.rbac.authorization.k8s.io is forbidden: User "XXX@gmail.com" cannot create clusterrolebindings.rbac.authorization.k8s.io at the cluster scope: Required "container.clusterRoleBindings.create" permission.

我发现了两个相关的问题:

  1. GKE clusterrolebinding for cluster-admin fails with permission error
  2. User "xxx" cannot create clusterrolebindings.rbac.authorization.k8s.io at the cluster scope
  3. 第一个包含为群集启用基本身份验证时的解决方案,这不是我的情况。第二个问题没有答案。

    我的用户不是GCP项目的所有者,但在项目中有editor个角色。我发现others观察到了这种行为。

    请告知,当群集禁用基本身份验证时,如何在GKE群集上添加缺少的权限或以其他方式定义RBAC。

1 个答案:

答案 0 :(得分:2)

要创建ClusterRoleBinding,呼叫者必须通过GCP IAM获得container.clusterRoleBindings.create权限。只有OWNERKubernetes Admin IAM角色包含该权限(因为它允许修改GKE集群上的访问控制)。

因此,要允许person@company.com运行该命令,必须授予其中一个角色。我推荐Kubernetes Admin角色。:

gcloud projects add-iam-policy-binding $PROJECT --member=user:person@company.com --role=roles/container.admin