TECHSTEP

ITインフラ関連の記事を公開してます。

Azure Bastionを触ってみた

はじめに

2019年6月にAzure Bastionが発表され、話題となりました。Azure Bastionが使えれば踏み台サーバを立てたりしなくてもよくなり、システムの重要なコンポーネントに注力できるようになるため、個人的にもかなり気になる新サービスでした。発表からしばらくたったこのタイミングですが実際に触ってみたので、感想などを共有いたします。

Azure Bastionとは

Azure Bastionは、Azureポータル画面からAzure上の各VMに直接アクセスする機能を提供するPaaSです。アクセスするVMにはパブリックIPアドレスの付与は不要です。

概要図は公式サイトにて公開されています。AzureポータルからはSSL通信でAzure Bastionにアクセスし、Azure Bastionから各VMへのアクセスはプライベートIPアドレスを介して行われます。

Azure Bastion概要図

これまで踏み台サーバを利用する際には、外部からアクセスするためにパブリックIPアドレスを公開したり、あるいは拠点間でVPN接続を行ったりと、セキュリティ的に不安な部分があったり構築・管理が大変だったりといった問題がありました。Azure Bastionを利用することで、セキュリティの不安は軽減され、また(以降で紹介しますが)Bastion自体比較的簡単にデプロイできるため、これらの問題を解消することができます。

Azure Bastionのデプロイ

それではAzure Bastionをデプロイします。Azure Bastionの利用できるリージョンは限られてますので、そちらを確認してから検証環境を作成します。また、デプロイ自体はすでにいろんなところで実施されていますので、そちらも参考にしてみてください。

前準備

Azure Bastionをデプロイする前に、事前に検証環境を作成します。細かな手順は紹介しませんが、前述のような構成をするための最低限のリソースのみを作成しました。Azure Bastionを利用するには、専用のサブネットを用意する必要があるので、合わせてそれも作成します。

  • 仮想ネットワーク
  • サブネット(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で検索をしても見つかりません。

f:id:FY0323:20190714162315j:plain

Azure Bastionを利用するには、こちらのページにアクセスし、以下の画像の赤枠部分をクリックします。

f:id:FY0323:20190714162807j:plain

すると、Preview機能が有効となり、ポータル画面の枠がオレンジ色になります。

f:id:FY0323:20190714230433j:plain

続いてAzure MarketplaceからAzure Bastionを検索します。

f:id:FY0323:20190714230527j:plain

Bastionを選択し、「作成」をクリックします。

f:id:FY0323:20190715001856j:plain

すると以下のような設定画面が出てきます。

f:id:FY0323:20190715001633j:plain

ここからは以下のような設定を行います。

  • リソースグループ
    • 事前に作成した検証用のリソースグループを選択
  • インスタンスの詳細
    • 名前: AzureBastion
    • 場所: Japan East
  • 仮想ネットワーク
    • 名前: AzureBationVNet
    • サブネット: AzureBastionSubnet
  • パブリックIPアドレス
    • 新規作成
    • 名前: AzureBastionVNet-ip

必要な情報を入力し、検証に成功したら、「作成」をクリックします。

f:id:FY0323:20190715002107j:plain

しばらくするとデプロイが完了します。

VMにアクセス

それではAzure BastionからVMにアクセスします。 まずはポータル画面上でアクセス対象のVMを選択します。次に画面上の「Connect」を選択します。

f:id:FY0323:20190714230945j:plain

すると「Bastion」という選択肢が確認できます。

f:id:FY0323:20190714231130j:plain

VMのユーザー名、パスワードを入力し、「Connect」を選択します。

f:id:FY0323:20190714231524j:plain

ポップアップがブロックされる場合は有効にします。

f:id:FY0323:20190714231540j:plain

f:id:FY0323:20190714231556j:plain

接続に成功すると、新しいブラウザウィンドウが表示され、VMにアクセスしたことが確認できます。

f:id:FY0323:20190714231727j:plain

画面左の矢印をクリックすると、「Clipboard」という画面が表示されます。Clipboardを経由してVM間でのテキスト情報のコピー・ペーストが可能となるようです。

f:id:FY0323:20190714232042j:plain

f:id:FY0323:20190714232056j:plain

詳細は以下のリンク先をご覧ください。

Copy and paste to a virtual machine: Azure Bastion (Preview)

Azure Bastionをいろいろ触ってみる

ここからAzure Bastionでどんなことができるのか検証してみます。

パブリックIPアドレスを外しても接続できるか→できる

検証用のVMを作成した時点ではパブリックIPアドレスをつけたままだったので、こちらを外してみます。

f:id:FY0323:20190714232405j:plain

f:id:FY0323:20190715002512j:plain

パブリックIPアドレスを外した後も、Azure Bastionによってアクセスすることができました。

f:id:FY0323:20190714232459j:plain

別のVNetから接続はできないか→できない

Azure Bastionのデプロイされた仮想ネットワーク以外のVMに対してアクセスできないか、別の仮想ネットワーク・VMを作成して試してみました。

f:id:FY0323:20190714232836j:plain

Connectをクリックします。

f:id:FY0323:20190714232913j:plain

ConnectからBastionの選択肢は表示されますが、「Use Bastion」というボタンが表示され、クリックするとAzure Bastionのデプロイ画面へと遷移します。

f:id:FY0323:20190715003608j:plain

冒頭の概要図にある通り、Azure Bastionはデプロイされた仮想ネットワーク内のVMにしかアクセスできないようです。

ちなみに仮想ネットワーク間でピアリング接続されている場合はどうかやってみましたが、やはり接続はできませんでした。

f:id:FY0323:20190714235105j:plain

f:id:FY0323:20190715002745j:plain

f:id:FY0323:20190714235501j:plain

複数ユーザで同時接続できるか→できない

踏み台サーバを利用してVMにアクセスするユーザは一人とは限りません。複数ユーザが同一のサーバにBastion経由でアクセスするとどうなるか、試してみました。

Azureポータル画面に別ユーザでログインし、上記同様の手順でVMにアクセスします。

f:id:FY0323:20190714235807j:plain

f:id:FY0323:20190714235821j:plain

すると、もともとアクセスしていたユーザの画面上では「Connection Error」が表示され、アクセスが切断されました。ページの再読み込みをしてもやはり同様の状態となりました。

f:id:FY0323:20190715000201j:plain

まとめ

  • 今回はAzure Bastionを触ってみました。まだPreview段階のため、現時点ではいろいろと制限があったり使いにくい部分もあります。特に複数ユーザでの同時ログインができないのは、実際の運用が始まるとかなり不便に感じる部分かと思いました。

  • ただ、「踏み台サーバを立てることなく、仮想マシンに安全に接続できる」というコンセプトはとても魅力的に感じます。今後の動向にも注目したいと思います。

参考文献

Azure Bastion とは (プレビュー)

Create an Azure Bastion host (Preview)

Connect to a Windows virtual machine using Azure Bastion (Preview)

Microsoft Azure Bastion のプレビューを発表

Azure Bastion で踏み台を無くせるか?

Azure Bastion (Preview) を試してみる