症状
gcloud ai custom-jobs create
などでdocker imageを使ってジョブを走らせようとした場合、docker内でbigqueryへクエリを叩く処理が入っていると権限がないとエラーが出て怒られます。
例えばUser does not have bigquery.jobs.create permission
等です。
しかしサービスアカウントとして利用されるVertex AI Custom Code
service agentはBigQueryへの基本的なアクセス権限があるはずので変です。またローカルで実行する上ではこのようなエラーは発生せず。
解決方法
色々調べても解決できず、試行錯誤の末BigQuery利用時にproject
をコード内で指定すれば上手くいく事が判明しました。どうやらcustom-jobs上で別の良く分からないプロジェクトとして認識されていたようだと思われます。
例えばPythonコードの場合
from google.cloud import bigquery
# NG
bigquery.Client().query(QUERY)
# OK
bigquery.Client(project=MY_PROJECT_NAME).query(QUERY)