【Cloud Functions】デプロイでBuild service account needs to be specified due to Org Policies.と怒られた【開発備忘録】

GCP 開発備忘録

一度デプロイが成功したのに、新しい関数を作って再デプロイをしようとしたらBuild service account needs to be specified due to Org Policies.という謎のエラーに遭遇しました。

これにどう対処したのか書いていきます。

結論

IAMのロール管理画面にて[project-id]@cloudbuild.gserviceaccount.comに以下のロールを割り当てたところ解決しました。

  • Cloud Build サービス アカウント
  • Cloud Functions サービス エージェント

※注意点ですが、Functionsのデプロイに必要なロールはこの2つだけでなく、前回の記事で挙げた4つのロールが付与されていることが前提となります。そこだけ間違えないようにお願いします。

エラーが出た経緯の考察

一度デプロイに成功しているにもかかわらず、再デプロイ時にエラーが出たことは非常に不可解です。
したがって、エラーが出た経緯についてはあくまでも考察とさせていただきます。

1. 気づかぬ間にロールを変更してしまっていた可能性

デプロイ成功後から再デプロイまでの間に何かしらの設定をいじって、ロールが変更されていた可能性です。
正直言って、可能性としてはこれが一番大きいと思います。
そうだとして、どこでどのタイミングで変更したのかまったく思い当たらない、、、

2. 組織のポリシーが影響を及ぼした可能性

エラーメッセージに”due to Org Policies”とあるので、やはり組織ポリシーが根本的な原因の可能性は否めません。
もしそうだとしたら、こちらもデプロイ成功後に何かしらの組織ポリシーを変更したことが起因していると考えられます。
とは言っても、他のGCPサービスの設定等も行なっていたため、どの組織ポリシーが直接的に関わっているのかは見当がつきません。

3. 一度デプロイに成功したのは実はおかしかった可能性

一度デプロイに成功した際に実はロールが足りておらず、そもそもデプロイに成功した事実がおかしい説です。
ほぼ100%あり得ませんが、可能性はゼロではないので一応、、、笑