🌉
グローバルIPなしのセキュアなリモート開発環境 w/ VSCode Remote SSH, GCP, IAP @Win
この記事の内容
- GCP(Google Cloud Platform)上の Compute Engine にグローバルIPを振らなくても、IAP(Identity Aware Proxy) を経由すれば、内部VPCに直接乗り込める
- その手順を sshクライアントの設定ファイルに書くと、openSSHなどでホスト名を指定するだけでIAP経由で接続できるようになる
- VS Code の Remote SSH を併用することで、VS Code でCompute Engine側の環境上での開発がはかどる
必要な予備知識
こちらをどうぞ
手順
GCEの「ssh接続」をドロップダウンすると「gcloudコマンドを表示」と出てくる。こいつに --tunnel-through-iap をつけると iap経由で接続できる。
つまり HTTPS経由で接続できる。なお、https_proxy環境変数に http://username:password@proxyhost:proxyport
を指定することで、認証つきProxyも通れる。
Windowsでこのコマンドを実行すると、Puttyが起動する。
この設定を ssh設定 (C:\Users\username\.ssh\config) に移植する:
ssh-config
Host ホスト名
HostName GCEのVM名または内部IPアドレス
User GCPアカウント名(最大32文字)
IdentityFile "C:\Users\username\.ssh\google_compute_engine.id_rsa
ProxyCommand "C:\Program Files\Google\google-cloud-sdk\bin\gcloud.cmd" beta compute start-iap-tunnel GCEのVM名 %p --listen-on-stdin --project=プロジェクトID --zone=ゾーン名 --verbosity=warning
VS Code の Remote SSH はこの ssh-config を見るので、接続するとGCE上のファイルを直接編集できるし、Ctrl
-@
でプロンプトを開けばGCE上のプロンプトが開く。
補足
GCP側のFWでIAPの通信を開けておく必要があります。こちらを参照:
関連記事
Discussion