Azure Bastion Developerを試してみる

Azure Bation Developerがついに東日本リージョン、西日本リージョンで利用可能となったので試してみました。

https://azure.microsoft.com/ja-jp/updates/?id=489004

:::note alert
2025/5/2よりAzure Bastin Developerで障害が発生しており、2025/6/3時点では利用できません。問題は特定されており、各リージョンへ順次修正を適用していく予定となっています。修正が適用されたリージョンから順次復旧していくようですが、日本のリージョンが復旧する時期は不明です。完全復旧の予定は2025年10月となっています。

復旧したリージョンの情報は以下で公開されるようです。
https://learn.microsoft.com/en-us/azure/bastion/quickstart-developer
:::

# Azure Bastion Developerとは
Azure Bastionはインターネットに直接VMを公開せずにAzure Portal上からVMを操作できるようにするサービスです。これまでは一番安いSKUであるBasicを選択しても、月額$140ほどかかりました。しかし、Developer SKUだとなんと**無料**で使えます。

## Developerと他SKUの違い・制限事項
無料ゆえに機能は最低限に絞られています。また、構成も異なります。

### 共有である・AzureBastionSubnetが不要
他のSKUの場合、自分の仮想ネットワーク内にAzureBastionSubnetを用意してそこにBastionをデプロイします。一方でDeveloperの場合はBastionが共有利用となっています。そのたえ、仮想ネットワークにAzureBastionSubnetを用意する必要がありません。専用サブネットを用意しなくて良いので気軽に利用できます。

参考：[About Bastion Developer](https://learn.microsoft.com/en-us/azure/bastion/quickstart-developer#developer)

### ピアリングには非対応
Developerはピアリングに非対応です。そのため、ピアリングされた仮想ネットワーク上のVMは操作することができません。操作したい場合は、Bastionが関連付けられた仮想ネットワーク上のVMにログインし、そこから別VMへRDP/SSHして操作することになります。

### 同時接続数は1
DeveloperのBastionでは同時接続数が1に制限されているので、Bastion経由で複数の仮想マシンを同時に操作することができません。これが一番厳しい制約ではないでしょうか。同時に複数VM操作したい場合は、どれか1台にログインし、そこから別VMへRDP/SSHして操作することになります。

### その他のSKUごとの違い
詳細は以下をご参照ください。

https://learn.microsoft.com/ja-jp/azure/bastion/bastion-overview#sku


## 通信要件
アーキテクチャがDeveloperとそれ以外のSKUで異なるため、通信要件も異なっています。
通信要件がまとまった公式ドキュメントが見当たらないのですが、[こちらのブログ](https://blog.aimless.jp/archives/2024/04/bastion-develper-network-requirement/)で詳細な情報をまとめてくれています。

ポイントは以下です。
* 操作端末からアクセスが必要なのは「omnibrain.\<region\>.bastionglobal.azure.com」と「cdn.bastionglobal.azure.com」
→ ファイアウォールやプロキシ等で考慮が必要
* 168.63.129.16からのRDP/SSHを許可する
→ 168.63.129.16 = サービスタグ「AzureLoadBalancer」なので、NSGでデフォルトルールを打ち消すようなルールを設定していなければ追加の許可設定は不要


# 実際に試してみた

テスト用の仮想ネットワークとVMは事前に用意された状態からBastion Developerをデプロイし、BastionでVMを操作してみます。

Bastionsの画面に遷移し、[+作成]をクリック、作成ウィザードに移動します。

Developer SKUを選択すると、設定値はサブスクリプション/リソースグループ、名前、リージョン、関連付ける仮想ネットワークのみとなります。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/d2b48761-9193-4fd2-8fe4-553dd9852d1c.png)

Bastionの機能はグレーアウトしていて変更できません。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/fff621c4-1169-4299-a0a3-4da5db6bf192.png)

あとはタグの設定を確認し、デプロイします。
設定値はほとんどなくシンプルです。共有利用型であるため、デプロイも一瞬で終わります。

デプロイされたBastionの概要画面です。
デプロイ後に追加で設定できるのはネットワーク（接続元の制限）と診断設定くらいですね。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/8d066e48-ada9-4515-9159-ebfdd6822579.png)

それではVMに接続してみます。VMの管理画面から接続します。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/3041a644-d6f4-4693-9803-a046388411f6.png)

クリップボードへのアクセス許可が出てくるので許可します。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/22cd2538-ebb1-4969-8d3d-e9a0c0d5a53f.png)

VMへ接続できました。下側に同時に1接続しかできない旨の警告が出たままになっています。これは仕方ないですね。
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/a54f6013-449f-4aeb-b5b9-142236a0b157.png)

試しにこのVMに接続したまま、別タブで別VMへ接続してみました。すると最初に接続していたVMは強制切断されました。仕様通りです。
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850747/bab95872-e12d-49ac-a267-42815d2b02f1.png)

なお、BastionでWindows Serverへ接続し、そこから別VMへRDPをしてみましたが、操作感は問題ありませんでした。日本語入力の操作感はよくないと思いましたが、これはDeveloperだから、というわけではなく、Bastionの制約ですね。

# まとめ
無料で使えるBastion、いいですね。セットアップも簡単でした。
制約事項を理解したうえで積極的に活用していくのが良いと感じました。ぜひ、皆さんも使ってみてください。