Azure Bastionの概要、ホスト作成手順、VMへの接続からセッション確認方法まで

2019-11-09Azure,Bastion,Virtual Machines

Azure Bastionの概要、ホストの作成手順、Bastion経由で仮想マシン(Azure VM)へ接続する方法について紹介しています。
Azure PortalからAzure Bastionを経由して仮想マシンに接続する方法を確認しています。
また、Azure Key Vaultに保存されている仮想マシンのパスワードやSSH秘密キーを使用して接続する方法も確認します。

Azure Bastionを使用すると、仮想マシンや仮想マシンスケールセットのインスタンスにセキュアに接続することができます。
仮想マシンにパブリックIPアドレスを割り当てることなく、インターネット経由でAzure Bastionを介して仮想マシンに接続できます。
仮想マシンの認証方法を変更したり、追加でソフトウェアをインストールしたりすることなく、Azure PortalからRDPまたはSSHで接続できます。

※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンと表記します。
※本記事では、Network Security Groups(ネットワークセキュリティグループ)をNSGと表記します。

スポンサーリンク

Azure Bastionの概要

Azure Bastionとは

Azure Bastionは、Azure上の仮想マシンおよび仮想マシンスケールセットのインスタンスへのセキュアな接続を提供するフルマネージドPaaSです。
Azure PortalのブラウザからTLSを使用してRDPまたはSSHで接続できるため、接続用の専用クライアントソフトウェアをインストールする必要はありません。

Azure Bastion とは

    • 主なAzure Bastionの特徴
      • 仮想マシンにパブリックIPを割り当てる必要がない
      • 各仮想マシンでSSHまたはRDPのポートをインターネットに公開する必要がない
        • 仮想マシンのNSGには、インターネットからのRDPやSSHを接続許可する受信セキュリティ規則は不要
      • 仮想マシンへエージェントやクライアントソフトをインストールする必要がない
        • Azure portalからブラウザ経由で仮想マシンへ接続できる
      • 1つのAzure Bastionホストで、同一仮想ネットワーク内の仮想マシンからアクセスできる
        • 仮想マシンごとにAzure Bastionのリソースを作成する必要がない
      • ゼロデイ攻撃への対策など、インターネットから仮想マシンへのアクセスに関するセキュリティリスクが保護される

※Developer SKUの場合は、同一仮想ネットワーク内の仮想マシンに接続できますが、同時に接続できる仮想マシンは1台までとなります。
※仮想ネットワーク内で、Azure Bastionから仮想マシンへのRDPまたはSSH通信を許可する必要があります。
※Basic SKU以上では、仮想ネットワークピアリングを使用することで、1つのAzure Bastionを複数の仮想ネットワークで利用できます。

Azure BastionのSKUは4つでそれぞれで使える機能や価格が異なる

Azure BastionのSKUには、Developer、Basic、Standard、Premiumの4種類があります。
上位のSKUほど、利用できる機能が多くなります。

SKU

なお、SKUはアップグレードできますが、ダウングレードはできません。

 ニーズに合わせて適切なAzure Bastion SKU を選択する

Azure Bastionでは、Developer SKUのみ無料で利用できます。
Basic SKU以上では、時間単位の料金に加え、送信データ量に応じた料金が発生します。

 Azure Bastion の価格

Developer SKU は開発・テスト環境向けであり、機能や利用条件に制限があります。

    • 無料で利用できて、時間課金およびデータ転送料金は発生しない
    • 専用ホストではなくAzureの共有インフラストラクチャを使用する
    • 同時に接続できる仮想マシンは1台のみ
    • AzureBastionSubnet(専用サブネット)やBastion用のパブリックIPが不要
    • 仮想ネットワークピアリングは利用できない
    • ネイティブクライアント接続は利用できない

Basic SKU以上では、専用ホストにAzure Bastionがデプロイされ、AzureBastionSubnetとパブリックIPアドレスが必要となります。
また、利用できる機能はSKUによって異なり、ネイティブクライアント接続などは一部のSKUでのみ利用できます。

