terraformの lacks IAM permission "iam.serviceAccounts.actAs" for the resource ~ に殺されかけた

terraformでGCPを構築していた。

Cloud Schedulerを作成しようと思いリソースを定義。oidcトークンを付与するためにサービスアカウントAを定義し

oidc_token {
  service_account_email = google_service_account.A.email
}

を行うも

lacks IAM permission "iam.serviceAccounts.actAs" for the resource <リソース名>

エラーが出た。Aに対して iam.serviceAccounts.actAs 権限がないものだとずっと勘違いし、Aを確認してもサービスアカウントユーザー権限は付与されている。

めっちゃ詰まったがterraformを実行するサービスアカウントにサービスアカウントユーザーがないことによるエラーだった。ロールを与えることで解決した。