Microsoft Azureで仮想マシンを管理するには、RDP(Windowsの場合)またはSSH(Linuxの場合)による接続が必要です。
まれに、社内からはRDPもSSHも使えない会社があるようです。そういう会社でクラウドコンピューティングサービス、特にIaaSを勉強するののはほとんど無理だと思うのですが、皆さんどうなさっているのでしょう。
RDPやSSHが使えなくても、HTTPSは通す会社が多いようです。実は、HTTPSが使えれば多くの抜け道があるので何とかなります。RDPやSSHを禁止するのは「セキュリティ上の理由」と説明していただくことが多いのですが、HTTPSを通すのであれば、セキュリティ対策にはそれほど貢献していません。
もっとも、世の中にはアクセス先のIPリストを管理しているところもあるようで、それならセキュリティ上の意味はあります。もっとも、あまり厳しく制限すると今度はインターネットを使う意味がなくなると思いますが。
さて本題です。HTTPSを使ってAzureの仮想マシンにアクセスするのは以下の方法があります。他にも最低2つは思いついたので、皆さんも考えてみてください。
- ポイント対サイトVPN接続(P2S VPN)
- クラウドシェル上でのSSHコマンド
- 要塞ホスト(Bastion Host)
1. ポイント対サイトVPN
仮想ネットワークにVPNゲートウェイを立てて、SSTP接続を行います。SSTPはSSLベースのVPNであり、HTTPSを通すのであれば問題なくつながるはずです。
また、OpenVPNを使うこともできます。OpenVPNはポート番号を自由に設定できるので、HTTPSと同じポートを使ってファイアウォールの制限を回避できる可能性があります。
ポイント対サイトVPNの詳細は、教育コース「Microsoft AzureによるITインフラの拡張」で紹介しているほか、拙著「ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築第3版」でも解説しています。
基本的には管理者を想定しているため、クライアントPCの管理者権限が必要です。
なお、ゲートウェイを作成するには30分ほどかかります。
2. クラウドシェル
Azureの管理ポータルからLinux (Ubuntu) ベースのシェルを起動できます。このシェルからsshコマンドを使ってSSH接続を行います。ただしGUIは使えません。
その場で起動できるので便利ですが、RDPを使って接続することはできません。また、Windowsに接続したい場合は、Windows仮想マシン上でSSHサーバー(デーモン)を起動する必要があります。そのためには初期化時にPowerShellのコマンドを送る必要があり、少々面倒な作業が必要になります。
3. 要塞ホスト
最近正式公開(GA: Generally Available)になった方法で、単に「要塞」と呼ぶようです。英語ではBastion(バスチョン)です。
大ざっぱな手順は以下の通りです。
- 仮想マシンを作成
- 仮想マシンを配置した仮想ネットワークに、AzureBastionSubnetという名称のサブネットを作成(現在は、事前に作成しなくてもBastion作成時に追加可能)
- 要塞(bastion)を、AzureBastionSubnetサブネットを指定して新規作成
- 仮想マシンの[接続]から[要塞]を指定
要塞ができていない場合は、その場で作成することもできます。
ここでサブネットの作成もできるようになりました。サブネット名が指定されるのでクリップボードにコピーして貼り付けてください。
要塞の作成には数分かかります。 - 要塞ができている場合、[接続]からWebブラウザのウィンドウ内でRDPまたはSSH接続が可能になります。
要塞の料金は、東日本の場合で1時間あたり21.28円プラス帯域使用料です。D2v2仮想マシンより少し安い程度ですね。
ただし「割り当て解除」のような、課金を中断する仕組みはないようです。サブネット名が固定されているなど、どちらかというとVPNゲートウェイに似ています。
おまけ: バスチーユ
ちなみに、bastion(要塞)に対応するフランス語がbastille(バスチーユ)です。
フランス革命勃発の舞台となったバスチーユ牢獄はもともと要塞だったのでそのまま「バスチーユ」と呼ばれるようになったそうです。