読者です 読者をやめる 読者になる 読者になる

uyamazakのブログ

仕事中の問題と解決メモ。PythonとGoogle Cloudがメイン。bizoceanで新規事業の企画と開発担当。 BigQueryを使ったビッグデータ収集・解析・リアルタイム処理プロジェクト進行中 https://github.com/uyamazak/oceanus

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