Azure Bastionの概要、ホスト作成手順、VMへの接続からセッション確認方法まで
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の特徴
- 仮想マシンにパブリックIPを割り当てる必要がない
- 各仮想マシンでSSHまたはRDPのポートをインターネットに公開する必要がない
- 仮想マシンのNSGには、インターネットからのRDPやSSHを接続許可する受信セキュリティ規則は不要
- 仮想マシンへエージェントやクライアントソフトをインストールする必要がない
- Azure portalからブラウザ経由で仮想マシンへ接続できる
- 1つのAzure Bastionホストで、同一仮想ネットワーク内の仮想マシンからアクセスできる
- 仮想マシンごとに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はアップグレードできますが、ダウングレードはできません。
ニーズに合わせて適切なAzure Bastion SKU を選択する
Azure Bastionでは、Developer SKUのみ無料で利用できます。
Basic SKU以上では、時間単位の料金に加え、送信データ量に応じた料金が発生します。
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をデプロイすることもできます。
仮想マシンのNSGにインターネットからの受信セキュリティ規則は必要ない
仮想マシンに適用するNSGには、インターネットからのRDP(TCP 3389)またはSSH(TCP 22)接続を許可する受信セキュリティ規則は必要ありません。
ただし、仮想マシン側のNSGでは、AzureBastionSubnetのアドレス範囲から、RDP(TCP 3389)またはSSH(TCP 22)接続が許可されている必要があります。
既定の規則では、同一仮想ネットワーク内の接続は許可されているため、追加で設定は必要ありません。
また、AzureBastionSubnetにNSGを関連付けることもできます。
この場合は、Azure Bastionの動作に必要なインバウンドおよびアウトバウンドのセキュリティ規則をすべて設定する必要があります。
必要な規則している場合、仮想マシンへの接続ができないことがあります。
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で使用するサブネットを追加します。
サブネットの構成には注意点があるため、以下の要件を満たすように作成します。
-
- サブネット構成時の注意点
- サブネット名をAzureBastionSubnetとすること
- アドレス範囲を/26以上とすること(例: /26、/25、/24)
- 他のリソースを配置しないこと(Azure Bastion専用のサブネットであること)
- ルートテーブルおよびサブネット委任を設定しないこと
- サブネット構成時の注意点
事前に作成した仮想ネットワーク(vnet-01)に、Azure Bastion用のサブネットとして/26のサブネットを追加します。
なお、サブネットの目的にAzure Bastionを選択すると自動的に設定することもできます。
Azure Bastionのリソースを作成
Azure Bastionのリソースを作成します。
Bastionのリソースは様々なリソースのメニューから作成できます。
-
- Bastions
- 仮想ネットワーク
- 仮想マシン
詳細設定画面で選択できる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経由でLinuxの仮想マシンにSSH接続
Azure Bastion 経由で Linux OS の仮想マシンに接続する場合は、接続プロトコルとして SSH を選択します。
SSH 接続では、ユーザー名とパスワードによる認証に加えて、SSH 鍵ペアを使用した公開鍵認証を利用できます。
認証の種類は"VMパスワード"、"Key Vaultからのパスワード"、"ローカルファイルからのSSH秘密キー"、"Azure Key VaultからのSSH秘密キー"の4つから選択できます。
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秘密キーを選択します。 |
【Windows OSの場合】![]() |
【Linux OSの場合】![]() |
|
![]() |
|
Azure Bastion経由で仮想マシンに接続している状況はセッション情報として確認できる
Azure Bastion経由で仮想マシンに接続している情報は、Azure Bastionリソースのセッションで確認できます。
セッションID、接続開始時間、接続先の仮想マシン、認証に使用したユーザー名、ローカルIPアドレス、リソースIDなどを確認できます。
| セッション情報を確認 | |
| Azure 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ポートフォワーディングの設定方法については、こちらで紹介しています。


























