【问题标题】:GKE clusterrolebinding for cluster-admin fails with permission error集群管理员的 GKE 集群角色绑定失败并出现权限错误
【发布时间】:2018-02-28 15:29:25
【问题描述】:

我刚刚使用运行 Kubernetes 1.7.5 的 Google Container Engine 创建了一个新集群,并启用了新的 RBAC 权限。我在为我的一些服务分配权限时遇到了问题,导致我出现以下问题:

docs 使用带有 RBAC 的容器引擎声明,必须通过运行以下命令授予用户创建授权角色的能力:

kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin [--user=<user-name>]

但是,由于缺少权限(我认为这与我们通过运行上述命令尝试授予的权限相同)而失败。

Error from server (Forbidden): 
User "<user-name>" cannot create clusterrolebindings.rbac.authorization.k8s.io at the cluster scope.: 
  "Required \"container.clusterRoleBindings.create\" permission." 
  (post clusterrolebindings.rbac.authorization.k8s.io)

任何帮助将不胜感激,因为这会阻止我创建集群服务所需的权限。

【问题讨论】:

    标签: permissions kubernetes google-cloud-platform google-kubernetes-engine


    【解决方案1】:

    如果您的 kubeconfig 是由 gcloud 自动创建的,那么您的用户不是全能的管理员用户 - 您正在尝试为其创建绑定。

    在集群上使用gcloud container clusters describe &lt;clustername&gt; --zone &lt;zone&gt; 并查找password 字段。

    之后执行kubectl --username=admin --password=FROMABOVE create clusterrolebinding ...

    【讨论】:

    • 我还必须将 kubectl 更新到最新版本,在 (v1.6) 之前,即使使用此解决方案,我仍然收到相同的错误消息。也许这对其他人也有帮助。
    • 我收到Error: unknown flag: --username
    【解决方案2】:

    Janos 的回答适用于使用密码创建的 GKE 集群,但我建议尽可能避免使用该密码(或在没有密码的情况下创建 GKE 集群)。

    使用 IAM:要创建 ClusterRoleBinding,调用者必须具有 container.clusterRoleBindings.create 权限。只有 OWNERKubernetes Engine Admin IAM 角色包含该权限(因为它允许修改 GKE 集群上的访问控制)。

    因此,要允许person@company.com 运行该命令,他们必须被授予其中一个角色。例如:

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

    【讨论】:

    • 根据我的 GCP 经验,您不仅需要此权限 (container.clusterRoleBindings.create),还需要此权限 container.clusterRoles.bind。有了这个,您可以创建自己的自定义角色,而无需使用大的 Kubernetes Engine Admin 预定义角色。文档在这里:cloud.google.com/kubernetes-engine/docs/reference/…
    • GCP / GKE:我还需要在 gke 中向我的用户添加一个 ClusterRoleBinding 以使其正常工作。
    猜你喜欢
    • 2022-10-13
    • 2019-06-06
    • 2023-01-07
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多