gcloud\kubectl 身份验证问题:忘记服务帐户

Posted

技术标签:

【中文标题】gcloud\\kubectl 身份验证问题:忘记服务帐户【英文标题】:gcloud \ kubectl authentication problem: forget service accountgcloud\kubectl 身份验证问题:忘记服务帐户 【发布时间】:2020-08-29 13:47:50 【问题描述】:

我正在使用 gcloud 和 kubectl 来处理我的资源(Kubernetes、VM 等)。一切正常,直到我阅读了一些创建新服务帐户并通过云激活它的文章。像这样的:

gcloud auth activate-service-account --key-file=path/to/key

创建的服务帐户对少数资源的权限有限。当我运行命令时,例如:

kubectl --namespace production get pods

我收到的回复如下:

来自服务器的错误(禁止):Pod 被禁止:用户 “SA-USER@PROGECTNAME.iam.gserviceaccount.com” 无法列出命名空间中 API 组“”中的资源“pod” “生产”:需要 ["container.pods.list"] 权限之一。

SA SA-USER@PROGECTNAME.iam.gserviceaccount.com 是我昨天创建的服务帐户。出于某种原因,它控制了我的默认权限,我被锁定了,因为这个用户几乎没有权限。

我试图让gcloud 忘记这个服务帐户,但没有成功。我尝试过的事情:

    卸载和安装gcloudkubectl 删除配置目录(“~/.config/gcloud/”) gcloud auth login

所有尝试都失败了。我仍然收到与上述相同的消息。

如何让gcloudkubectl 忘记此服务帐户?

谢谢!

【问题讨论】:

你试过gcloud auth application-default login吗?您还可以通过 gcloud config list 查看 gcloud CLI 的当前配置,并使用 gcloud config set param_name param_value 更改一些默认参数。有了这个,您将能够解决您的问题。 是的,这解决了问题!谢谢你。请将其转换为答案,我将其标记为“解决方案”。 很高兴听到这个消息!!我回答了你的问题;) 【参考方案1】:

您可以执行gcloud auth application-default login

您还可以通过 gcloud config list 查看 gcloud CLI 的当前配置。您可以使用gcloud config set param_name param_value 更改一些默认参数。例如(因为如果你有几个项目,你会经常使用它)

gcloud config set project MyProjectId

有了这些,您将能够解决您的问题

【讨论】:

【参考方案2】:

kubectl使用的认证token过期问题。

当您通过gcloud 选择新用户并发出kubectl 请求时,会在本地缓存身份验证令牌。

一种解决方法是编辑您的 ~/.kube/config 并为相关用户部分的 expiry 字段设置过去的日期。

【讨论】:

以上是关于gcloud\kubectl 身份验证问题:忘记服务帐户的主要内容,如果未能解决你的问题,请参考以下文章

Node.JS webapp:身份验证、创建帐户、忘记密码和更改密码

sqlserver忘记SA用户密码,windows身份验证无法使用的情况下应该怎么办?

中国移动怎么申请随机密码

sql身份验证密码怎么复制

请问sql2008忘记sa的默认密码是多少?或者怎么修改密码

linux 访问需要身份验证怎么解决