Google Cloudの IAP Desktopをつかってみよう!
こんにちは、京セラコミュニケーションシステム櫻木 (@kccs_nobuaki-sakuragi)です。
今回は、製造業関連の伴走型Dx支援やLift&Shift案件(クラウド移行案件)をしている際によく質問される「Google Cloud内にあるWindows簡単に接続できないの?」に答える為、この記事を記載しました。今回はGoogle Cloud製のIAP DesktopクライアントソフトがGitHubで公開されていますのでそれを紹介します。
前回の記事でgcloudコマンドを活用し、Windowsリモートデスクトップに接続する方法を説明しました。このIAP Desktopクライアントを利用するともっと簡単にGoogle Cloud上のWindowsサーバへアクセスする事が可能になります。
Google CloudはCloud Identity-Aware Proxy使うことにより便利になったけど、「Windowsへアクセスするのはやっぱり大変」と思っていた方、この記事が参考になればWindowsサーバの活用も検討してみては如何でしょうか。
IAP Desktopを活用するとこんな感じでGoogle Cloudへのオペレーションが簡単にできます。
本記事の対象者
- Google CloudのCompute Engine(以降GCE)上にWindowsサーバーを起動させている方
- Google認証情報をつかってIAP経由でWindowsを利用したい方
- HTTPSの通信許可だけでWindowsのリモートデスクトップ(RDP)やLinuxへSSHリモートアクセス接続したい方
Google Cloud IAP Desktopとは?
IAP Desktopは、Google Cloudで実行されるVMインスタンスへ接続するためのWindowsアプリケーションです。
このソフトウェアを利用すると複数のWindowsリモートデスクトップとLinuxのSSH接続を操作・管理が可能です。
IAP DesktopはIdentity-Aware-ProxyTCPトンネリングを使用してVMインスタンスに接続できます。その為、セキュリティやアクセス制御はgcloudコマンドのCloud IAPの仕様と同じになります。
Google CloudのIAMで権限管理が一元化できる事もメリットです。
特徴
- パブリックインターネットのIPを公開していなくもSSHやRDPへ接続可能
- Identity-Aware ProxyのTCP転送トンネルはHTTPS経由で接続します。その為、接続元のネットワークはHTTPSの許可がされていれば利用可能です。
- Cloud IAMを使用して、VMへの接続許可を細かく制御できます。
- Google製のDesktopクライアント
利用環境
利用可能なOS
- Windowsクライアント
Windows 8、Windows Server 2012以降
IAP Desktopを使用する為には、併せて次のGoogle Cloudの設定も必要となります。
1.VPCへの通信許可設定
接続したいVMがあるVPCへIAP Desktopネットワークからの通信許可をしてください。
参考:Firewallルール登録コマンド
gcloud compute firewall-rules create allow-rdp-ingress-from-iap \
--direction=INGRESS \
--action=allow \
--rules=tcp:3389,tcp:22 \
--source-ranges=35.235.240.0/20
2.利用ユーザへのIAP(CloudI dentity-Aware Proxy)権限付与
プロジェクトのプロジェクトオーナーの場合は、IAPデスクトップを使用するため必要なすべての権限を持っています。
編集者より下の権限しか割り当て貰っていないユーザの方はProjectオーナ権限をもっている方へ次の2つの権限付与してもらうように依頼してください。
- Compute Viewer (VM インスタンスを一覧表示してアクセスするため)
- IAP で保護されたトンネル ユーザー(IAP TCP 転送を使用するため)
- [インスタンスアクセス権限]
アクセス権限は、それぞれのVMへのアクセスや起動・停止などを実施する場合は、それに応じた権限付与をする必要があります。
細かな制限をしない場合は[Compute インスタンス管理者(V1)]を設定しておくとVMへの操作とアクセスが可能となります。
詳細な設定方法は、Idnetity-Aware Proxyを活用しVPNフリーなメンテナンスをしよう!に記載していますので、参考にしてください。
最新のIAP Desktopの前提条件は、Google Cloud IPA DesktopのGitページをご確認ください。
Google Cloud IAP Desktopのインストール
IAP Desktopのインストール
1.最新のインストーラーをダウンロード
IapDesktop.msi をダウンロードします。
リリースノートが表示されます、大きなアップデートが今後あるそうです。
将来的には64Bitのみになるようです。
リリース情報には過去のアップデート情報も記載されています、最新版をつかってみて「あれ、前の機能と変更されている?」という場合は一度リリース情報を確認するのがよいと考えています。
IAPDesktop内の機能が別ツールに移行したなども記載もありました。チーム内で同じツールを使っていて何かメニューが違うなというときは要確認です。
2.インストールの開始
ダウンロードしたファイルをダブルクリックしてIapDesktop.msi、インストールを開始し、インストーラーを起動します。
3.ライセンスへの同意
Apache 2.0 ライセンスに同意する場合は、[インストール] をクリックします。
4.インストールの完了
インストールが完了したら、[完了] をクリックして IAPDesktopを起動します。
IAP Desktopの初期設定
IAP Desktopは初回起動時に環境設定が必要になります。
次の手順で設定します。
1.IAP Desktop起動と[サインイン]
ダイアログが表示されます、[サインイン]表記がでましたらサインインをクリックします。
2.サインイン
3.サインインユーザを利用したIAPDesktopへの権限付与
IAP Desktopへの権限付与設定をします。
[IAP Desktopが Google アカウントへのアクセスを求めています]画面で、チェックボックスを有効に設定します。
IAP デスクトップがGoogle Cloud データを表示、編集、構成、および削除できるようにします。
IAP Desktop では、Google Cloud プロジェクトにアクセスし、IAP TCP 転送を使用するために、このスコープが必要です。
チェックを入れない場合次の認証エラーの画面がでます。
もし、認証エラーになった場合は、一度IAP Desktopクライアントを再起動する事により再度設定可能です。
上記の「Google Cloudのデータ参照、編集、設定、削除、Googleアカウントのメールアドレスの参照」にチェックを入れ直し再設定してください。
4.サインイン完了
[続行]をクリックしてサインインを完了します。
完了すると画面上に次のメッセージが表示されます。
5.利用プロジェクトの登録設定
[プロジェクトの追加] ダイアログで、Google Cloud プロジェクトを選択し、[プロジェクトの追加] をクリックします。
プロジェクト エクスプローラーに、プロジェクトと、プロジェクトに含まれるすべてのVMインスタンスが表示されるようになりました。
プロジェクトエクスプローラー
必要に応じて、メニューで [ファイル] > [プロジェクトの追加] をクリックして、さらにプロジェクトを追加します。
IAP Desktop のインストールは完了です。
6.初期設定の完了
スタートメニューのIAP Desktopアイコンから起動する事ができます。
※IAP Desktopは、利用ユーザがProjectのオーナ権限がある場合は、接続可能ですが、編集者より下位の権限の場合はIAPのトンネルの許可を個別で付与する必要があります。
編集者権限より下位の権限の場合はこの記事を参考にしながら、Identity-Aware Proxyのへの接続権限を付与してください。
IAP Desktopを利用しWindowsサーバへリモートデスクトップ接続してみよう。
リモート デスクトップ (RDP) を使用してWindowsVMに接続するには、次の手順を実行します。
1.IAP Desktop画面の構成
画面左のProject Explorerツール ウィンドウにIAP Desktop内へ設定したプロジェクトとVMインスタンスが表示されます。
次の様な階層構造になっている為、プロジェクトとリージョンがわかりやすく配置されています。
Project名
└ リージョン-ゾーン
└ インスタンス名
2.WindowsOSの起動
Project Explolerツールからインスタンスの起動・停止などもする事が可能です。
まずは、Windowsサーバを起動してみます。
起動したいWindowsVMへ右クリックし、 [Control] を選択、[Start]を選択します。
Start VM instance と表示されます。
OSを起動して良いか確認がありますので、[はい(Y)]ボタンを教えてください。
ボタンを押すとOSが起動します。Linuxも同様のオペレーションでOSの起動が可能です。
3.WindowsVMユーザの作成
WindowsVM用のユーザとパスワードを新規に作成してみます。
Generate Windows logon Credentialsを選択します。
3−1.パスワードを更新するユーザもしくは、新規のユーザを入力し、[OK]ボタンを押します。
3-2.Windows logon credentialsを生成します。
生成が完了したら、Logon credentials画面が表示されます。
作成されたパスワードは、ここで取得できます。
クリップボードボタンを押しパスワードをコピーしメモ帳などに貼りつけ生成されたパスワードを確認し管理してください。
4.Windowsリモートデスクトップへ接続
簡単にGoogleCloud上のWindowsへアクセスできました!
5.Widnows OSを停止します。
Windowsの作業が完了しましたら、[Project Explorer]のWindowsインスタンスを右クリックし
[Control]から[Stop]を押しOSを停止します。
Stop VM instanceウィンドウが表示されたら、[はい(Y)]を押してOSを停止してください。
6.RDP接続設定のカスタマイズ
接続設定をカスタマイズするには、接続設定ツールウィンドウを使用できます。
プロジェクト エクスプローラーツール ウィンドウで、VMインスタンスを右クリックし、[接続設定]を選択します。
[接続設定]ウィンドウで、必要に応じて設定をカスタマイズします。
ユーザ名やパスワードを変更したい場合はこちらのプロパティで設定変更します。
注: デフォルト以外の設定を指定すると、文字が太字で表示されます。
IAP Desktopの画面からはWindowsクライアントかLinuxクライアントを判別するには、インスタンスを選択し、[右クリック]をし、[Properties]を選択します。
ネーミングルールでOSを判別しておくのが良いですが、できない場合はPropatiesの情報を見ながら、OSの種別する事も可能です。
Instance DetailsのLicensesに利用しているOSのバージョンが表示されます。
(おまけ)IAP Desktopを利用しLinuxサーバへリモートデスクトップ接続してみよう。
接続したいLinux VMインスタンスを選択し、右クリックします。
[Connect]を押し、VMインスタンスへ接続します。
Windowsとは異なり、Linuxは標準でGoogle CloudのGoogle IDとLinuxOSの権限が連携している為、1クリックでログインできます。
WindowsOSと同じく、[Controle]メニューで起動・停止などのオペレーションも可能です。
停止前にStopVM Windowsが表示され、間違って停止ししない作りになっています。
最後に
今回はGoogle Cloud のIAP Desktopの接続方法・使い方をまとめてみました。
比較的簡単に設定ができ、GCEへのアクセスが非常に便利です。
Linux接続時はオペレーションLogが記録できない為、OS側でscriptコマンドなどで、Logを保管するなどしながら使うといいかもしれません。
また、IAP Desktopを利用するとGCEへのアクセスがIAMで管理できる為、既存のセキュリティーポリシーへの影響も少なくオペレーションもしやすくなって非常に便利です。
Windowsを利用する場合はこのツールも積極的に活用していきたいと考えています。
本記事は2022年11月に作成しております。よって、引用している文章などはこの時点での最新となります。ご了承ください。