DNS & Private Access参照資料確認: 2026-09-11

Private Endpoint Security

Private Endpointのsecurityを、接続承認、public network access、DNS、NSG、UDR、service identityに分離し、private IP化だけを安全性と誤認しないための実務リファレンス。

Private Endpoint Securityを理解するための前提

Private Endpointの存在はserviceのpublic endpoint無効化を自動的に意味しない。対象serviceのpublic network access/firewall設定を別に確認する。 Private Endpoint connectionはApprovedでなければdata trafficを送れない。cross-owner構成ではapproval workflowそのものがsecurity boundary。

PE subnetではnetwork policiesが既定で無効。NSG/UDRをPEへ適用したい場合はsubnetのPrivate Endpoint network policyを明示的に有効化する。 network policyはNSGのみ、UDRのみ、両方を有効にできるAPI/PowerShell表現がある。Azure CLIの該当flagはtrue/falseでselective enableを表現しない点に注意する。

UDRでPEの/32 system routeを上書きしてinspectionへ送るには、PE subnet policyを有効化したうえで、VNet address spaceと同等以上にspecificなprefixが必要。0.0.0.0/0だけでは/32を上書きしない。 network isolationとapplication authorizationは補完関係。Private Linkを通ったrequestでも、managed identity/RBAC/key/token等のservice認証を維持する。

通信や判断の流れを追う
ClientDNS queryResolver / Private DNSPrivate endpointService

Control plane / DNS plane / Data plane

Exposure control

service public network access/firewall、Private Link approval。どの入口を許すか。

Network enforcement

DNSでPEへ誘導し、PE subnetのNSG/UDR policy、inspection path、return symmetryを制御。

Application/data authorization

service固有RBAC、identity、TLS、secret/key policy。private IPから来たことを認証の代替にしない。

判定順序まず client がどの resolver を使い何IPを得たか固定し、そのIPに対するroute/securityを確認します。DNSを確認せずroute tableだけを見る、またはprivate IPを得ただけでservice到達済みと判定するのは避けます。

Query / packet path

  1. resource ownerがpublic endpointの扱いとPrivate Link connection approval policyを決める。
  2. PEをsubnetへ作成し、必要ならsubnetのPrivate Endpoint network policiesをNSG/route table向けに有効化する。
  3. DNSがservice FQDNをPE private IPへ解決する。
  4. source subnet/NIC側policyとroute、PE subnet policy、必要なNVA/Firewall inspectionを順に評価する。
  5. Private Link mappingでserviceへ到達後、service firewall/public accessとidentity/data-plane authorizationを評価する。
  6. logはnetwork layerとservice layerをcorrelationし、private connectivity成功とauthorization failureを切り分ける。

仕組みを分解する

Private Endpoint trafficのinspectionで最も誤りやすいのはroute specificityです。PEはprivate endpoint routeとして/32が現れ、単純なdefault route 0.0.0.0/0はlongest-prefix matchで勝てません。Microsoft Learnは、network policiesを有効化したうえでVNet address spaceと同等以上にspecificなUDRを使う要件を示しています。設計図には「source→firewall→PE」と「PE→return」の両方向を描き、stateful deviceを跨ぐ非対称化を避けます。

設計判断

判断軸設計方針
Public surfacePrivate Endpoint導入後もpublic endpointが必要かをserviceごとに決める。不要ならpublic network accessをdenyし、例外は期限付きにする。
PE subnet policyNSG/UDRを適用する目的を明示。inspectionをしないのに複雑なUDRを追加してblast radiusを増やさない。
Approval governancemanual connection requestのrequester/resource ID/groupIdをreviewし、名前だけで承認しない。
LoggingNSG/Firewall/flow telemetry、PE connection state、service audit/auth logを同じincident timelineへ残す。

確認手順

Read-only verification

  • PE subnetのprivateEndpointNetworkPolicies設定を取得し、NSG/route tableが意図どおり対象になっているか確認する。
  • source NICのeffective routeでPE private IP宛のwinning routeを確認し、0/0を「PEもfirewall経由」と誤認しない。
  • NSG/Firewall logで新規flowが想定inspection pointを通過した証拠を取り、既存sessionを再利用しない。
  • service側public accessを外部/非許可networkからnegative testし、Private Link clientからはpositive testする。

Evidence to keep

  • resource ID / subscription / region / VNet / subnetを固定し、同名resource取り違えを防ぐ。
  • DNS queryはresolver IP、query name、answer/CNAME、TTL、timestampを一緒に保存する。
  • network testはsource、resolved destination IP、protocol/port、winning route/security decisionを保存する。
  • 変更前後で同じquery/application journeyを再実行し、cache/既存sessionでの見かけ上成功を避ける。
Azure CLI / client — read-only first
az network vnet subnet show -g <rg> --vnet-name <vnet> -n <pe-subnet> -o jsonc
az network private-endpoint show -g <rg> -n <private-endpoint> -o jsonc
az network private-endpoint ip-config list -g <rg> --endpoint-name <private-endpoint> -o table
az network nic show-effective-route-table -g <rg> -n <source-nic> -o table
az network nic list-effective-nsg -g <rg> -n <source-nic> -o jsonc
PowerShell — read-only first
$vnet = Get-AzVirtualNetwork -ResourceGroupName <rg> -Name <vnet>
$vnet.Subnets | Where-Object Name -eq '<pe-subnet>' | Format-List *
Get-AzPrivateEndpoint -ResourceGroupName <rg> -Name <private-endpoint>

障害切り分け

症状第一候補証拠次の確認
Firewallを通る想定なのに直行PE /32がUDRよりspecificeffective routenetwork policyとUDR prefixを見直す
NSG ruleを入れても効かないPE network policy無効subnet propertyNSG policyを有効化
Private Linkは通るがpublicも通るpublic access未disableservice network settingpublic access/firewallを別変更
PE接続が突然使えないconnection Rejected/DisconnectedPE connection state/service owner logapproval lifecycleを確認
inspection後だけsession不安定return path非対称両方向route/firewall sessionsymmetric routingへ修正

変更時の確認と rollback

  • policy有効化前にsubnet設定、route table、NSG、effective routeをexportする。
  • inspection追加は代表PE/代表sourceから段階導入し、全PE subnetへ一括適用しない。
  • public accessをdenyする変更はPrivate Link positive testを先に成立させ、rollback条件を明確にする。
  • rollback後もnegative/positive testを両方実施し、security controlが意図した元状態へ戻ったか確認する。

Current notes — 2026-09-11

Current behavior / guidance

現在のPrivate Endpoint network policyはNSGとroute tableの両方をサポートします。ただし既定無効であり、UDR overrideにはlongest-prefixの条件があります。古い「Private EndpointにはNSG/UDRが一切効かない」という知識で運用しないよう明記します。

Official sources