サービス アカウントの権限が突然拒否されました

サービス アカウントの権限が突然拒否されました

GCP プロジェクトであらゆる操作を実行する権限を持つ ServiceAccount と、夜間に実行され GKE 環境の 1 つをシャットダウンする Jenkins パイプラインがあります。
数日前から、同じパイプラインを再度実行すると機能するにもかかわらず、クラスターの認証情報の取得でランダムな失敗が発生することに気付き始めました。

次のコードブロックがあります:

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 サポート

関連情報