機能 Developer Basic Standard Premium
時間課金 無料 有料 有料 有料
AzureBastionSubnet必要 不要 必要 必要 必要
専用ホスト なし(共有) あり あり あり
仮想ネットワークピアリング
同時接続 1台のみ
ホストスケーリング ○(2~50) ○(2~50)
ネイティブクライアント接続
共有可能リンク
IPベース接続
カスタムポート
ファイル転送
セッション記録
プライベート限定デプロイ

Azure Bastion経由の仮想マシン接続方法には2つある

Azure Bastionを経由して仮想マシンに接続する方法には、主に次の2つがあります。

    • Azure Portal経由の接続
    • ネイティブクライアントによる接続

ネイティブクライアントによる接続は、Standard SKU以上で利用できます。

ネイティブ クライアント接続用に Bastion を構成する

ネイティブクライアントによる接続では、Azure CLIを使用してAzure Bastionへの接続を開始します。
ネイティブクライアントによる接続の場合は、ローカルPCのリモートデスクトップ接続やsshコマンドなどを使用して、Azure Bastion経由で仮想マシンに接続できます。

Azure Bastionは仮想ネットワーク単位で利用する

Basic SKU以上の場合は、Azure Bastionを仮想ネットワーク内の専用サブネット(AzureBastionSubnet)にデプロイして利用します。
Azure Bastionをデプロイした仮想ネットワーク内にある仮想マシンには、プライベート IP アドレスを使用してRDPおよびSSH接続できます。
また、仮想ネットワーク ピアリングを構成することで、1 つのAzure Bastionホストを利用して、ピアリング先の複数の仮想ネットワークにある仮想マシンにも接続できます。

※Developer SKUは仮想ネットワーク ピアリングをサポートしていません。

仮想マシンにパブリックIPを割り当てる必要がない

Azure Bastionを利用する場合、接続先の仮想マシンにパブリックIPアドレスを割り当てる必要はありません。
Azure Bastionは、仮想マシンのプライベートIPアドレスを使用して、RDPまたはSSHで接続します。

Azure Bastionに必要なパブリックIPアドレスは、SKUによって異なります。
Developer SKUでは共有リソースを使用するため、個別にAzure Bastion用のパブリックIPアドレスを用意する必要はありません。
Basic SKU以上では、Azure BastionにパブリックIPアドレスが必要になります。

なお、Premium SKU場合のみ、プライベートIPアドレスのみを使用するプライベート専用のAzure Bastionをデプロイすることもできます。

プライベート専用として Bastion をデプロイする

仮想マシンのNSGにインターネットからの受信セキュリティ規則は必要ない

仮想マシンに適用するNSGには、インターネットからのRDP(TCP 3389)またはSSH(TCP 22)接続を許可する受信セキュリティ規則は必要ありません。
ただし、仮想マシン側のNSGでは、AzureBastionSubnetのアドレス範囲から、RDP(TCP 3389)またはSSH(TCP 22)接続が許可されている必要があります。
既定の規則では、同一仮想ネットワーク内の接続は許可されているため、追加で設定は必要ありません。

また、AzureBastionSubnetにNSGを関連付けることもできます。
この場合は、Azure Bastionの動作に必要なインバウンドおよびアウトバウンドのセキュリティ規則をすべて設定する必要があります。
必要な規則している場合、仮想マシンへの接続ができないことがあります。

Azure Bastion の NSG 規則を構成する

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

Azure Portal経由で仮想マシンに接続する方法にはシリアルコンソール接続もあります。
シリアルコンソール接続を使った仮想マシンへの接続方法については、こちらで紹介しています。

Azure Bastion ホストの作成手順(Azure Bastionのリソース作成手順)

参考にしたチュートリアル

公式ドキュメントのチュートリアルを参考に、Azure Bastionのリソース作成手順を確認しています。
今回は、Standard SKUのAzure Bastionを構成しています。

クイック スタート: Azure portal から Azure Bastion をデプロイする

今回作成したAzure Bastionホストの設定値

作成したリソースの設定内容です。
SKUはStandard としています。
パブリックIPアドレスのリソースは、Azure Bastionの作成時に同時に作成しています。

