MENU

Azure Private Link入門|プライベートエンドポイントでPaaSサービスへの通信をVNet内に閉じる実践ガイド

Azure Private Linkを設定しようとしたとき、「Private EndpointとService Endpointの違いがよくわからない」「DNS設定を間違えてPaaSサービスに繋がらない」と詰まった経験のある方は多いはずです。オンプレではファイアウォールとDMZで通信を制御するのが当たり前でしたが、AzureのストレージやKey VaultへのアクセスはデフォルトでパブリックIPを経由します。これを「VNet内だけに閉じる」のがAzure Private Linkの役割です。

この記事では、Azure Private Linkとプライベートエンドポイントの仕組みをオンプレのネットワーク設計と比べながら解説します。設定手順・DNS・料金・よくあるトラブルまで現場で使える情報をまとめました。

目次

なぜAzure Private Linkが必要なのか?

AzureのPaaSサービス(Storage Account、Azure SQL Database、Key Vaultなど)は、デフォルトでパブリックIPアドレスが割り当てられています。VNet内のVMからアクセスする場合でも、通信は一度インターネット側に出てからMicrosoftのネットワークを経由して戻ってきます。

オンプレの感覚だと「内部サーバーから外部サービスへの通信がインターネットを経由する」というのは、セキュリティ的にかなり気持ち悪い設計です。Azure Private Linkを使うと、PaaSサービスへの通信がMicrosoftのバックボーンネットワーク内に完結し、インターネットに一切出なくなります。

オンプレに例えるなら、「外部のSaaSサービスを専用線(MPLS/SD-WAN)で繋いで、インターネットバックボーンを使わずにアクセスできるようにした」状態に近いイメージです。

Service EndpointとPrivate Endpointの違い

ここが一番混乱しやすいポイントです。どちらも「VNetとPaaSをセキュアに繋ぐ」ために使いますが、根本的な仕組みが違います。

比較項目 Service Endpoint Private Endpoint(Private Link)
PaaSのIPアドレス パブリックIPのまま VNet内のプライベートIPに変わる
通信経路 Microsoftバックボーン経由(インターネット不使用) VNet内で完結(プライベートIPで直接通信)
オンプレからのアクセス ExpressRoute/VPN越しには使えない ExpressRoute/VPN越しでも到達可
DNS設定 不要 Private DNS Zoneの設定が必須
料金 無料 有料(後述)

Service Endpointは「パブリックIPを使いながらも、通信経路をMicrosoftバックボーン内に限定する」ものです。PaaSサービスのIPはあくまでパブリックIPのままなので、オンプレからExpressRouteや拠点間VPNで接続している環境では利用できません。

一方、Private Endpointは「VNet内のプライベートIPアドレスとしてPaaSサービスを見せる」ものです。オンプレからExpressRoute/VPN経由で繋がった環境でも、プライベートIPでAzure Storage等にアクセスできます。セキュリティ要件が厳しい本番環境では、Private Endpointが実質的なスタンダードになっています。

Azure Private Linkの基本設定手順

ここではStorage Account(Blobストレージ)へのPrivate Endpoint設定を例に手順を説明します。

1. Storage AccountのパブリックアクセスをOFFにする

Private Endpointを設定する前に、まずストレージアカウントのパブリックネットワークアクセスを無効化します。

# Azure CLI: ストレージアカウントのパブリックアクセスを無効化 az storage account update \ --name <ストレージアカウント名> \ --resource-group <リソースグループ名> \ --public-network-access Disabled

Azureポータルから行う場合は、ストレージアカウント → [ネットワーク] → [パブリックネットワークアクセス] を「無効」に変更します。

2. Private Endpointを作成する

# Azure CLI: Private Endpointを作成する az network private-endpoint create \ --name myStoragePrivateEndpoint \ --resource-group <リソースグループ名> \ --vnet-name <VNet名> \ --subnet <サブネット名> \ --private-connection-resource-id \ $(az storage account show \ --name <ストレージアカウント名> \ --resource-group <リソースグループ名> \ --query id -o tsv) \ --group-id blob \ --connection-name myStorageBlobConnection

ポータルから作成する場合は、ストレージアカウント → [ネットワーク] → [プライベートエンドポイント接続] → [+ プライベートエンドポイント] から設定します。サブリソース(group-id)は、Blob・Queue・Table・Fileなど接続対象のサービスに応じて選択します。

3. Private DNS Zoneを設定する(最重要)

Private Endpointを作成しても、DNS設定を行わないと通信が繋がりません。クライアントが mystorageaccount.blob.core.windows.net を引いたとき、パブリックIPではなくVNet内のプライベートIPに解決される必要があります。

# Azure CLI: Private DNS Zoneを作成してVNetにリンク az network private-dns zone create \ --resource-group <リソースグループ名> \ --name "privatelink.blob.core.windows.net" az network private-dns link vnet create \ --resource-group <リソースグループ名> \ --zone-name "privatelink.blob.core.windows.net" \ --name myStorageDnsLink \ --virtual-network <VNet名> \ --registration-enabled false # Private EndpointとDNS Zoneを関連付け az network private-endpoint dns-zone-group create \ --resource-group <リソースグループ名> \ --endpoint-name myStoragePrivateEndpoint \ --name myZoneGroup \ --private-dns-zone "privatelink.blob.core.windows.net" \ --zone-name blob

ポータルからPrivate Endpoint作成ウィザードを使う場合、「プライベートDNS統合」のステップでPrivate DNS Zoneを自動作成・関連付けできます。手動設定より確実なので、初回はポータルウィザードを使うのがおすすめです。

