我如何授予自己在Kubernetes上创建clusterrolebindings的权限?

时间:2019-01-22 12:19:36

标签: kubernetes kubernetes-helm rbac google-kubernetes-engine

我的命令Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system" 失败,并显示以下消息:

Error from server (Forbidden): error when creating "tiller-clusterrolebinding.yaml": clusterrolebindings.rbac.authorization.k8s.io is forbidden: User "$USER" cannot create clusterrolebindings.rbac.authorization.k8s.io at the cluster scope: Required "container.clusterRoleBindings.create" permission.

我发现了一些结果,这些结果告诉我如何设置RBAC角色和角色绑定,例如:

helm list : cannot list configmaps in the namespace "kube-system"

https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/

但是这些错误对我也失败:

ERROR: (gcloud.projects.add-iam-policy-binding) User [$USER] does not have permission to access project [$PROJECT:setIamPolicy] (or it may not exist): The caller does not have permission

现在,经过一番搜索,我找到了这个答案:

Cannot create clusterrolebinding on fresh GKE cluster

哪个出现此错误:

localstorage

最后一个错误似乎给了我一个很好的提示,我似乎不是该项目的管理员/所有者,所以我问项目的所有者是否可以授予我这些权限。他不是技术人员,因此必须通过GUI进行操作。

1 个答案:

答案 0 :(得分:3)

您需要以下角色之一才能在k8s中创建簇角色绑定:

  • 所有者
  • Kubernetes Engine管理员
  • 作曲工作者

您可以在GCP的“角色”标签中检查权限和角色

roles

您可以在IAM和管理标签中分配这些角色之一(或创建自定义角色)

enter image description here

您需要具有 resourcemanager.projects.setIamPolicy 权限的以下角色之一,才能为其他人设置IAM策略角色(我相信您的管理员也可以这样做)

  • 组织管理员
  • 所有者
  • 项目IAM管理员

enter image description here

您的项目所有者,组织管理员或具有项目IAM管理员角色的人需要为您的 $ USER 提供以下角色之一,或创建自定义角色:所有者(不太可能),Kubernetes引擎管理员(很可能不是遵循最低特权的安全性原则)或Composer Worker。然后,您的 $ USER 可以创建clusterrolebindings.rbac.authorization.k8s.io at the cluster scope