Azure Bastionを理解するための前提
Azure Bastionはmanaged PaaSとしてRDP/SSHをTLS経由で中継し、target VMへpublic IPやagentを要求しない。 Developer/Basic/Standard/Premiumの4 SKUがあり、Developerはshared infrastructure、Basic以上はdedicated deployment。
Standard/Premiumはnative client、IP-based connection、custom port等のadvanced featureを提供する。 Premiumはsession recordingとprivate-only deploymentを提供し、public IPなしのBastion構成が可能。
dedicated deploymentではAzureBastionSubnetが必要で、subnet size/NSG要件をservice documentationに合わせる。 Bastion到達性とVM OS firewall/RDP/SSH service正常性は別レイヤーとして切り分ける。
Control plane と data plane
仕組みと設計上の意味
Bastionはjump VMではないためOS patchingやSSH key保管用VMを運用する必要がない。
hub deploymentからpeered VNet VMへ接続できるが、peering/DNS/routing/securityの前提を確認する。
private-onlyはPremiumのsecurity optionであり、control access pathを別途確保する必要がある。
IP-based connectionはStandard以上で、forced-tunneling/ER default route等に制約があるため対象architectureで事前確認する。
Packet / decision path
source→destinationを1本のflowとして固定し、名前解決・routing・security・NAT/service processing・return pathを必要な範囲で順に確認する。
- client認証/RBACを確認。
- Bastion SKU/deploymentとsubnet/NSGを確認。
- Bastionからtarget private IPへのroute/securityを確認。
- target OSでRDP/SSH listenerとhost firewallを確認。
- browser/native client両方の要件差を確認。
設計判断
| 判断点 | 推奨 | 理由 |
|---|---|---|
| Prod SKU | Standard/Premiumを要件で選択 | native client/recording/private-only等の差 |
| Placement | shared hubも検討 | 複数spokeの管理入口を集約 |
| Target public IP | 原則不要 | attack surfaceを削減 |
| Private-only | Premium + 管理path設計 | public exposureをなくす代わりにoperator connectivityが必要 |
確認手順
Azure Portal
- Bastion → ConfigurationでSKU/scale/featuresを確認。
- AzureBastionSubnetのprefix/NSG/routeを確認。
- 対象VMのNetworkingでprivate IP/NSGを確認。
Evidence contract
az network bastion show -g <rg> -n <bastion> -o jsonc
az network bastion list -g <rg> -o tableGet-AzBastion -ResourceGroupName <rg> -Name <bastion>
Get-AzBastion -ResourceGroupName <rg>
障害切り分け
| 症状 | 疑う点 | 証拠 | 次の確認 |
|---|---|---|---|
| portal接続できない | RBAC/Bastion provisioning/subnet NSG | Bastion state + Activity Log | service側とtarget側を分離 |
| login画面まで行くが失敗 | OS credential/listener/firewall | target boot diagnostics/OS logs | VM側を確認 |
| peered VNetだけ失敗 | peering/route/NSG | effective route/security | hub-spoke path確認 |
| native clientだけ失敗 | SKU/feature flag/client command | Bastion config | Standard/Premium feature確認 |
変更・rollback
- SKU変更やsubnet変更前にactive sessionsと運用windowを確認。
- NSG変更はMicrosoft documented Bastion requirementsを保持。
- private-only化はoperator VPN/ER等のmanagement pathを先に検証。
- rollbackはBastion configだけでなくDNS/routing/NSG変更も含める。