区分 設定項目 設定値
Bastion 名前 bas-01
SKU Standard
インスタンス数 2
詳細設定
(Bastionの機能) 
すべて有効化
(セッションの記録除く)
パブリックIP 名前 pip-bus-01
SKU Standard
仮想ネットワーク 仮想ネットワーク名 vnet-01
サブネット名 AzureBastionSubnet
アドレス範囲 10.1.200.0/26

事前準備として仮想ネットワークにAzure Bastion用のサブネットを追加

Azure Bastionで使用するサブネットを追加します。
サブネットの構成には注意点があるため、以下の要件を満たすように作成します。

Azure Bastion の構成設定について

    • サブネット構成時の注意点
      • サブネット名をAzureBastionSubnetとすること
      • アドレス範囲を/26以上とすること(例: /26、/25、/24)
      • 他のリソースを配置しないこと(Azure Bastion専用のサブネットであること)
      • ルートテーブルおよびサブネット委任を設定しないこと

事前に作成した仮想ネットワーク(vnet-01)に、Azure Bastion用のサブネットとして/26のサブネットを追加します。
なお、サブネットの目的にAzure Bastionを選択すると自動的に設定することもできます。

Azure Bastion用サブネットの作成手順

仮想ネットワークの設定にあるサブネットを選択します。
サブネットを選択します。

仮想ネットワークにサブネットを追加(Azure Bastionのホスト作成手順)

サブネットの追加画面が表示されます。
サブネットの目的でAzure Bastionを選択します。
サブネット名、開始アドレス、サブネットサイズなどが自動的に設定されます。
必要に応じて、開始アドレスやサブネットサイズを変更します。
追加を選択します。

 

Azure Bastion用のサブネットを設定(Azure Bastionのホスト作成手順)
Azure Bastion用のサブネットを追加(Azure Bastionのホスト作成手順)

仮想ネットワークにAzure Bastion用のサブネットが追加されていることを確認できます。

作成されたAzure Bastion用のサブネット(Azure Bastionのホスト作成手順)

Azure Bastionのリソースを作成

Azure Bastionのリソースを作成します。
Bastionのリソースは様々なリソースのメニューから作成できます。

    • Bastions
    • 仮想ネットワーク
    • 仮想マシン
Azure Bastionのリソース作成手順

Bastionsのメニューで作成を選択します。
仮想ネットワークからAzure Bastionを作成する場合は、設定にあるBastionを選択します。
仮想マシンから作成する場合は、接続にあるBastionを選択します。

仮想ネットワークまたは仮想マシンから作成を開始した場合、初期設定ではDeveloper SKUの画面が表示されます。
Basic SKU以上のAzure Bastionを作成する場合は、専用デプロイオプションを選択して作成を進めます。

※対象の仮想ネットワークにAzure Bastionがすでにデプロイされている場合は、新規作成画面ではなく、Azure Bastionを使用して仮想マシンへ接続するための画面が表示されます。

【Bastion】
Bastionsから作成を開始(Azure Bastionのホスト作成手順)

【仮想ネットワーク】
仮想ネットワークのメニューからBastionホストの作成を開始(Azure Bastionのホスト作成手順)

専用デプロイオプションを表示(Azure Bastionのホスト作成手順)

【仮想マシン】
仮想マシンのメニューからBastionホストの作成を開始(Azure Bastionのホスト作成手順)

専用デプロイオプションを表示(Azure Bastionのホスト作成手順)

Bastionの作成画面が表示されます。
基本設定タブでは、Azure Bastionの名前、SKU、仮想ネットワークなどを指定します。

インスタンスの詳細で、名前やレベルを設定します。
レベルに設定するSKUは、Basic、Standard、Premiumから選択します。
仮想ネットワークの構成では、Azure Bastionを利用する仮想ネットワークを選択します。
サブネットには、AzureBastionSubnetという名前のサブネットのみ指定できます。

パブリックIPアドレスの設定では、Azure Bastionで使用するパブリックIPアドレスのリソースを指定します。
新規作成する場合、パブリックIPアドレス名は任意の名前に変更できます。

詳細設定を選択します。

