服務帳戶的權限突然被拒絕

服務帳戶的權限突然被拒絕

我有一個 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 引擎角色角色roles/container.clusterViewerroles/container.clusterAdmin包含此權限。

為了解決這個問題您可以向您的服務帳戶角色授予包含權限container.clusters.get。提供此權限的權限最低的 IAM 角色是roles/container.clusterViewer。有關更多詳細信息,請查看文檔了解服務帳戶部分授予對服務帳戶的存取權限

如果您的服務帳戶擁有所有必要的權限您可以提交一份問題報告谷歌公共問題追蹤器或達到谷歌雲端支援

相關內容