このページの本文へ

ブラウザからRDP接続やSSH接続

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

2019年07月09日 17時30分更新

文● 櫻井正雄/FIXER 編集●羽野/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 Azure Bastionがプレビューとして公開されたので、動かしてみました。使ってみないとやっぱり新しいものはわからない。

Azure Bastionとは

 Azure Bastion(バスチャン)とは、ブラウザでAzure Portalから、仮想ネットワークのプライベートIPで仮想マシンにRDPやSSHでアクセスできるものです。仮想マシンにパブリックIPを設定する必要がありません。ソフトウェアとしてはApache Guacamoleが近いでしょうか。

この記事で確認したこと

  • Bastionの概要を把握する(リージョン・料金)
  • Bastionの設定方法
  • Bastionの利用方法(windows: password /Linux: ssh-key)
  • Network Security Groupによる接続制限をしてみる
  • 制限事項の確認・今後、どうなっていてほしいかの整理

ステータス、利用できるリージョン、料金

 Bastionの現在のステータスは「パブリックプレビュー」、利用できるリージョンは「West US / East US / South Central US / West Europe/West Europe / Australia East / Japan East」です。

 料金は1カ月あたり7917円(1時間あたり10.64円)、アウトバウンドのデータ転送に1GBあたり6.72円かかります。料金の詳細はこちら

評価構成

  • 同一仮想ネットワーク内に、bastionを設置するサブネット「AzureBastionSubnet」とターゲット仮想マシンを配置するサブネットを作成する
  • 仮想マシンは、Windows Server 2019 / Ubuntu を配置(id/passのログインとkeyによるログインを試したいため)
  • ネットワークセキュリティグループで接続制限を構成
評価構成

Bastionの構築1:プレビュー機能の導入

 Bastion はプレビュー機能なので、利用できるように設定する必要があります。以下のコマンドを実行します。


az feature register --name AllowBastionHost --namespace Microsoft.Network
az provider register --namespace Microsoft.Network

 Powershellの場合はこちらのサイトを参照。

Bastionの構築2:Azure Portalにログイン

 Bastionの専用プレビューポータルにログインする必要があります。ログインすると次のように、ヘッダーがオレンジ色になります。

Bastionの専用プレビューポータル

Bastionの構築3:ネットワークの構成

 仮想ネットワークを作成するときに注意が必要です。Bastion用のサブネット名は「AzureBastionSubnet」で固定、セグメントは「/27」以上である必要があります。今回は、以下の構成にしました。

  • 仮想ネットワーク: vNet-Secure 10.0.0.0/16
  • ターゲット仮想マシンの配置用サブネット: vm 10.0.1.0/24
  • Bastion 配置用サブネット: AzureBastionSubnet 10.0.2.0/27

Bastionの構築4:Bastionの構成

 専用ポータル上で、リソースグループ、インスタンスの名前・リージョン、仮想ネットワーク、サブネット、パブリックIPアドレスの項目を設定します。

Bastionの構成

 実際に構成したあとにできあがるのは仮想マシンスケールセットの仮想マシンが2台(こちらのインスタンスに対してログインや操作は禁止されているため見えるのはここまでになります)。

仮想マシンスケールセットの仮想マシンが2台できあがる

Bastion経由でのログイン1:Windows ServerにRDP接続する

  • VMのリソースにアクセスする
  • メニューのBastionを選択
  • Windows ServerのUsernameとPasswordを入力してログイン

 別ブラウザかタブで開くので、ブラウザのポップアップブロックに引っ掛かりました。RDPでもSSHでも共通に、動かないと思った時はポップアップブロックを疑ってください。

Bastion経由でWindows ServerにRDP接続

 以下がログインした状態です。ブラウザでそのままRDP接続ができます。

ブラウザでそのままRDP接続ができる

Bastion経由でのログイン2:UbuntuへキーペアーでSSHアクセスする

  • VMのリソースにアクセスする
  • ブレードのメニューのBastionを選択する -ログインは、パスワード、SSH Private Keyを書く、LocalFileの SSH Key ファイルを参照する(結局はブラウザ上に取り込まれます)
  • 注意:証明書のパスワードも入力できますが、シークレットになっていないため表示される
UbuntuへキーペアーでSSHアクセス

 以下がログインした状態です。ブラウザでSSH接続しています。

ブラウザでSSH接続

Network Security Groupによる接続制限

 Bastion はポータル経由でログインしますが、グローバルIPを持ちます。セキュリティを懸念される方は、Network Security Groupで、ポート443のインバウンド接続のみに制限することができます。

NSGと許可ルールの追加
サブネットとの紐づけ

 どこで何の通信が発生しているか未確認なので、実際に使う際はしっかり確認の上実施してください。こちらのサイトに情報がありますがややわかりにくいです。

現状の制限事項

 現状では、VNet単位で構成する必要があります。VNetPeeringをした、同一リージョンまたは他リージョンの別のVNet内にあるVMに接続しようとしましたが、Bastionの作成画面に遷移してできませんでした。1つのVNetに複数のBastionを作成することもできません。

 また、メトリックと診断設定が今はまだ使えません。いつ誰がどのVMへアクセスしたか、各VMで何をしたかの監査ログがとれるようになるといいですね。

まとめと感想

 Bastion経由でのRDP接続、SSH接続ともに動きは快適でした。しかしVNetごとに構成する必要があるのは面倒です。

 セキュリティの観点では、パブリックIPを持ちますが、Azure Portalのログインが前提になっているため、Azure ADやIntuneのセキュリティ機能がすべて利用できるし、VPNやExpress Routeなど通信経路を守る機能とは別の解決が図られているので、ちゃんと設定すれば安心して利用できるでしょう。

 実際にBastionで踏み台サーバーが無くせるか?というと、「もう少しでなくせる気がしてきた」というのが感想です。現状の踏み台サーバーにはツールを入れていたりするので、そういうものをどうするか、構成を考える必要がありそうです。

※本記事はFIXERのTech Blogからの転載です。