Bastion作成画面の基本設定タブ(Azure Bastionのホスト作成手順)
Bastion作成画面で選択できるレベル(Azure Bastionのホスト作成手順)
Bastion作成画面の基本設定タブ(Azure Bastionのホスト作成手順)
詳細設定の画面が表示されます。
Azure Bastionで利用する機能を選択します。
選択できる機能は、レベルで指定したSKUによって異なります。
利用する機能にチェックを入れます。
今回は、Standard SKUで利用可能な機能をすべて有効にしています。
確認および作成を選択します。
【Basic SKUの場合】
Bastion詳細設定タブ(Basic SKUの場合)(Azure Bastionのホスト作成手順)
【Standard SKUの場合】
Bastion詳細設定タブ(Standard SKUの場合)(Azure Bastionのホスト作成手順)
【Premium SKUの場合】
Bastion詳細設定タブ(Premium SKUの場合)(Azure Bastionのホスト作成手順)
確認画面が表示されます。
設定内容を確認した後、確認および作成を選択します。
Bastionのリソース作成確認画面(Azure Bastionのホスト作成手順)
Bastionsに作成したAzure Bastionのリソースを確認できます。
リソースの構成を確認すると、詳細設定で選択した機能が有効化されていることも確認できます
Bastionのリソース一覧画面(Azure Bastionのホスト作成手順)
作成したBastionリソースの構成(Basic SKUの場合)(Azure Bastionのホスト作成手順)

詳細設定画面で選択できるBastionの各機能については、こちらの公式サイトに記述があります。

コピー/貼り付け : Bastion を使用して VM との間でコピーして貼り付ける
IP ベースの接続 : Azure Bastion IP ベースの接続について
Kerberos 認証 : Azure portal を使用して Kerberos 認証の Bastion を構成する
ネイティブ クライアント サポート : ネイティブ クライアント接続用に Bastion を構成する
共有可能なリンク : Bastion の共有可能リンクを作成する
セッションの記録 : Bastion セッション レコーディングを構成する

PowerShellやREST APIを使ったAzure Bastionホストの作成から削除までの手順は、こちらで紹介しています。

—広告—

Azure PortalからAzure Bastion経由で仮想マシンに接続する方法

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

Azure Bastion経由でWindowsの仮想マシンにRDP接続する方法を確認します。
仮想マシンの接続メニューにあるBastionから接続できます。
また、Azure Bastionのリソース画面から、接続先の仮想マシンのプライベートIPアドレスを指定して接続することもできます。

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

仮想マシンの接続にあるBastionを選択します。
Bastionのリソースから接続する場合は、設定にある接続を選択します。
またIPアドレスに、接続先の仮想マシンのプライベートIPアドレスを指定します。
ログインするユーザー名とパスワードを入力し接続を選択します。

※画面例ではキーボード言語は英語になっていますが、自身の環境に合わせて設定します。

【仮想マシンから接続する場合】
仮想マシンのメニューからBastion経由で接続(Azure Bastion経由での仮想マシン接続手順)
【Bastionから接続する場合】
Bastionのメニューから仮想マシンに接続(Azure Bastion経由での仮想マシン接続手順)
新しいブラウザタブが表示され、Windows OSのデスクトップが表示されています。

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

接続後のWindowsデスクトップ画面例(Azure Bastion経由での仮想マシン接続手順)

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

Azure Bastion 経由で Linux OS の仮想マシンに接続する場合は、接続プロトコルとして SSH を選択します。
SSH 接続では、ユーザー名とパスワードによる認証に加えて、SSH 鍵ペアを使用した公開鍵認証を利用できます。
認証の種類は"VMパスワード"、"Key Vaultからのパスワード"、"ローカルファイルからのSSH秘密キー"、"Azure Key VaultからのSSH秘密キー"の4つから選択できます。

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

仮想マシンの接続メニューにあるBastionを選択します。
プロトコルでSSHが選択されていることを確認します。

パスワード認証を使用する場合は、接続するユーザー名とパスワードを入力し、接続を選択します。
SSH秘密キーによる認証を使用する場合は、秘密キーファイルをアップロードして接続します。

接続が完了すると、ブラウザにLinux OSのコンソール画面が表示されます。

※SSH秘密キーにパスフレーズが設定されている場合は、パスフレーズも入力します。
※画面例ではキーボード言語が英語に設定されています。使用する環境に合わせて設定してください。

