はじめに
Azure Bastion 経由で VM に接続する際、「無操作で放置したら何分で切れるのか?」というご質問をいただくことがあります。
結論から言うと、Azure Bastion 自体にはアイドルタイムアウトの設定が存在せず、放置しても 1 時間以上接続が維持されました。一方、VM 側のローカルグループポリシーを設定すれば、指定した時間で確実にセッションを切断できます。
本記事では、実際に Bastion 経由で RDP 接続し、診断ログで Duration を計測した結果と、グループポリシーでタイムアウトを制御する手順を紹介します。
※ 記事作成の補助に GitHub Copilot を活用しています。
検証環境
| リソース | 値 |
|---|---|
| VM | Windows Server, Standard_D8s_v5 |
| Bastion SKU | Standard |
| リージョン | Southeast Asia |
| 診断ログ送信先 | Log Analytics ワークスペース |
検証 1:Bastion のデフォルト動作(何も設定せず放置)
手順
- Azure ポータルから Bastion 経由で VM に RDP 接続する
- 一切の操作を行わずアイドル状態で放置する
- セッションが切断されるのを待つ
診断ログの確認
Bastion リソースの診断設定を事前に有効化しておき、Log Analytics で以下の KQL を実行します。
MicrosoftAzureBastionAuditLogs
| where TimeGenerated > ago(24h)
| extend TimeJST = TimeGenerated + 9h
| project TimeJST, OperationName, Message, Duration, TargetVMIPAddress
| order by TimeJST desc
結果
| 項目 | 値 |
|---|---|
| Duration | 4,524,902 ms(約 75 分) |
| Message | Connection Failed |
Bastion 自体にはアイドルタイムアウト設定が存在しないため、75 分以上接続が維持されました。 タイムアウト値は保証されておらず、ブラウザや Azure ポータルの認証セッション状態によって変動する可能性があります。
補足: 診断ログのテーブル名は
MicrosoftAzureBastionAuditLogsです。MicrosoftBastionAuditLogsではないので注意してください。また、診断設定を有効化した直後はテーブルが存在しません。最初のセッションイベント発生後 10〜15 分で作成されます。
検証 2:ローカルグループポリシーで 15 分タイムアウトを設定
手順
-
Bastion 経由で VM に RDP 接続する
-
VM 内で
Win + R→gpedit.mscを実行する -
以下のパスに移動する
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits -
「Set time limit for active but idle Remote Desktop Services sessions」 をダブルクリックする
-
Enabled にし、プルダウンから 15 minutes を選択して OK をクリックする
-
現在のセッションを切断し、再度 Bastion 経由で RDP 接続する
-
一切の操作を行わず 15 分間放置する
結果
| 項目 | 値 |
|---|---|
| Duration | 1,103,317 ms(約 18 分) |
15 分経過すると、VM 上に以下の警告ダイアログが表示され、2 分後にセッションが自動切断されました。
Log Analytics の診断ログでも、DurationMin が 18.4 分で Connection Failed(切断)が記録されています。75.4 分のデフォルト時と比較すると、グループポリシーが効いていることが一目瞭然です。
ローカルグループポリシーの設定により、15 分のアイドルタイムアウトが適用されていることを確認できました。 設定値 15 分 + 警告表示 2 分 + 切断処理の遅延で、Duration は約 18 分となっています。
注意: 設定変更は現在のセッションには適用されません。一度切断して再接続する必要があります。VM の再起動は不要です。
まとめ
| シナリオ | アイドルタイムアウト | 制御方法 |
|---|---|---|
| Bastion デフォルト(何も設定なし) | 約 75 分(保証なし) | なし |
| ローカルグループポリシー設定後 | 約 18 分(設定値 15 分 + 切断処理の遅延) | VM 側の gpedit.msc |
- Azure Bastion にはアイドルタイムアウトの設定項目が存在しない。放置した場合のタイムアウト値は保証されていない
- 確実にタイムアウトを制御するには VM 側のローカルグループポリシーを使う。AD ドメイン環境であればドメイン GPO で一括配布も可能
- Bastion はあくまで「安全な接続経路」を提供するサービスであり、セッション管理は VM 側(OS レベル)で行う設計
参考リンク
- Azure Bastion 概要: https://learn.microsoft.com/ja-jp/azure/bastion/bastion-overview
- Azure Bastion FAQ: https://learn.microsoft.com/ja-jp/azure/bastion/bastion-faq
- Azure Bastion 構成設定: https://learn.microsoft.com/ja-jp/azure/bastion/configuration-settings
- Azure Bastion セッション監視: https://learn.microsoft.com/ja-jp/azure/bastion/session-monitoring



