gpt4 book ai didi

kubernetes - 创建 ClusterRole 作为默认计算服务帐户失败并出现额外权限错误

转载 作者:行者123 更新时间:2023-12-03 07:59:34 26 4
gpt4 key购买 nike

我正在尝试在我通过 Jumpbox 管理的私有(private)集群中创建一个新的 ClusterRole,但一直出现“禁止:尝试授予额外权限”错误。

我已通过 gcloud 作为默认计算服务帐户进行身份验证,并且具有 Kubernetes Engine 管理员角色。

我已经为 gcloud 服务帐户创建了一个集群角色绑定(bind)

kubectl create ClusterRoleBinding sa-admin-binding --ClusterRole=cluster-admin --User=xxxxxxxx-service-account@xxxx.developer.gserviceaccount.com

当我尝试创建集群角色时,出现以下错误。

Error from server (Forbidden): error when creating "role.yml": clusterroles.rbac.authorization.k8s.io "pod-viewer" is forbidden: attempt to grant extra privileges: [{[list] [] [pods] [] []}] user=&{115268482330004182284 [system:authenticated] map[user-assertion.cloud.google.com:[AKUJVpkbsn........

我不明白的是,为什么错误会返回一个“编号”的用户帐户,而不是我用来验证身份的服务帐户。

我可以使用我自己的 gmail 帐户将 ClusterRoleBinding 添加到 cluster-admin,使用我自己的帐户进行身份验证,然后毫无问题地创建新角色,但是为服务帐户添加 clusterrolebinding,并作为该服务帐户进行身份验证不会似乎授予创建角色的权限。

有趣的是,我可以使用上述错误中的编号帐户添加 clusterrolebinding,这也有效,但无法帮助我编写设置脚本,因为我事先不知道该编号是多少,也不知道它来自哪里。

最佳答案

好吧...后来我发现编号的帐户实际上是gclouds IAM控制台中Service Account的'uniqueId'。不知道为什么它使用服务帐户,但对于用户帐户,它使用电子邮件地址,但这是我现在使用的..

CLUSTER_ADMIN_ID=`gcloud iam service-accounts describe <my-service-account>@<my-project>.iam.gserviceaccount.com --format="value(uniqueId)"`

其次是

kubectl create ClusterRoleBinding <mybinding>-cluster-admin --clusterrole=cluster-admin --user=$CLUSTER_ADMIN_ID

这允许服务帐户现在管理集群。

关于kubernetes - 创建 ClusterRole 作为默认计算服务帐户失败并出现额外权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54770198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com