仮想マシンのメニューからBastion経由でSSH接続(Azure Bastion経由での仮想マシン接続手順)
Linux OSの場合に選択できる認証の種類(Azure Bastion経由での仮想マシン接続手順)

Last login: Wed Jul XX 22:44:18 2026 from 10.XXX.XXX.XXX
[ユーザ名@vm-02 ~]$

Microsoft Entra IDを利用した認証もサポートされている

Microsoft Entra IDを利用した認証もサポートされています。
Microsoft Entra IDを利用した認証は、Windows OSおよびLinux OSともに利用可能です。

Azure Bastion の Microsoft Entra ID 認証を構成する

※記事執筆時点では、RDP接続に対するMicrosoft Entra ID認証はパブリックプレビューとなっています。

認証に利用するパスワードやSSH秘密キーはKey Vaultのシークレットから取得できる

Azure Bastion 経由で Linux OS の仮想マシンに SSH 接続する際は、Azure Key Vault のシークレットに格納したパスワードまたは SSH 秘密鍵を認証情報として使用できます。
Windows OS の仮想マシンでは、認証の種類として"Azure Key Vaultからのパスワード"を選択できます。
Linux OS の仮想マシンでは、認証の種類として、"Azure Key Vaultからのパスワード"および"Azure Key Vault からの SSH 秘密キー"を選択できます。

なお、Azure Key Vaultのシークレットを利用するには、接続するユーザーに対して対象のシークレットにアクセスして読み取る権限が必要となります。

※なお、Basic SKU以上でのみ利用できます。

認証にAzure Key Vaultのシークレットを利用する

認証の種類で、Azure Key Vaultからのパスワード、またはAzure Key VaultからのSSH秘密キーを選択します。
Azure Key Vaultのリソースとシークレットを選択する項目が表示されるため、認証に使用するシークレットを指定します。

【Windows OSの場合】Windows OSの場合に選択できる認証の種類(Azure Bastion経由での仮想マシン接続手順)
【Linux OSの場合】Linux OSの場合に選択できる認証の種類(Azure Bastion経由での仮想マシン接続手順)
認証の種類でAzure Key Vaultを選択した場合(Azure Bastion経由での仮想マシン接続手順)

Azure Bastion経由で仮想マシンに接続している状況はセッション情報として確認できる

Azure Bastion経由で仮想マシンに接続している情報は、Azure Bastionリソースのセッションで確認できます。
セッションID、接続開始時間、接続先の仮想マシン、認証に使用したユーザー名、ローカルIPアドレス、リソースIDなどを確認できます。

セッション情報を確認
Azure Bastionの設定にあるセッションを選択すると、対象のAzure Bastionを経由して現在接続している仮想マシンの情報を確認できます。 Bastionで確認できるセッション情報(Azure Bastion経由での仮想マシン接続手順)

※Azure BastionリソースでIPアドレスを指定して接続した場合と、仮想マシンのメニューから接続した場合では、セッションに表示される情報が一部異なります。

—広告—

最後に

Azure Bastionの概要、リソースの作成手順、仮想マシンへの接続手順を確認しました。
仮想マシンにパブリックIPアドレスを割り当てたり、クライアントソフト入れることなく、セキュアにリモート接続できるのはとても便利かと思いました。
無料で利用できるDeveloper SKUも提供されているため、検証環境でも手軽に利用できます。

今回は実施していませんが、Microsoft Entra IDを使用した認証や、Premium SKUではセッションの録画なども可能です。

引き続き、色々試してみたいと思います。

仮想マシンでSSH鍵を利用する場合についてこちらの記事で紹介しています。
鍵の作成方法から仮想マシンの作成手順、接続方法まで記載しています。

NSGや仮想マシンへの接続については、こちらで紹介しています。

Azure Private Subnetの概要、作成、変更手順については、こちらで紹介しています。

Azure Load BalancerのインバウンドNAT規則を使ったポートフォワーディング設定方法については、こちらで紹介しています。

Tera TermのSSHポートフォワーディングの設定方法については、こちらで紹介しています。

スポンサーリンク