我配置了一个托管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.
我发现了两个相关的问题:
第一个包含为群集启用基本身份验证时的解决方案,这不是我的情况。第二个问题没有答案。
我的用户不是GCP项目的所有者,但在项目中有editor
个角色。我发现others观察到了这种行为。
请告知,当群集禁用基本身份验证时,如何在GKE群集上添加缺少的权限或以其他方式定义RBAC。
答案 0 :(得分:2)
要创建ClusterRoleBinding
,呼叫者必须通过GCP IAM获得container.clusterRoleBindings.create
权限。只有OWNER
和Kubernetes Admin
IAM角色包含该权限(因为它允许修改GKE集群上的访问控制)。
因此,要允许person@company.com
运行该命令,必须授予其中一个角色。我推荐Kubernetes Admin
角色。:
gcloud projects add-iam-policy-binding $PROJECT --member=user:person@company.com --role=roles/container.admin