gcloudコマンドで別のプロジェクトも操作できるようにする。
2021-6-26
AWS だと息を吐くようにできるのに…少しずつ調べながらやるしかないですね。
https://qiita.com/sonots/items/906798c408132e26b41c
これを参考にさせていただく。
gcloud auth activate-service-account --key-file $GOOGLE_CLOUD_KEYFILE_JSON
その後
gcloud auth list
で追加したものが表示されればOK。
configurations で切り替えるのがよさそう
いろいろ調べた結果。まず前提として、以下のような対応関係になっているはず。
- Google Cloud コマンドラインインターフェースを呼び出すときに使われるIAM:ユーザーアカウントもサービスアカウントも設定次第で利用可能
- Google Cloud SDK を呼び出すときに使われるIAM:サービスアカウント
ということでユーザーは次のように切り替えるのが無難そう。
## ユーザーアカウントを切り替える
gcloud config configurations activate parity-box
gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
parity-box True [email protected] parity-box asia-northeast1-a asia-northeast1
## 初めて利用する場合は以下のようにしてログインする
gcloud auth login
## 意図したプロジェクト名が取得できればOK
gcloud config get-value project
サービスアカウントは、ユーザーにログインした状態で以下のようにする。
gcloud auth application-default login
これでデフォルトで利用するサービスアカウントがローカルにセットアップされた。SDKを利用したプログラムが利用できるはず。