Windows365はどのような技術を用いているのか

以前から噂されていたCloudOS、「Windows365」が発表された。ブラウザで操作可能なクラウド側のWindowsだ。


Windows365発表が、Windows11が発表されてから間もない時期だったことから考えると、WindowsのクライアントOSは「クラウドファースト」に移行するよ、純粋なクライアントOSとしてのWindowsは終わりにするよ、というメッセージのように思われる*1


まあそれはそれとして。実は2020年、MicrosoftクラウドであるAzureに、Windows365の伏線になるような機能が設けられていたのはあまり知られていない。その名もAzure Bastionという技術だ。もともとWindowsSeverのRD Gatewayという機能を使うか、Azure Virtual Desktop環境を構築すれば、Azure環境のWindows10をブラウザ経由で操作することはできたのだけれど、そのためだけにWindowsServerを構築しなきゃいけないという、お金も手間もかかりそうな手法であった。Azure Bastionは、おそらくWindowsServerから「RD Gateway」機能を抜き出して、単体の機能としただけのもの。もちろんAzureになじむようにいろいろ改良は加えただろうけれど。

Azure Bastionの機能はざっくり言えば、リモートデスクトッププロトコル(RDP)とHTTP over TLSというプロトコル(HTTPS)を相互置換してくれる機能だ。これはHTTPSという「プロキシを通過できるプロトコル」をRDPという「プロキシを通過できないプロトコル」に置き換えてくれる。大企業であればまず間違いなくプロキシを使用しているのでらクラウド側のOSを操作するためには、プロキシを使用しない別のセキュアな回線を用意しなければならない。しかしHTTPSでプロキシを通過した後、そのプロトコルをRDPに変換できるなら、プロキシの影響を受けずにクラウドのOSを操作できる。

プロキシを使用していない環境ならば、クラウドOSはRDPで操作したいけれど、そもそもRDPをインターネットにさらすのはセキュリティ上好ましくない。たとえばRDPに脆弱性が発見された場合、OSが完全に乗っ取られてしまうかもしれない。しかし、Azure Bastionを用意すれば、Azure BastionがRDPの脆弱性を攻撃してこない限り安全だ。Azure Bastion自体にSSH接続に関する脆弱性が見つかっても、Azure Bastionだけ修正すればよい*2

多分Windows365はAzure BastionとWindows11で完成を見たサービスだ。
※もしかするとAzure Virtual Desktopを簡単にしただけなのかもしれないけど。


Windows365が発表された翌日に、Azure Bastionを試してみたところ、Azure上のWindows10を簡単にブラウザで操作できた。さらに言えば、Windows365が必要としているAAD(Azure Active Directory)の所有要件を満たさなくてもよい。Azureを知らないと構築は少し難しいけれど*3、Windows365気分を味わうためにAzure Bastionを試してみてもよい。

尚、注意点がいくつかある。

  1. Azure上にWindowsを構築すると「英語版」が構築されるが、languageで検索して日本語機能をインストールすればよい。さらにkeyboardで検索して日本語キーボードにして、時刻を+9.00エリアに設定しておくとよいだろう。
  2. Azureはクラウドなので、世界中の誰もがきっとアクセスできる。Azure上の仮想マシンは「グローバルアドレスを持たせない」ほうがよい。また、グローバルネットワークに対して3389ポートをあけるという設定があるが、これはONしてはいけない。VNetという仮想ネットワーク内にサブネットを「インターネットから隔絶」した形で構築し、仮想マシンはそのサブネットに接続しておこう。
  3. Bastionには専用のサブネットが必要。WindowsはBastionからRDP接続できれば良いので、BastionとWindowsは同じVNet内に構築しよう。

*1:多分MSのCEOサティア・ナデラ氏は、次のWindowsクラウド上に存在すべきであることをWindows10リリース時点での目標としており、Windows10はユーザのPC上にあるべき「最後のWindowsです」と表現したのだろう。

*2:数万台~数億台のWindowsPCのRDP脆弱性をユーザに修正させるより、MS社が管理しているBastion機能を修正する方が早くて安全。

*3:それでもAzure Virtual Desktop環境を構築するよりは100倍楽な気がする