Cloud Service
Azure Private Link
PaaS やパートナー提供のサービスへ、仮想ネットワーク内のプライベート IP を介して公衆インターネットを経由せず閉域で接続する仕組み。AWS の PrivateLink に相当。
- 1.PaaS やカスタムサービスへ VNet 内のプライベート IP で閉域接続。AWS の PrivateLink 相当。
- 2.プライベートエンドポイントとプライベートリンクサービスの2要素で構成する。
- 3.通信は Microsoft バックボーンを通り、公衆インターネットへ出ない。
解決する課題
- Storage や SQL Database などの PaaS は既定でパブリックエンドポイントを持つため、社内ポリシー上「インターネット経由のアクセスを完全に塞ぎたい」要件を満たしにくい
- VNet サービスエンドポイントだけでは、トラフィックが Microsoft バックボーンに乗っても宛先がパブリック IP のままで、オンプレミスや別 VNet からプライベート IP では到達できない
- ピアリングやオンプレミス(ExpressRoute / VPN)から、PaaS へプライベート IP で到達したい
- 自社や ISV が作ったサービスを、相手の VNet にネットワークを露出せずに提供・消費したい
主要概念と用語
- プライベートエンドポイント(Private Endpoint): 自分の VNet サブネット内に作られる**ネットワークインターフェイス(NIC)**で、サービスへの入口となるプライベート IP を持つ。消費者側の構成要素
- プライベートリンクサービス(Private Link Service): 自前のサービスを Private Link 経由で提供するための公開単位。Standard Load Balancer のフロントエンドに紐づけて公開する。提供者側の構成要素
- 接続承認(Connection Approval): 消費者が出した接続要求を提供者が承認/拒否する仕組み。自動承認と手動承認がある
- プライベートリンクリソース(Private Link Resource): 接続先となる PaaS と、その中のサブリソース(グループ ID)。たとえばストレージなら blob、file、queue といった単位
- NSG とプライベートエンドポイント: 同一サブネット内のプライベートエンドポイントに対してもネットワークセキュリティグループで制御できる
- DNS(プライベート DNS ゾーン): サービスの FQDN をパブリック IP ではなくプライベートエンドポイントの IP に解決させるための鍵。Private Link 運用で最もつまずきやすい要素
仕様・制限・クォータ
- プライベートエンドポイントはサブネット内のプライベート IP を1つ消費し、対象サービスのサブリソース単位で作成する(例: blob と file で別エンドポイント)
- 接続は消費者から提供者への一方向で確立する。プライベートエンドポイントから戻る通信のために、提供者側がコールバックする用途には向かない
- VNet ピアリング先、ExpressRoute / VPN 経由のオンプレミスからも、同じプライベート IPで到達できる
- プライベートエンドポイントにはサブスクリプション単位のクォータがあり、大規模利用では上限の確認・引き上げ申請が必要
- 名前解決を正しく構成しないと、FQDN がパブリック IP に解決されプライベート経路を通らないため、プライベート DNS ゾーンの整備が事実上必須
内部の仕組み
プライベートエンドポイントを作成すると、消費者 VNet のサブネットに NIC が生成され、サービスに対するプライベート IP が割り当てられます。クライアントがサービスの FQDN にアクセスすると、プライベート DNS によって名前がこのプライベート IP に解決され、トラフィックは VNet 内のアドレスへ向かいます。
- 経路は公衆インターネットに出ず、Microsoft グローバルバックボーンを通って対象サービスへ届く
- 提供者側では、サービスを Standard Load Balancer の背後に置き、プライベートリンクサービスとして公開する。消費者の接続要求に対し承認が成立すると経路が確立する
- データ平面は一方向に確立されるため、提供者側に消費者 VNet のアドレス空間が漏れず、アドレス重複があっても接続できる点が特徴
- 対象 PaaS 側では、パブリックアクセスを無効化してプライベートエンドポイント経由のみ許可する構成が推奨される
プライベートエンドポイントを作っても、クライアントが FQDN をパブリック IP に解決しているとプライベート経路を通りません。多くの PaaS は privatelink.<サービス固有> という形のゾーンを使うため、対応するプライベート DNS ゾーンを VNet にリンクし、A レコードがプライベート IP を指すことを確認してください。オンプレミスからの解決には DNS フォワーダ(条件付きフォワーディング)が要ります。
設計パターン / ベストプラクティス
- ハブ&スポーク: プライベート DNS ゾーンとリゾルバをハブに集約し、各スポーク VNet からハブ経由で名前解決する。ゾーンの重複管理を避けられる
- 対象 PaaS のパブリックアクセスを無効化し、プライベートエンドポイント経由のみに限定する(ファイアウォール設定と併用)
- サブリソース単位で必要な分だけエンドポイントを作る。過剰なエンドポイントは IP とコストを浪費する
- ISV や自社サービスを提供する場合はプライベートリンクサービスで公開し、手動承認で接続相手を明示的に管理する
- オンプレミスからの利用では、DNS の条件付きフォワーディングを設計初期に決めておく
運用・監視
- 接続状態の監視: プライベートエンドポイントの接続状態(承認済み/保留/拒否/切断)を定期的に確認する
- Azure Monitor / メトリクスでプライベートリンクサービス側のデータ処理量・帯域を可視化する
- NSG フローログや接続トラブル時の Connection Troubleshoot / Network Watcher で経路を検証する
- 名前解決の問題は、クライアントから FQDN を実際に名前解決してプライベート IP が返るかをまず確認する
- 提供者側は保留中の接続要求を放置せず、承認/拒否のワークフローを運用に組み込む
コスト
- 課金は主にプライベートエンドポイントの稼働時間と、エンドポイントを通過する**データ処理量(受信/送信の GB)**が中心
- サブリソースごとにエンドポイントを作ると、その分エンドポイント数に比例して基本コストが増える
- プライベートリンクサービス(提供者側)にも、処理データ量に応じた課金が発生する
- 設計上は、必要なサブリソースに絞ることと、ハブ集約で重複エンドポイントを避けることがコスト最適化につながる
コストを抑えつつ「Microsoft バックボーン経由」だけで十分なら、無償の VNet サービスエンドポイントでも要件を満たせる場合があります。ただし宛先はパブリック IP のままで、オンプレミスや別 VNet からプライベート IP では届きません。プライベート IP での閉域到達やオンプレ連携が要るなら Private Link を選びます。
セキュリティ
- トラフィックが公衆インターネットに出ないため、攻撃面を大きく削減できる
- 対象 PaaS のパブリックエンドポイントを無効化することで、インターネットからの直接アクセスを遮断できる
- プライベートエンドポイントにも NSG を適用でき、サブネット内でのアクセス制御が可能
- 接続承認により、提供者が接続相手を明示的に制御できる(特に手動承認)
- データは Microsoft バックボーン上を流れるが、アプリ層では引き続き TLS を用いた暗号化を維持すべき
プライベートエンドポイントを作っただけで満足し、対象 PaaS のパブリックアクセスを有効のままにしておくと、攻撃者はプライベート経路を迂回してパブリックエンドポイントを直撃できます。必ずパブリックアクセスを無効化し、プライベート経由のみ許可する構成にしてください。あわせて DNS がプライベート IP を返すことも確認します。
Well-Architected の観点
- セキュリティ: 公衆インターネットを経由しない閉域接続により、PaaS への到達経路を最小化できる。パブリックアクセス無効化と NSG、接続承認を組み合わせて多層防御を構成する
- 信頼性: バックボーン経由で経路が安定する一方、DNS の単一障害点化に注意し、リゾルバを冗長化する
- コスト最適化: エンドポイント数とデータ処理量が主コストのため、必要なサブリソースに絞り、ハブで重複を排除する
- 運用上の優秀性: プライベート DNS ゾーンとエンドポイントを IaC(Bicep / Terraform) でテンプレ化し、命名と承認フローを標準化する
試験で問われるポイント
- プライベートエンドポイント(消費者側) と プライベートリンクサービス(提供者側) の役割の違い
- サービスエンドポイントとの差: サービスエンドポイントは宛先がパブリック IP のまま、Private Link はVNet 内のプライベート IPで到達する
- Private Link が機能するにはプライベート DNS ゾーンによる名前解決が必要で、FQDN がプライベート IP に解決される必要がある
- オンプレミス(ExpressRoute / VPN)やピアリング先 VNet からも同じプライベート IPで到達できる
- プライベートリンクサービスは Standard Load Balancer のフロントエンドに紐づけて公開する
- 接続は消費者から提供者への一方向で、提供者は承認/拒否で接続相手を管理する
関連サービス・比較
| 観点 | Azure Private Link | AWS PrivateLink |
|---|---|---|
| 消費者側の入口 | プライベートエンドポイント(NIC) | インターフェイス型 VPC エンドポイント(ENI) |
| 提供者側の公開 | プライベートリンクサービス | エンドポイントサービス(NLB 背後) |
| 接続承認 | 自動/手動の承認フロー | 受け入れ要否を設定する承認フロー |
| 名前解決 | プライベート DNS ゾーン | プライベート DNS / Route 53 |
| 到達方式 | VNet 内プライベート IP で閉域到達 | VPC 内プライベート IP で閉域到達 |
| アドレス重複 | 提供者と消費者で許容 | 提供者と消費者で許容 |
- 関連する Azure サービスとして、無償で使える VNet サービスエンドポイント(宛先はパブリック IP のまま)、PaaS を VNet に直接組み込む VNet 統合 / サービス注入、名前解決を担う プライベート DNS ゾーンがある
- AWS では PrivateLink が同等概念で、インターフェイス型 VPC エンドポイントとエンドポイントサービスが、Azure のプライベートエンドポイントとプライベートリンクサービスにそれぞれ対応する
ハンズオン / CLI例
# リソースグループと VNet/サブネットを作成
az group create --name demo-rg --location japaneast
az network vnet create \
--resource-group demo-rg \
--name demo-vnet \
--address-prefixes 10.0.0.0/16 \
--subnet-name pe-subnet \
--subnet-prefixes 10.0.1.0/24
# 接続先のストレージアカウントを作成し、パブリックアクセスを無効化
az storage account create \
--resource-group demo-rg \
--name demostorageacct0614 \
--sku Standard_LRS \
--public-network-access Disabled
# blob サブリソースに対するプライベートエンドポイントを作成
az network private-endpoint create \
--resource-group demo-rg \
--name demo-pe \
--vnet-name demo-vnet \
--subnet pe-subnet \
--private-connection-resource-id $(az storage account show -g demo-rg -n demostorageacct0614 --query id -o tsv) \
--group-id blob \
--connection-name demo-pe-conn
# プライベート DNS ゾーンを作成し VNet にリンク
az network private-dns zone create \
--resource-group demo-rg \
--name privatelink.blob.core.windows.net
az network private-dns link vnet create \
--resource-group demo-rg \
--zone-name privatelink.blob.core.windows.net \
--name demo-dns-link \
--virtual-network demo-vnet \
--registration-enabled false
# プライベートエンドポイントの IP を DNS ゾーンに自動登録するゾーングループを作成
az network private-endpoint dns-zone-group create \
--resource-group demo-rg \
--endpoint-name demo-pe \
--name demo-zone-group \
--private-dns-zone privatelink.blob.core.windows.net \
--zone-name blob
Azure Service
Azure Private Linkを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ネットワーキング
比較で見る軸
クラウド: Azure / カテゴリ: ネットワーキング / 難易度: intermediate
導入後に効く点
プライベートエンドポイントとプライベートリンクサービスの2要素で構成する。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- ネットワーキング
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security
判断チェックリスト
- 自社の用途が「ネットワーキング / security」に近いか確認する。
- 強みである「PaaS やカスタムサービスへ VNet 内のプライベート IP で閉域接続。AWS の PrivateLink 相当。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。