Azure BastionでS2S VPNを構成したAWS仮想マシンへリモート接続してみた

2022.06.11

いわさです。

先日、Azure BastionでIPベースでの接続が出来るようになりました。
従来はAzure BastionをAzure上のVMへ接続する際に利用出来たのですが、S2S VPNやExpressRouteで接続されたプライベートネットワーク環境へもIPアドレス指定でBastionを使ってリモートアクセス出来るようになりました。

これによって、オンプレミス上のサーバーやAzure以外のパブリッククラウド上の仮想マシンなど接続出来る範囲が広がりました。

Connect to a VM - specified private IP address: Azure portal - Azure Bastion | Microsoft Docs より

本日は、 Azure VNET と AWS VPC を S2S VPN で接続し、Azure BastionからAWS VPC上のWindows Serverへリモートデスクトップ接続をしてみました。

Azure と AWS で S2S VPN接続を行う

いつぞやのアップデートでAzure-AWS間をBGPでVPN接続することも出来るようになったのですがトンネルが多めに必要だったりちょっと面倒なので、今回は静的ルートで構成します。
構築の流れは以下を参考に行いました。

いくつか上記の手順に加えて今回のために行った内容を以下に記します。

Azure VNET作成時にBastionを構成

Azure仮想ネットワークゲートウェイのSKUはBasicを選択

元の記事ではVpnGw1で作成していますが、Basic SKUでも問題なく使えるか確認したかったので、Basicを選択しました。

Azure Bastion から接続

AWS上にプライベートな仮想マシンを構築し、リモートデスクトップ接続に必要な情報を取得しておきましょう。

では、ここからAzure Bastionで接続してみます。

まず、IPベース接続をBastionで利用するためには、BastionのTierがStandardである必要があります。
変更した上で、IP-based connectionを有効化します。

これまで、Bastionを利用する際は仮想マシンの接続メニューからBastionを選択していたと思いますが、IPベース接続を行う際はBastionのサービス画面から接続操作を行います。

接続出来ました。
ブラウザベースでAWSのプライベートサブネットの仮想マシンに接続することが出来ました。

A Bastion session should be initiated only from Azure Portal

最初接続したときセッションが安定せずに接続後すぐに切断される事象がおきました。

原因としては、IPベースで接続する前にBastionを使ってAzure仮想マシンへの接続テストを行っていたので、そのセッションが残ってしまっていたためのようです。
メッセージに従ってAzureポータルでログインし直したのですが、もうまく接続できるようにはなりませんでした。

シークレットブラウザでセッション作成から再実行するとうまくいったので、既存のクッキーなどの削除までしてやったほうが良さそうですね。

さいごに

本日はAzure BastionからS2S VPN接続で到達出来るAWS EC2へリモートデスクトップ接続をしてみました。
独自に踏み台を用意せずにプライベートサブネットのインスタンスにアクセス出来るのは良いですね。

他クラウドの場合は既になんらかのアクセス経路(AWSであればセッションマネージャーなど)を用意していることが多いと思うので、ハイブリッドクラウド構成でオンプレミスサーバーへリモートアクセスする際にかなり重宝しそうです。他のパブリッククラウドでもマネージド踏み台サービスほしいですね。