仕事中の問題と解決メモ。

最近はPythonとGoogle Cloud Platformがメイン。株式会社ビズオーシャンで企画と開発運用、データ活用とか。 http://mstdn.bizocean.co.jp/@uyamazak https://github.com/uyamazak/

Docker環境でGoogle Cloud APIへの認証を行う

よく忘れるのでメモ。

ググって出てくるページだと

gcloud auth application-default login

しろとか、コマンドが出てくるけどDockerだといろいろ面倒なので、鍵ファイルを用いた認証がしたい。



GCPのコンソールから「IAMと管理」→「サービスアカウントを作成」。

URL的には下記。

https://console.cloud.google.com/iam-admin/serviceaccounts/project?project={プロジェクトID}

当たり前だけど権限は必要なものだけにして、複数のアプリがあれば、それぞれに作ったほうが良い。



もし間違って鍵ファイルをGitHubに公開してしまった時などは危ないので、すぐこの画面から削除して、新しい鍵に差し替えればおk(以前やった)。

アプリごとに鍵を変えていれば、その作業も最低限で済む。


作成すると、鍵ファイルがJSON形式でダウンロードされるので、dockerのホストマシンにコピーする。名前は変更してしまっても良い。


ファイル名がkey.jsonだったらDockerfileで下記のようにコピ-。

そのファイル名を環境変数GOOGLE_APPLICATION_CREDENTIALS」にファイル名を入れる。

COPY key.json key.json
ENV GOOGLE_APPLICATION_CREDENTIALS key.json


これでビルドすれば、各言語のライブラリから特に難しいことなく認証が通る。

Google Application Default Credentials  |  Google Identity Platform  |  Google Developers