我如何授予自己在 Kubernetes 上创建集群角色绑定的权限?

How do I give myself permission to create clusterrolebindings on Kubernetes?

我的命令 helm list 失败并显示消息:

Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"

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

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

但是这些对我来说也失败了,并出现了这个错误:

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.

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

这给出了这个错误:

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

最后一个错误似乎给了我一个很好的提示,我似乎不是这个项目的 administrator/owner,所以我问项目的所有者是否可以给我这些权限。他不是技术人员,所以他必须通过 GUI 来完成。

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

  • 所有者
  • Kubernetes 引擎管理员
  • 作曲工作者

您可以在 GCP 的“角色”选项卡中查看权限和角色

并且您可以在 IAM 和管理选项卡中分配这些角色之一(或创建自定义角色)

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

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

您的项目所有者、组织管理员或具有项目 IAM 管理员角色的人需要为您的 $USER 授予以下角色之一,或创建自定义角色:所有者 (不太可能),Kubernetes Engine Admin(最有可能的是,虽然不遵循 最小特权 的安全原则)或 Composer Worker。那么您的 $USER 将能够创建 clusterrolebindings.rbac.authorization.k8s.io at the cluster scope