Azure Bastionホストの作成から仮想マシンへの接続まで試してみた

2019-11-09Azure,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 とは

    • 主な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固定
      • ネイティブクライアントからの接続、ファイル転送が可能
      • カスタム受信ポートが使用可能

各SKUの詳細は公式サイトのガイドを参照ください。
価格は公式サイト価格表を参照ください。

Azure Bastionは仮想ネットワーク単位

Azure Bastionは仮想ネットワーク単位になります。
複数の仮想ネットワークに仮想マシンが分散している場合はその数分Bastionのリソースを作成する必要があります。

仮想マシンにパブリックIPは必要ない

Azure Bastion自体はパブリックIPを使いますが仮想マシン自体にはパブリックIPは必要ありません。
Bastion使う場合は仮想マシン自体のパブリックIPは外しておく事が推奨されます。

ネットワークセキュリティグループでインターネットからのアクセス許可は必要はない

Azure Bastion経由での仮想マシンへの接続はローカルIPを使います。
仮想マシンやサブネットでグローバルIPからのアクセスの許可設定をする必要ありません。

※仮想マシンのOSではRDPやSSHを許可しておく必要があります。

Azure Portal経由で仮想マシンに接続する方法にはシリアルコンソール接続もある

Azure Portal経由で仮想マシンに接続する方法にはシリアルコンソール接続もあります。
シリアルコンソール接続はこちらを参照ください。

Azure Bastionのリソース作成

構築チュートリアル

今回はマイクロソフト公開のチュートリアルを元に進めていきます。

チュートリアル:Bastion を構成し、Windows VM に接続する

事前準備として必要になるもの

Azure Bastionを設定するにあたって必要なリソースがあります。
Bastionの設定画面で一緒に新規作成もできます。

    • Azure Bastion専用のサブネット
      • サブネットの名前がAzureBastionSubnetである必要があります
      • /26以上で必要になります
      • 他のリソースが含まれていてはいけません
      • Bastionを使う仮想マシンがある仮想ネットワークに作る必要があります
    • パブリックIP
      • SKUはStandardである必要があります

今回はサブネットは事前に準備します。
パブリックIPはBastionのリソース作成時に一緒に作成します。

サブネットを構成する

Azure Bastionを使うサブネットを構成します。
サブネット構成時には注意点がありますので気を付けて作成します。

    • サブネット構成時の注意点
      • サブネットの名前がAzureBastionSubnetである事
      • アドレス範囲が/26以上である事

事前に作成しておいたTest-VNET-01にBastion用のサブネット(/24)を追加する形にしています。
自身の環境に合わせて適時読み替えて下さい。

サブネット作成

仮想マシンのメニューから作成します。
サブネットを選択します。
サブネットの追加が表示されますので名前、サブネットのアドレス範囲を入力します。
保存をクリックすればサブネットの作成は完了です。

AzureBastionSubnetと言う名前でサブネットが作成されている事が確認できました。

セットアップ

Azure BastionはBastionのメニューもしくは仮想マシンのメニューどちらからでも作成が可能です。
今回はBastionのメニューから作成しています。リソース名はTest-Bastion-01と言う名前で作成しています。

Bastion作成
Bastionのメニューで作成を選択します。
Bastionの設定画面です。
インスタンスの詳細ではレベル等を指定します。
仮想ネットワークの構成でBastionを利用する仮想ネットワークを選択します。サブネットで指定出来るのはAzureBastionSubnetと言う名前のサブネットのみです。
パブリックアドレスはでBastionにアタッチするパブリックを指定します。パブリックIPアドレス名の名前を入力する事で任意の名前のパブリックIPを作成する事ができます。
タグの設定画面です。
任意で付与します。
詳細設定ではネイティブクライアントサポートのチェック選択できます。レベル(SKU)でStandardを指定した場合のみ利用できます。

確認画面で内容を確認し問題が無ければ作成をクリックします。
これでBastionのリソース作成は完了です。

PowerShellやREST APIを使ったAzure Bastionホストの作成や削除はこちら。

Azure Bastion経由で仮想マシンに接続

仮想マシンに接続する

仮想マシンのメニューからBastionを使って接続してみます。
仮想マシン側いる仮想ネットワークにBastionをデプロイしておけば、仮想マシン側で特に設定する事はなく接続できました。

仮想マシンへ接続

仮想マシンのメニューでBastionを選択します。仮想マシンのOSで設定しているユーザー名とパスワードを入力し接続をクリックします。

※新しいウィンドウで開く場合は、ブラウザでポップアップを許可しておく必要があります。

ブラウザ上の仮想マシンのデスクトップが表示されました。

セッション情報を確認

Bastionのリソース内で実際に接続されているセッションを確認する事が出来ます。

セッション確認
Bationのメニューでセッションを選択するとセッション情報が表示されます。
ユーザー(OSのユーザー)がどの仮想マシンへ接続しているかが分かります。

使ってみた感想

Webベースでアクセスできることは非常に便利ですし、何よりもセキュリティ的なリスクが軽減される事は非常に良いかと思いました。
パブリックプレビュー中ではありますがネイティブクライアントからの接続やファイル転送が出来る点も実際の運用で使うには非常に良い進化かと思いました。
ネイティブクライアントからの接続など今後も色々試してみたいと思います。