Azure Bastionホストの作成から仮想マシンへの接続まで試してみた
Azure BastionはAzure上に構築された仮想マシン(Azure VM)とのセキュアな接続を提供してくれるサービスになります。
Azure Bastionを使うと仮想マシンにパブリックIPを付与する事無くインターネットからアクセスする事ができます。
今回はAzure Bastionの概要纏め、リソース作成、Azure PortalのBastion経由での仮想マシンアクセスまで試してみました。
Azure Bastionの概要
Azure Bastionとは
Azure BastionはAzure上に構築された仮想マシン(Azure VM)や仮想マシンスケールセット(VMSS)とのセキュアな接続を提供してくれるサービスになります。
-
- 主なAzure Bastionの特徴
- 仮想マシンにパブリックIPを付与する必要がない
- 各仮想マシンでSSHやRDPのポートを外部(インターネット)に公開する必要がない
- NSGで接続許可する必要がありません
- 仮想ネットワーク内にBastionが1つ
- 仮想マシン単位にBastionは必要ない
- ゼロディ攻撃等のセキュリティをAzure側で守ってくれる
- 主なAzure Bastionの特徴
特徴の詳細は公式サイト記述を参照願います。
※仮想ネットワークピアリングを利用する事で1つのBastionを複数の仮想ネットワークで使う事も可能です。
Azure Bastionを使った仮想マシンへのアクセス方法は2種類
Azure Bastionを使ったアクセス方法は2種類あります。
-
- Azure Portalを使った接続
- ネイティブクライアントを使った接続
ネイティブクライアントを使った接続は公式サイトを参照願います。
Azure BastionのSKUにはStandardとBasicがある
Azure BastionのSKUにはStandardとBasicがあります。
BasicからStandardへのアップグレードは可能ですが、StandardからBasicへのダウングレードは出来ません。
今回はStandardで作成しています。
-
- Standardでしか出来ない事
- Standardではインスタンス(ホスト)のスケーリングが可能
- Basicではインスタンスが2固定
- ネイティブクライアントからの接続、ファイル転送が可能
- カスタム受信ポートが使用可能
- Standardではインスタンス(ホスト)のスケーリングが可能
- Standardでしか出来ない事
各SKUの詳細は公式サイトのガイドを参照ください。
価格は公式サイト価格表を参照ください。
Azure Bastionは仮想ネットワーク単位
Azure Bastionは仮想ネットワーク単位になります。
複数の仮想ネットワークに仮想マシンが分散している場合はその数分Bastionのリソースを作成する必要があります。
※VNETピアリングを利用する事で1つのBastionリソースで複数の仮想ネットワークで利用可能です。
仮想マシンにパブリックIPは必要ない
Azure Bastion自体はパブリックIPを使いますが仮想マシン自体にはパブリックIPは必要ありません。
Bastion使う場合は仮想マシン自体のパブリックIPは外しておく事が推奨されます。
ネットワークセキュリティグループでインターネットからのアクセス許可は必要はない
Azure Bastion経由での仮想マシンへの接続はローカルIPを使います。
仮想マシンのネットワークセキュリティグループでインターネットからのアクセスの許可設定をする必要ありません。
但し以下のようにBastionのサブネットにはネットワークセキュリティグループが必要になります。
※仮想マシンのOSではRDPやSSHを許可しておく必要があります。
Azure Portal経由で仮想マシンに接続する方法にはシリアルコンソール接続もある
Azure Portal経由で仮想マシンに接続する方法にはシリアルコンソール接続もあります。
シリアルコンソール接続はこちらを参照ください。
Azure Bastionのリソース作成
構築チュートリアル
今回はマイクロソフト公開のチュートリアルを元に進めていきます。
チュートリアル:Bastion を構成し、Windows VM に接続する
事前準備として必要になるもの
Azure Bastionを設定するにあたって必要なリソースがあります。
Bastionの設定画面で一緒に新規作成もできます。
-
- Azure Bastion専用のサブネット
- サブネットの名前がAzureBastionSubnetである必要があります
- /26以上で必要になります
- 他のリソースが含まれていてはいけません
- Bastionを使う仮想マシンがある仮想ネットワークに作る必要があります
- パブリックIP
- SKUはStandardである必要があります
- Azure Bastion専用のサブネット
今回はサブネットは事前に準備します。
パブリックIPはBastionのリソース作成時に一緒に作成します。
サブネットを構成する
Azure Bastionを使うサブネットを構成します。
サブネット構成時には注意点がありますので気を付けて作成します。
-
- サブネット構成時の注意点
- サブネットの名前がAzureBastionSubnetである事
- アドレス範囲が/26以上である事
- サブネット構成時の注意点
事前に作成しておいたTest-VNET-01にBastion用のサブネット(/24)を追加する形にしています。
自身の環境に合わせて適時読み替えて下さい。
サブネット作成 | |
仮想マシンのメニューから作成します。 |
![]() |
AzureBastionSubnetと言う名前でサブネットが作成されている事が確認できました。 | ![]() |
セットアップ
Azure BastionはBastionのメニューもしくは仮想マシンのメニューどちらからでも作成が可能です。
今回はBastionのメニューから作成しています。リソース名はTest-Bastion-01と言う名前で作成しています。
確認画面で内容を確認し問題が無ければ作成をクリックします。
これでBastionのリソース作成は完了です。
PowerShellやREST APIを使ったAzure Bastionホストの作成や削除はこちら。
Azure Bastion経由で仮想マシンに接続
仮想マシンに接続する
仮想マシンのメニューからBastionを使って接続してみます。
仮想マシン側いる仮想ネットワークにBastionをデプロイしておけば、仮想マシン側で特に設定する事はなく接続できました。
仮想マシンへ接続 | |
仮想マシンのメニューでBastionを選択します。仮想マシンのOSで設定しているユーザー名とパスワードを入力し接続をクリックします。 ※新しいウィンドウで開く場合は、ブラウザでポップアップを許可しておく必要があります。 |
![]() |
ブラウザ上の仮想マシンのデスクトップが表示されました。 | ![]() |
セッション情報を確認
Bastionのリソース内で実際に接続されているセッションを確認する事が出来ます。
セッション確認 | |
Bationのメニューでセッションを選択するとセッション情報が表示されます。 ユーザー(OSのユーザー)がどの仮想マシンへ接続しているかが分かります。 |
![]() |
使ってみた感想
Webベースでアクセスできることは非常に便利ですし、何よりもセキュリティ的なリスクが軽減される事は非常に良いかと思いました。
パブリックプレビュー中ではありますがネイティブクライアントからの接続やファイル転送が出来る点も実際の運用で使うには非常に良い進化かと思いました。
ネイティブクライアントからの接続など今後も色々試してみたいと思います。