服务帐号的权限突然被拒绝

服务帐号的权限突然被拒绝

我有一个 ServiceAccount,它有权在我的 GCP 项目上执行各种操作,还有一个 Jenkins 管道,它每晚运行并关闭我的一个 GKE 环境。
几天前,我开始注意到获取集群凭据时出现随机故障,而再次运行相同的管道则正常。

我有以下代码块:

gcloud auth activate-service-account --key-file=****
gcloud container clusters get-credentials integration-cluster --zone europe-west1-c --project integration-project

问题是,在失败的晚上我看到以下错误:

00:00:45  Activated service account credentials for: [[email protected]]
00:00:46  Fetching cluster endpoint and auth data.
00:00:46  ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/integration-project/zones/europe-west1-c/clusters/integration-cluster".

就像 serviceAccount 如果缺少对项目的权限,但没有任何改变并重新运行。

这是什么原因造成的?看起来像是一个错误,但是......在哪里?我现在正在使用 Google Cloud SDK 319.0.0。

10倍

答案1

错误信息message=Required "container.clusters.get" permission(s)意味着你的服务帐户没有container.clusters.get权限。

根据文件了解角色部分Kubernetes Engine 角色角色roles/container.clusterViewerroles/container.clusterAdmin包含此权限。

解决此问题您可以向包含权限的服务帐户角色授予权限container.clusters.get。提供此权限的最低特权 IAM 角色是roles/container.clusterViewer。有关更多详细信息,请查看文档了解服务帐户部分授予服务帐号访问权限

如果您的服务帐号具有所有必需的权限您可以提交问题报告Google 公开问题追踪或达到Google Cloud 支持

相关内容