MS_AzureBastion - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- 戻る(OA-LANとAzureのVNETの分離、Azureの仮想ネットワーク)
- Azure Bastion
- Azure Virtual Desktop(AVD)
- RDP / SSH
インターネットからの接続のためのシン・クライアントの DaaS。
- マネージドな踏み台サーバー VM(PaaS サービス)
- ゼロトラスト・ゾーンからハイ・セキュアゾーンへ入る
(FgCF (Financial-grade Cloud Fundamentals))。
補足(何を解決するのか): RDPで述べたとおり、
インターネットに 3389 / 22 を開けてはならない。
Bastion はこの問題への Azure 純正の答えである。
従来の踏み台 VM Azure Bastion パブリック IP 踏み台に必要 どの VM にも不要 開けるポート 3389 / 22 無し(HTTPS 443 のみ) 運用 OS の更新・監視は自分 マネージド クライアント RDP / SSH クライアント ブラウザだけ(HTML5) 「踏み台サーバーそのものを自分で持たなくてよい」点が最大の価値になる。
- 利用中の仮想ネットワークにプロビジョニングされる。
- 対象の VM にはパブリック IP アドレスは不要。
- 21.28 / 時間(1.5万/月)に加え、通信費用が発生する。
- オンデマンドで作成することも出来る(スクリプトで、5 分)。
- 2025年2月の作業で、¥700/日位いったので、
あげっぱなすと月 2 万以上かかる。 - シャットダウン運用ならぬ「オンデマンド de 作成・削除 運用」が必要。
補足(この指摘は実務的に重要): Bastion は
VM のように「停止して課金を止める」ことができない。
存在するだけで時間課金される。
対処 内容 オンデマンド作成・削除 作成 5 分。使う日だけ立てる(本ページの推奨) Developer SKU 無償(2024年 GA)。ただし機能制限あり・共有インフラ 開発環境では使わない VPN / Just-In-Time VM アクセスで代替 Developer SKU は「VNet 内の VM に、
ポータルからブラウザで繋ぐだけ」という最小構成なら無償で使える。
検証環境ではまずこれを検討したい
(ネイティブ クライアント接続・スケーリング等は Basic 以上が要る)。
ポータルで、VM →[接続]→[Bastion]から作成可能。
Azure ポータルから踏み台サーバーに RDP / SSH 接続できる。
[クライアント] ──HTTPS 443──> [Azure ポータル / Bastion] ──RDP/SSH 3389,22──> [VM]
- RDP / SSH over SSL で、RDP / SSH は、HTTPS でカプセル化される。
- ポータルからクライアントレス(HTML5 で) の RDP または SSH 接続が可能
Windows (RDP) / Linux (SSH) の双方で利用可能。
ポータル経由で接続するので、Entra ID 認証が必要だが、
現時点で仮想マシンの Entra ID 認証・ログインは使用できず、
現状、OS ログインに別途クレデンシャルが必要。
移行メモ(最新化): 現在は Entra ID(旧 Azure AD)による
VM ログインがサポートされている(Windows / Linux とも)。
AADLoginForWindows/AADSSHLoginForLinux拡張機能を導入し、
RBAC ロール(Virtual Machine Administrator Login 等)を割り当てる。これにより、
- OS のローカル アカウントを作らなくてよい
- 条件付きアクセス・多要素認証が効く
- 退職者の無効化が Entra ID 側だけで済む
という運用になる。本ページ執筆時の制約は解消している。
クライアント リソースのリダイレクト
(リモートデスクトップサービスを参照)は
止められており、テキストだけ、クリップボード経由でコピペできるもよう。
補足(これが Bastion を選ぶ理由になる): リモートデスクトップサービスで
述べたとおり、ドライブ リダイレクトは情報漏洩の主経路である。
Bastion は既定でこれを塞いでいるため、
「データを持ち出させない」という要件に対して
設定漏れが起きないという利点がある。なお現在は、Basic/Standard SKU でファイル転送を有効化することもできる。
要件に応じて選ぶ。
- NSGを使用して、制限できる。
- 加えて、IP アドレス制限を行う場合、Entra ID による条件付きアクセス機能を構成する。
ポイント
- VNET と Azure Bastion ホストのリソース・グループは分割不可能。
- VNET は、VM と Azure Bastion ホストで、分けても良いが大掛かりになる。
- サブネッティングについては、Azureのサブネッティングを参照。
# リソース・グループ
az group create --name AzureBastionRG --location "Japan East"
# ネットワーク
az network vnet create --resource-group AzureBastionRG --name AzureBastionVnet \
--address-prefix 10.0.0.0/16 \
--subnet-name AzureBastionSubnet --subnet-prefix 10.0.0.0/24 \
--location "Japan East"
# パブリック IP アドレス
az network public-ip create --resource-group AzureBastionRG \
--name AzureBastionPubIP --sku Standard --location "Japan East"
# Azure Bastion 本体(5 分かかる)
az network bastion create --name MyAzBastion \
--public-ip-address AzureBastionPubIP \
--resource-group AzureBastionRG --vnet-name AzureBastionVnet \
--location "Japan East"補足(サブネット名は固定):
AzureBastionSubnetという
サブネット名は変更できない(Azure 側が固定で要求する)。
また/26以上(Standard 以上ではより大きく)が必要である。既存の VNet に後から追加する場合、
アドレス空間に余裕が無くて詰まることが多いため、
設計時に確保しておきたい。同種の固定名サブネットには
GatewaySubnet(Azureの仮想ネットワーク)もある。
事前に VNet や Subnet を作成しておく(同一アドレス空間内では
特別な設定をしなくてもサブネット間の通信が可能)。
az network vnet subnet create --resource-group AzureBastionRG \
--name ManagementTerminalSubnet --address-prefixes 10.0.1.0/24 \
--vnet-name AzureBastionVnet-
Azure Bastionの利用料金には注意しよう
https://zenn.dev/add9/scraps/7c8aea95443412 -
Azure Bastionの自動起動停止方法(作成削除をスケジュール実行)
https://www.tama-negi.com/2022/04/29/azure-bastion-start-stop/
-
Azure Bastion とは
https://learn.microsoft.com/azure/bastion/bastion-overview -
Azure Bastion の SKU
https://learn.microsoft.com/azure/bastion/configuration-settings
Tags: 移行, インフラストラクチャ, クラウド, Azure, セキュリティ