はじめに
2019年6月にAzure Bastionが発表され、話題となりました。Azure Bastionが使えれば踏み台サーバを立てたりしなくてもよくなり、システムの重要なコンポーネントに注力できるようになるため、個人的にもかなり気になる新サービスでした。発表からしばらくたったこのタイミングですが実際に触ってみたので、感想などを共有いたします。
Azure Bastionとは
Azure Bastionは、Azureポータル画面からAzure上の各VMに直接アクセスする機能を提供するPaaSです。アクセスするVMにはパブリックIPアドレスの付与は不要です。
概要図は公式サイトにて公開されています。AzureポータルからはSSL通信でAzure Bastionにアクセスし、Azure Bastionから各VMへのアクセスはプライベートIPアドレスを介して行われます。
これまで踏み台サーバを利用する際には、外部からアクセスするためにパブリックIPアドレスを公開したり、あるいは拠点間でVPN接続を行ったりと、セキュリティ的に不安な部分があったり構築・管理が大変だったりといった問題がありました。Azure Bastionを利用することで、セキュリティの不安は軽減され、また(以降で紹介しますが)Bastion自体比較的簡単にデプロイできるため、これらの問題を解消することができます。
Azure Bastionのデプロイ
それではAzure Bastionをデプロイします。Azure Bastionの利用できるリージョンは限られてますので、そちらを確認してから検証環境を作成します。また、デプロイ自体はすでにいろんなところで実施されていますので、そちらも参考にしてみてください。
前準備
Azure Bastionをデプロイする前に、事前に検証環境を作成します。細かな手順は紹介しませんが、前述のような構成をするための最低限のリソースのみを作成しました。Azure Bastionを利用するには、専用のサブネットを用意する必要があるので、合わせてそれも作成します。
- 仮想ネットワーク
- 名前: AzureBastionVNet
- アドレス空間: 10.2.0.0/16
- 場所: 東日本
- サブネット(VM用)
- 名前: default
- アドレス範囲: 10.2.0.0/24
- サブネット(Bastion用)
- 名前: AzureBastionSubnet
- アドレス範囲: 10.2.1.0/24
- ネットワークセキュリティグループ
- 名前: AzureBastionVMNSG
- 場所: 東日本
- セキュリティ設定: デフォルトの設定
- VM
- 名前: TestAzureVM
- 場所: 東日本
- OS: Windows Server 2016 Datacenter
- サイズ: Standard B2s
Azure Bastionをデプロイする
ここからAzure Baztionをデプロイします。Azure BastionはまだPreview段階の機能なので、このままAzure Marketplaceで検索をしても見つかりません。
Azure Bastionを利用するには、こちらのページにアクセスし、以下の画像の赤枠部分をクリックします。
すると、Preview機能が有効となり、ポータル画面の枠がオレンジ色になります。
続いてAzure MarketplaceからAzure Bastionを検索します。
Bastionを選択し、「作成」をクリックします。
すると以下のような設定画面が出てきます。
ここからは以下のような設定を行います。
- リソースグループ
- 事前に作成した検証用のリソースグループを選択
- インスタンスの詳細
- 名前: AzureBastion
- 場所: Japan East
- 仮想ネットワーク
- 名前: AzureBationVNet
- サブネット: AzureBastionSubnet
- パブリックIPアドレス
- 新規作成
- 名前: AzureBastionVNet-ip
必要な情報を入力し、検証に成功したら、「作成」をクリックします。
しばらくするとデプロイが完了します。
VMにアクセス
それではAzure BastionからVMにアクセスします。 まずはポータル画面上でアクセス対象のVMを選択します。次に画面上の「Connect」を選択します。
すると「Bastion」という選択肢が確認できます。
VMのユーザー名、パスワードを入力し、「Connect」を選択します。
ポップアップがブロックされる場合は有効にします。
接続に成功すると、新しいブラウザウィンドウが表示され、VMにアクセスしたことが確認できます。
画面左の矢印をクリックすると、「Clipboard」という画面が表示されます。Clipboardを経由してVM間でのテキスト情報のコピー・ペーストが可能となるようです。
詳細は以下のリンク先をご覧ください。
Copy and paste to a virtual machine: Azure Bastion (Preview)
Azure Bastionをいろいろ触ってみる
ここからAzure Bastionでどんなことができるのか検証してみます。
パブリックIPアドレスを外しても接続できるか→できる
検証用のVMを作成した時点ではパブリックIPアドレスをつけたままだったので、こちらを外してみます。
パブリックIPアドレスを外した後も、Azure Bastionによってアクセスすることができました。
別のVNetから接続はできないか→できない
Azure Bastionのデプロイされた仮想ネットワーク以外のVMに対してアクセスできないか、別の仮想ネットワーク・VMを作成して試してみました。
Connectをクリックします。
ConnectからBastionの選択肢は表示されますが、「Use Bastion」というボタンが表示され、クリックするとAzure Bastionのデプロイ画面へと遷移します。
冒頭の概要図にある通り、Azure Bastionはデプロイされた仮想ネットワーク内のVMにしかアクセスできないようです。
ちなみに仮想ネットワーク間でピアリング接続されている場合はどうかやってみましたが、やはり接続はできませんでした。
複数ユーザで同時接続できるか→できない
踏み台サーバを利用してVMにアクセスするユーザは一人とは限りません。複数ユーザが同一のサーバにBastion経由でアクセスするとどうなるか、試してみました。
Azureポータル画面に別ユーザでログインし、上記同様の手順でVMにアクセスします。
すると、もともとアクセスしていたユーザの画面上では「Connection Error」が表示され、アクセスが切断されました。ページの再読み込みをしてもやはり同様の状態となりました。
まとめ
今回はAzure Bastionを触ってみました。まだPreview段階のため、現時点ではいろいろと制限があったり使いにくい部分もあります。特に複数ユーザでの同時ログインができないのは、実際の運用が始まるとかなり不便に感じる部分かと思いました。
ただ、「踏み台サーバを立てることなく、仮想マシンに安全に接続できる」というコンセプトはとても魅力的に感じます。今後の動向にも注目したいと思います。
参考文献
Create an Azure Bastion host (Preview)
Connect to a Windows virtual machine using Azure Bastion (Preview)