AzureでPaaS(StorageやSQLなど)に安全に接続する方法として、よく出てくるのが:
- Service Endpoint
- Private Link(Private Endpoint)
この2つは似ているようで、設計思想がまったく違うため、最初はかなり混乱します。
この記事では、初心者でも理解できるように整理します。
結論(まずここだけ)
Service Endpoint = アクセス制御(誰が入れるか)
Private Link = 接続経路を変える(どこから入るか)
Service Endpointとは
概要
Service Endpointは:
VNetからAzure PaaSへのアクセスを制限する仕組み
通信のイメージ
VM(VNet内)
↓
Azureバックボーン(※インターネット扱い)
↓
Azure Storage(パブリックエンドポイント)
ポイント
- 接続先はパブリックIPのまま
- 通信はAzure内部ネットワークを通る
- 「このVNetから来た通信」として識別される
制御単位
👉 サブネット単位
例:
Subnet-A → 許可
Subnet-B → 拒否
オンプレミスからの接続
Service Endpointは使えないため:
オンプレ → NAT(グローバルIP) → Azure Storage
👉 IPアドレスベースで許可する
Private Link(Private Endpoint)とは
概要
Private Linkは:
Azure PaaSをVNet内のプライベートIPで使う仕組み
通信のイメージ
VM
↓
Private Endpoint(10.x.x.x)
↓
Azure Storage
ポイント
- VNet内にプライベートIPが作られる
- インターネットを通らない
- 完全に内部通信
DNSの役割(重要)
通常:
storage.blob.core.windows.net → パブリックIP
Private Endpoint使用時:
storage.blob.core.windows.net → プライベートIP
👉 この変換をDNSで行う
Service Endpoint vs Private Link
| 項目 | Service Endpoint | Private Link |
|---|---|---|
| 接続先 | パブリックIP | プライベートIP |
| 通信経路 | Azureバックボーン | 完全プライベート |
| 本質 | アクセス制御 | 接続経路変更 |
| 対象 | Azure PaaSのみ | PaaS / SaaS / 自社サービス |
| DNS | 不要 | 必須 |
| セキュリティ | 中 | 高 |
接続単位(重要)
Service Endpoint
- サブネット単位で有効化
Private Endpoint
- サブネットに配置されるリソース
👉 どちらも実質「サブネット単位」で考える
なぜPrivate Linkは高コスト・複雑?
コスト理由
- Private Endpoint(リソース課金)
- データ転送課金
複雑な理由
① DNSが必要
FQDNをプライベートIPに変換する必要がある
② ネットワーク設計が必要
- サブネット設計
- NSG / ルーティング
③ オンプレ連携が難しい
- VPN / ExpressRoute
- DNS統合
利用シナリオ
Service Endpointが向いている
- 社内ツール
- 開発環境
- シンプル構成
- オンプレから簡単に接続したい
Private Linkが向いている
- 機密データ(金融・医療)
- インターネット遮断したい
- ゼロトラスト
- SaaS連携
設計判断のコツ
Q1. インターネットを通ってよいか?
- YES → Service Endpoint
- NO → Private Link
Q2. 完全に閉じたいか?
- YES → Private Link
Q3. 構成の複雑さを許容できるか?
- NO → Service Endpoint
本質まとめ
Service Endpoint = 外にあるサービスへのアクセス制限
Private Link = サービスの入口を内側に持ってくる
たとえで理解
Service Endpoint = 店にガードマンを置く
Private Link = 店の入口を建物の中に作る
最後に
最近の設計では:
- 簡易構成 → Service Endpoint
- 本番・高セキュリティ → Private Link
👉 迷ったらPrivate Linkが主流です