目的
Google Cloudで稼働中のインスタンスへのリモートアクセス(SSH)を実施する
SSH先のインスタンスはパブリックIPアドレスがないため、IAP経由でリモートアクセスを実現する
構成
- ローカル端末:macOS Ventura 13.5 1台
- プラットフォーム:Google Cloud
- Compute Engine 1サービス(SSHアクセス先)
- IAP(Identity-Aware Proxy) 1サービス
作業の流れ(順不同)
作業1.IAPの設定と権限付与
作業2.IAM権限の付与
作業3.Firewallの設定
作業4.アクセス確認
IAPの設定と権限付与
APIを有効化するをクリック
参考:Google Cloud コンソールを使用した IAP の有効化
https://cloud.google.com/iap/docs/enabling-compute-howto?hl=ja#before_you_begin
有効化後の画面から管理画面に移動するため、IDENTITY-AWARE PROXYに移動をクリック
今回はリモートアクセスの制御にIAPを利用するため、SSHとTCPのリソースをクリック
IAPでリモートアクセスを許可したいインスタンスを選択し、
アクセス許可の詳細を選択するため、プリンシパルを追加をクリック
IAP経由でリモートアクセスを許可するアカウントを記載もしくは、
メンバー(allAuthenticatedUsers等)を選択する
ロールは、IAP-secured Tunnel Userを選択する
IAP-secured Tunnel User:IAP で保護された VM インスタンスへのアクセス権を付与します。
ロール詳細
参考:IAP で保護されたリソースへのアクセスの管理
https://cloud.google.com/iap/docs/managing-access?hl=ja#roles
IAM権限の付与
ComputeEngineへのアクセスを許可するアカウントを記載する
続けて、ComputeEngineへのアクセスを許可するため、Compute OS 管理者ログインロールを選択
roles/compute.admin
最後に、保存をクリック
ロールの詳細
参考:Compute Engine IAM のロールと権限
https://cloud.google.com/compute/docs/access/iam?hl=ja#before-you-begin
Firewallの設定
IAPからComputeEngineへの通信を許可する設定をする
現在、ファイアウォールは何も無しの状態のため、通信ができない状態
ファイアウォールルールを作成をクリック
名前:ファイアウォールルールの名前を定義
説明:任意
ログ:ログを取る場合は、オンにする
ネットワーク:環境に応じて指定
トラフィックの方向:IAPからVMへの通信を許可するため、上りを選択
一致した時のアクション:ソースアドレスがIAPだった場合許可とするため、許可を選択
ターゲット:IAPからのアクセス先を許可するターゲットを選択
ソースフィルタ:IAPのアドレスレンジを記載(固定値:35.235.240.0/20)
プロトコルとポート:許可するプロトコル、ポートを記載する。今回はSSH TCP/22を許可
IAPのネットワークアドレスはこちらに記載されているレンジを利用する
参考:ファイアウォール ルールを作成する
https://cloud.google.com/iap/docs/using-tcp-forwarding?hl=ja#create-firewall-rule
アクセス確認
gcloudにてSSHアクセスを実施する
参考:Identity-Aware Proxy を使用して Linux VM に接続する
https://cloud.google.com/compute/docs/connect/ssh-using-iap?hl=ja#connect_to_vms
user ~ % gcloud compute ssh iap-access-vm1 --tunnel-through-iap
WARNING: Python 3.5-3.7 will be deprecated on August 8th, 2023. Please use Python version 3.8 and up.
If you have a compatible Python interpreter installed, you can use it by setting
the CLOUDSDK_PYTHON environment variable to point to it.
To increase the performance of the tunnel, consider installing NumPy. For instructions,
please see https://cloud.google.com/iap/docs/using-tcp-forwarding#increasing_the_tcp_upload_bandwidth
Last login: Mon Aug 14 10:33:19 2023 from 35.235.240.1
[user@iap-access-vm1 ~]$ uname -a
Linux iap-access-vm1 3.10.0-1160.95.1.el7.x86_64 #1 SMP Mon Jul 24 13:59:37 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[user@iap-access-vm1 ~]$