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
忘记这个服务帐户,但没有成功。我尝试过的事情:
-
卸载和安装
gcloud
和kubectl
删除配置目录(“~/.config/gcloud/”)
gcloud auth login
所有尝试都失败了。我仍然收到与上述相同的消息。
如何让gcloud
和kubectl
忘记此服务帐户?
谢谢!
【问题讨论】:
你试过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身份验证无法使用的情况下应该怎么办?