🔴
firebase deployでcloud buildが失敗
現象
新規で作った組織のプロジェクトで firebase deploy を実行したところ、以下のエラーを吐いて失敗してしまいました。
...
Build failed: failed to Fetch: failed to download archive gs://gcf-sources-PROJECT_NUMBER-asia-northeast1/createUserOnUserCreate-xxxx/version-1/function-source.zip: Access to bucket gcf-sources-PROJECT_NUMBER-asia-northeast1 denied. You must grant Storage Object Viewer permission to PROJECT_NUMBER-compute@developer.gserviceaccount.com.
...
原因
2024 年 5 月 3 日以降に作成された組織は自動的なロール付与が無効になっているためでした。
解決策
サービスアカウント1に権限を付与
- サービスアカウント1: [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
- 用途: Firebase Functions のビルド
- 必要な権限: roles/cloudbuild.builds.builder
サービスアカウント2に権限を付与
- サービスアカウント2: [PROJECT_NAME]@appspot.gserviceaccount.com
- 用途: Firebase Functions の実行と Firebase 管理
- 必要な権限:
- roles/firebase.admin
- roles/iam.serviceAccountUser
あとは、firebase deploy
で成功しました。
終わりに
自動的なロール付与が無効になった影響で、新しい組織のプロジェクトをfirebaseで立ち上げると、前プロジェクトでは起きなかったエラーがちらほら起きています。cloud build以外にも、以下の記事では、firebaseコンソールから秘密鍵が作れなくなっている問題を対処しましたが、他にも遭遇する可能性があるので、もしまた他の権限エラーなど見つかれば記事としてあげていこうと思います。
Discussion