従来、GCPの特定のサービスでは、ユーザがサービスアカウントを偽装する権限がなくても、サービスアカウントをリソースにアタッチすることができましたが、
- App Engine
- CloudComposer
- Cloud Data Fusion
- Dataflow
- Dataproc
においては偽装する権限を付与する必要があります。(2021年1月以前に作ったプロジェクトはおそらく)
解決方法
突然の解決方法ですが、
タイトルのようなログの中で表示されているサービスアカウントに対し、 roles/iam.serviceAccountUser
権限を付与することで解決します。
GCPのコンソールからは以下の図のように Service Account User
を追加します。
ではでは。
参考資料
Requiring permission to attach service accounts to resources