Azure Bastion は、Azure ポータルやネイティブ クライアント (Azure CLI) を介して Azure 仮想マシンに RDP/SSH 接続を行うことができる、 マネージド型セキュア リモート接続サービス (PaaS) です。
Azure Bastion を用いることで Azure 仮想マシンでパブリック IP を準備、および RDP/SSH 待受 TCP ポートを外部に公開することなく、リモート接続することが可能となります。
RDP/SSH 待受 TCP ポートが外部に公開されないといっても、顧客の要件としてデフォルトのポート (3389/22) から変更しなければならないといったこともあるかと思います。
これまでの Azure Bastion では、Azure 仮想マシンの RDP/SSH 待受 TCP ポートを変更することはできませんでしたが、Standard SKU であれば Azure 仮想マシンの RDP/SSH 待受 TCP ポートを変更した場合でも Azure Bastion を用いてリモート接続が行えるようになっています。
このブログ エントリでは、RDP/SSH 待受 TCP ポートを変更した Azure 仮想マシンに対する Azure Bastion を用いたリモート接続方法について、纏めてみました。
RDP/SSH 待受 TCP ポートを変更した Azure 仮想マシンに対する Azure Bastion を用いたリモート接続方法
検証した環境について
検証した環境の主な構成について、以下となります。
- Azure Bastion
- SKU : Standard
- Azure 仮想マシン (Windows、RDP 接続を確認)
- OS : Windows Server 2022 Azure Edition
- RDP 待受 TCP ポート : 3389 から 13389 に変更
- Azure 仮想マシン (Linux、SSH 接続を確認)
- OS : Ubuntu Server 20.04 LTS
- SSH 待受 TCP ポート : 22 から 1022 に変更
RDP 待受 TCP ポートの変更方法は以下を参照 (SSH 待受 TCP ポートの変更方法については、自分で調べてみてね (投げやり )。
Azure 仮想マシン (Windows、RDP 接続を確認)
Azure ポータルによるリモート接続
- Azure ポータルにログインします。
- 対象の Azure 仮想マシン (Windows) の管理ブレードの [概要] に移動し、[接続] – [Bastion] をクリックします。
- ポートを変更した RDP 待受 TCP ポートの値に変更、ユーザー名/パスワードなどリモート接続に必要な情報を入力し、接続をクリックします。
- リモート接続できることを確認します。
ネイティブ クライアントによるリモート接続
- Azure CLI が利用可能なコンソールを起動します。
- 以下のコマンドを実行し、Azure にログイン、対象のサブスクリプションを選択します。
az login az account list az account set --subscription "<サブスクリプション ID>"
- 以下のコマンドを入力、実行します。
bastionName="<Azure Bastion ホスト名>" rgName="<リソース グループ名>" vmResourceID="<リモート接続を行う Azure 仮想マシンのリソース>" az network bastion rdp --name $bastionName \ --resource-group $rgName \ --target-resource-id $vmResourceID \ --resource-port <変更した RDP 待受 TCP ポートの値> \ --disable-gateway
(–resource-port 引数を用いて、変更した RDP 待受 TCP ポートの値を設定、–disable-gateway 引数を用いて RD ゲートウェイを利用しないように設定します。)
なぜ –disable-gateway 引数を用いないといけないのか、の理由はわかりませんでした。
(恐らく RD ゲートウェイがデフォルトの 3389 に戻しているから失敗してる?) - リモート接続に必要な情報を入力し、RDP 接続を行います。
- リモート接続できることを確認します。
Azure 仮想マシン (Linux、SSH 接続を確認)
Azure ポータルによるリモート接続
- Azure ポータルにログインします。
- 対象の Azure 仮想マシン (Linux) の管理ブレードの [概要] に移動し、[接続] – [Bastion] をクリックします。
- ポートを変更した SSH 待受 TCP ポートの値に変更、ユーザー名/パスワードなどリモート接続に必要な情報を入力し、接続をクリックします。
- リモート接続できることを確認します。
ネイティブ クライアントによるリモート接続
- Azure CLI が利用可能なコンソールを起動します。
- 以下のコマンドを実行し、Azure にログイン、対象のサブスクリプションを選択します。
az login az account list az account set --subscription "<サブスクリプション ID>"
- 以下のコマンドを入力、実行します。
bastionName="<Azure Bastion ホスト名>" rgName="<リソース グループ名>" vmResourceID="<リモート接続を行う Azure 仮想マシンのリソース>" userName="<リモート接続するためのユーザー名>" az network bastion ssh --name $bastionName \ --resource-group $rgName \ --target-resource-id $vmResourceID \ --auth-type password \ --username $userName \ --resource-port <変更した SSH 待受 TCP ポートの値>
- リモート接続するためのユーザー名のパスワードを入力し、リモート接続できることを確認します。