主なサービスとDNS Zone名の対応表は次のとおりです(2026年3月時点)。

PaaSサービス サブリソース(group-id) Private DNS Zone名
Azure Blob Storage blob privatelink.blob.core.windows.net
Azure Files file privatelink.file.core.windows.net
Azure SQL Database sqlServer privatelink.database.windows.net
Azure Key Vault vault privatelink.vaultcore.azure.net
Azure Container Registry registry privatelink.azurecr.io

料金の仕組み

Private Endpointの料金は、「エンドポイント維持費」と「データ処理料金」の2本立てです(2026年3月時点、東日本リージョン)。

エンドポイント維持費: 約$0.011/時間(月額約$8程度)
データ処理料金: $0.011/GB(送受信合計)

1つのPrivate EndpointはVNet内の1つのNICとして機能します。複数のVNetや拠点からアクセスする場合、それぞれにPrivate Endpointを作成するか、VNetピアリングやExpressRoute経由でアクセスする設計を検討する必要があります。

Service Endpointは無料なので、「オンプレ拠点からのアクセスが不要で、同じVNet内のVMだけが使うケース」ならService Endpointのほうがコスト面では有利です。ただし、セキュリティ要件やオンプレ接続の必要性が後から出てきた場合、最初からPrivate Endpointで設計しておいたほうが改修コストを抑えられます。

応用・実務Tips

【重要】ハブ&スポークネットワーク設計でのPrivate Endpoint集約

大規模なAzure環境では、ハブVNetにPrivate Endpointを集約し、スポークVNetからはVNetピアリング経由でアクセスする設計が一般的です。この場合、Private DNS Zoneはハブ側のVNetにリンクしておき、スポークVNetからもDNS解決が通るよう設定します。

注意点として、Private DNS ZoneはVNetごとにリンクが必要です。スポークVNetを追加するたびにDNS Zoneへのリンクも追加する運用フローをあらかじめ決めておきましょう。

NSGでPrivate Endpointサブネットを保護する

2021年のAzureアップデート以降、Private Endpointが配置されたサブネットにNSG(ネットワークセキュリティグループ)を適用できるようになりました。Private Endpointのサブネットに対してアクセス元CIDRを絞るNSGルールを設定することで、VNet内でもきめ細かいアクセス制御が可能です。

オンプレからExpressRoute/VPN経由でアクセスする場合

オンプレのDNSサーバーが blob.core.windows.net のクエリをAzureのPrivate DNS Zoneに転送できるよう、Azure DNS Private Resolver(またはDNS転送ルール)の設定が必要です。オンプレ側のDNSサーバーからAzureのDNSフォワーダーIPへ条件付き転送を設定するパターンがシンプルで管理しやすいです。

よくあるトラブルと対処法

症状1: Private EndpointのIPがパブリックIPに解決される

DNSの設定が正しく反映されていない状態です。VNet内のVMから nslookup mystorageaccount.blob.core.windows.net を実行して、プライベートIP(例: 10.0.x.x)に解決されているか確認します。パブリックIPが返ってくる場合は以下を確認してください。

・Private DNS ZoneがVNetに正しくリンクされているか確認する
・Private EndpointのDNS Zone Groupが作成されているか確認する
・VMがカスタムDNSサーバーを使っている場合、そのDNSがAzure DNSにフォワードしているか確認する

症状2: ネットワーク疎通チェックでエラーになる

Private Endpointのプロビジョニング状態が「Succeeded」になっていても、接続元のVMのNSGやルートテーブルがPrivate Endpointのプライベートアドレスへの通信をブロックしている場合があります。Network Watcherの「IP フロー確認」ツールを使って、NSGルールがブロックしていないか確認するのが早道です。

症状3: ストレージのパブリックアクセスを無効化したら既存の処理が止まった

パブリックアクセスを無効化する前に、既存のアプリケーションやバッチ処理が使っているIPアドレスを事前に把握しておく必要があります。オンプレのバッチサーバーや別のAzureリージョンのVMからアクセスしている処理がある場合、Private Endpointの設計に含めるか、「信頼されたサービス」設定で対応します。パブリックアクセス無効化は必ずステージング環境で先行検証してから本番に適用してください。

本記事のまとめ

確認ポイント 内容
Private LinkとService Endpointの違い Private EndpointはVNet内プライベートIPでPaaSに接続。オンプレからも到達可能
設定の肝はDNS Private DNS ZoneをVNetにリンクし、PaaSのFQDNがプライベートIPに解決されるよう設定する
料金 維持費約$8/月+データ処理$0.011/GB(2026年3月時点)。Service Endpointは無料
本番推奨構成 セキュリティ要件が厳しい環境・オンプレ連携があればPrivate Endpointを選択
ハブ&スポーク設計 ハブVNetにPrivate Endpointを集約しDNS ZoneをリンクするとスポークVNetからも到達可

Azure Private Linkは、オンプレのファイアウォール・DMZ設計の感覚をクラウドに持ち込んだような仕組みです。「PaaSをパブリックに晒したくない」という当然の要件に応える機能ですが、DNS設定をミスすると繋がらないトラブルが頻発します。最初はポータルウィザードで設定し、設定後すぐにVMから nslookup で名前解決を確認する習慣をつけておくと、現場でのトラブルシューティングが格段に楽になります。

Linuxサーバーの基礎については、姉妹サイトLinuxMaster.JPで詳しく解説しています。

Azure Private Linkの設計、どこから手をつければいい?

ネットワーク設計からDNS・運用まで、現場で使えるAzureの知識を体系的に学びたい方へ。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次