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