gcloud buildsでログが見れない時

2021-01-25GoogleCloudPlatform


CloudRunでCDやろうと思ったらつまずいた

サービスアカウントにコンテナのイメージをビルドさせたいときの話

$ gcloud builds submit --tag gcr.io/${project-id}/${name}
Check the gcloud log [/home/circleci/.config/gcloud/logs/2020.12.10/18.23.37.852071.log] to see which files and the contents of the default gcloudignore file used (see `$ gcloud topic gcloudignore` to learn                                                                           more).
.....
.....
.....
ERROR: (gcloud.builds.submit) HTTPError 403: <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>name-run-invoker@project-id.iam.gserviceaccount.com does not have storage.objects.get access to the Google Cloud Storage object.</Details></Error>

サービスアカウントにはstorage.objects.getは付いているのに…

ビルド結果の表示  |  Cloud Build のドキュメント  |  Google Cloud

特にログのバケットを指定してないため、ログを表示するにはプロジェクト>閲覧者の権限も必要なよう

いわゆるroles/viewer

projectの閲覧者権限の追加

個人的によく使うgcloudコマンドまとめ ~ IAM・サービスアカウント関連 ~

gcloud projects add-iam-policy-binding ${project-id} --member=serviceAccount:${name}-run-invoker@${project-id}.iam.gserviceaccount.com --role=roles/viewer

これで解決した

なんとなくプロジェクトにまつわる権限の話がわかってきた気がするがはっきり説明できるほどにはなっていない…