0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[GCP]gcloud CLIまとめ

Last updated at Posted at 2024-09-09

概要

GCPのリソースを操作できるコマンドラインツール。

使い方
流れは以下のような形。

  1. GCPリソースを操作するGoogleアカウントでログイン(gcloud auth login)
  2. GCPリソースを操作(gcloud <リソース名> <操作> <オプション(操作対象のリソースがあるプロジェクトIDなど)>)

加えて、あらかじめconfiguration(gcloud コマンドを実行する際のデフォルト設定集)を作成、各設定値をセットしておくと、2. の段階でオプションをいちいち設定しないで済むので便利。

gcloud.jpg

gcloudコマンドの例

詳細はgcloudのリファレンスを参照。

gcloud config configuraitons list

configurationを一覧表示する。
どのconfiguraitonがアクティべートされているのか、configurationに書き込まれているアカウント、プロジェクトIDは何なのかといった、デフォルト設定の中でも特に知りたいような情報も一緒に表示される。

gcloud config configurations list

gcloud config configurations create

新しく名付けたconfigurationを作成する。
デフォルトでは作成後に即有効化される。

gcloud config configurations create <configuration名>

任意オプション

  • --no-activate: 作成するが、即有効化はしない

参考:
gcloud config configurations create

gcloud config configurations activate

指定したconfigurationをアクティベートする

gcloud config configurations activate <configuration名>

参考:
gcloud config configurations activate

glcoud config list

configurationに書き込まれている設定値を一覧表示する。

gcloud config list

何もオプションを指定しない場合は、未設定の項目は出力されない模様。

オプション

  • <セクション>: 一覧表示したい設定値のセクションを絞る
  • --all: 設定済み・未設定に関わらず全ての設定の一覧を表示

参考:
gcloud config list

gcloud config set

configurationに対して、指定した設定項目のデフォルト値を書き込む。
書き込み対象のconfigurationは--configurationで指定できるが、指定しない場合のデフォルトは現在アクティブなconfiguration。

gcloud config set <セクション>/<プロパティ> <値>

<セクション>/<プロパティ>の例

  • core/project: GCPのプロジェクトID。
  • auth/disable_credentials <true or false>: trueにすると、認証情報のロードやリクエストの認証をしないようにする。
  • api_endpoint_overrides/spanner: gcloud spanner コマンドグループで叩くAPIのエンドポイントを上書きする。デフォルトはhttps://sourcerepo.googleapis.com/

--configuration

参考:
gcloud config set

gcloud auth list

以下のコマンドで認証情報を取得したアカウント(Googleアカウントやサービスアカウント)を一覧表示する。

gcloud init
gcloud auth login
gcloud auth activate-service-account

gcloud auth application-default loginで設定されたADCのアカウントは対象外。
アクティブなconfigurationで使われるデフォルトのアカウントがどれかも表示してくれる。

gcloud auth login

Google アカウントの認証情報で GCP へアクセスするように gcloud CLI を認証する。
Web ベースの認証フローを経由してユーザーアカウントの認証情報を取得する。
コマンドの実行に成功した場合、アクティブな configuration に認証フローで選択したユーザーがアクティブなアカウントとしてセットされる(core/account)。

補足
現在アクティブな configuration は、gcloud config configuration listで確認できる。
アクティブな configuration にセットされているアカウントは、gcloud config list core/accountで確認できる。

gcloud auth application-default login

Webのフローを経由して ADC (アプリケーションデフォルトクレデンシャル) の認証情報を取得し、以下の場所にファイルとして配置する。

  • Linux / Mac: ~/.config/gcloud/application_default_credentials.json
  • Windows: %APPDATA%\gcloud\application_default_credentials.json

--impersonate-service-account="<サービスアカウント>"
指定したサービスアカウント(へなりすますことを指示するような?)の ADC の認証情報を取得する模様。

参考:
gcloud CLI で提供されるユーザー認証情報

この認証情報はアプリケーションデフォルトクレデンシャルクライアントライブラリを利用するAPI呼び出し時に適用される(例えば Terraform)
このコマンドは、gcloud auth loginコマンドによって設定されたユーザーアカウントには影響しない

gcloud auth activate-service-account

サービスアカウントの認証情報でGCPへアクセスするようにgcloudを認証する。

gcloud auth activate-service-account <サービスアカウント> --key-file=<サービスアカウントキーのファイルパス>

gcloud auth print-access-token

指定したアカウントの OAuth 2.0 アクセストークンを出力する。
このアクセストークンでは、認証不可能なリソースもある( Cloud Run, Cloud Run functions )ことに注意。

gcloud auth print-access-token

--impersonate-service-account="<サービスアカウント>"
指定したサービスアカウント(へなりすまして)のアクセストークンを出力する。
なりすまし元に、なりすまし先のサービスアカウントに対する roles/iam.ServiceAccountAccessTokenCreator ロールが付与されている必要がある。

gcloud auth print-identity-token

指定したアカウントの OIDC ID トークンを出力する。
この ID トークンは、Cloud Run サービスで IAMによるアクセス制限をしている場合に必要になるものである。

gcloud auth print-identity-token

--impersonate-service-account="<サービスアカウント>"
指定したサービスアカウント(へなりすまして)の ID トークンを出力する。
なりすまし元に、なりすまし先のサービスアカウントに対する roles/iam.ServiceAccountOpenIDtokenCreator ロールが付与されている必要がある。
なお、roles/iam.ServiceAccountAccessTokenCreator ロールは上記ロールの権限を含むため、こちらでも可。

--audiences="<オーディエンス>"
OIDC ID トークン発行時に必要なオーディエンスをセット

gcloud spanner instances list

Spannerのインスタンスを一覧表示する。

gcloud spanner instances list

参考:
gcloud spanner instances list

gcloud spanner instances create

Spannerのインスタンスを生成する

gcloud spanner instances create <SpannerのインスタンスID>

必須オプション

  • --config: インスタンス内DBの地理的な配置とレプリケーション設定
  • --description: インスタンスの説明

任意オプション

  • --nodes: インスタンスのノード数。1ノード = 1,000PU

参考:
gcloud spanner instances create

gcloud spanner databases create

Spannerのインスタンス上にデータベースを作成する

gcloud spanner databases create <SpannerのデータベースID>

任意オプション

  • --instance: データベースを作成するインスタンスIDを指定する

参考:
gcloud spanner databases create

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?