Google Cloud Platform (GCP) の VM インスタンスに、サービスアカウントで SSH 接続する方法です。
この記事で説明すること
- サービスアカウントに付与する権限 (ロール)
- gcloud CLI での SSH 接続方法
この記事で説明しないこと
- VM インスタンスの作り方
- サービスアカウントの作り方
- gcloud CLI のインストール方法
環境
- Windows 11 Home 23H2
- WSL2
権限付与
サービスアカウントに権限を付与します。
IAM の アクセス権を付与
を選択
新しいプリンシバル
に サービスアカウントのclient_email
を入力ロール
にサービスアカウントユーザー
を指定ロール
にCompute インスタンス管理者
を指定
ちなみに サービスアカウントユーザー
は Service Accounts -> サービス アカウント ユーザー
にある。
Compute インスタンス管理者
は Compute Engine -> Compute インスタンス管理者
にある。 v1
でも ベータ版
でもどちらでもよい。
gcloud で SSH 接続
gcloud に自分の GMail ではなく、サービスアカウントで承認します。
サービスアカウントの JSONファイルは、事前に作成&ダウンロードしておく。
1 | gcloud auth activate-service-account [ACCOUNT] --key-file=KEY_FILE |
https://cloud.google.com/sdk/gcloud/reference/auth/activate-service-account
実際はこんな感じになる。
次のコマンドで VM インスタンス に SSH 接続します。
1 | gcloud compute ssh INSTANCE [--zone=ZONE] [--project=PROJECT] |
https://cloud.google.com/sdk/gcloud/reference/compute/ssh
実際はこんな感じになる。
ちなみに VM インスタンス
ページの gcloud コマンドを表示
で、接続コマンドがコピーできる。
エラー対応
権限が正しく付与されていないと次のエラーが表示される。
1 | ERROR: (gcloud.compute.ssh) Could not fetch resource: |
1 | ERROR: (gcloud.compute.ssh) Could not add SSH key to instance metadata: |
参考
IAM basic and predefined roles reference | IAM Documentation | Google Cloud
gcloud CLI をインストールする | Google Cloud CLI のドキュメント
WSL2(ubuntu-22.04)にgcloud CLIをインストールする【2023年7月】