0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AzureのセキュアなネットワークをVNet・Private Endpoint・NICで理解する

0
Last updated at Posted at 2026-03-29

AzureのセキュアなネットワークをVNet・Private Endpoint・NICで理解する

最近は、フルスタックエンジニアはフロント、バックエンドだけではなくインフラ構築もするようになってきたなと考える今日この頃です...(;^ω^)。
特に、ネットワーク関連の設定は今まで馴染みがなく最近手探りで設定などを進めています
そこでキャッチアップしたことを今回はアウトプットしていきたいと思います!
AzureでPaaSサービス(Storage Account、Azure SQL Database、Key Vaultなど)を使う際、デフォルトではインターネット経由でアクセスできてしまいます。これを防ぐためのセキュアな構成が、VNet・Private Link・Private Endpoint・Private DNS Zone・NICの組み合わせです。

この記事では、各コンポーネントの役割と相互関係を整理します。


なぜこの構成が必要なのか

デフォルト構成の問題点

何も設定しない状態では、Azure PaaSリソースはインターネットに公開されたエンドポイントを持ちます
この状態では以下のリスクがあります。

リスク 内容
意図しない公開 設定ミスでデータが外部から参照可能になる
通信経路の露出 VNet内からの通信でもインターネットを経由する
認証情報の漏洩 アクセスキーが流出した場合、外部から直接アクセスされる
コンプライアンス違反 金融・医療など規制業種では「通信がインターネットを経由しないこと」を要件とするケースがある

セキュアな構成で何が変わるか

Private Endpoint + Private DNS Zone を導入すると、通信経路が完全にVNet内に閉じます。
インターネットを一切経由しないのがポイントです。アプリ側のコード変更は不要で、エンドポイントのFQDNはそのまま使えます。DNS解決の結果だけが変わります。

全体構成図


各コンポーネントの説明

Virtual Network (VNet)

すべてのリソースが属するプライベートなネットワーク空間です。インターネットとは隔離されており、サブネットに分割して管理します。

  • IPアドレス空間を定義(例: 10.0.0.0/16
  • サブネットに分割して役割ごとに管理
  • NSG(ネットワークセキュリティグループ)でトラフィックを制御

Private Endpoint(プライベートエンドポイント)

PaaSリソースをVNet内のプライベートIPアドレスに紐付けるリソースです。作成すると、サブネット内にNICが自動生成されます。

  • PaaSリソースごとに1つ作成
  • 作成時にNICが自動生成され、サブネットのIPが割り当てられる
  • PaaS側ではパブリックアクセスを無効化するのがベストプラクティス

Private Link(プライベートリンク)

Private EndpointとAzure PaaSリソースを繋ぐ**接続の仕組み(サービス)**です。

  • トラフィックはMicrosoftのバックボーンネットワーク上を流れる
  • インターネットには一切出ない
  • Private Endpointを作成すると裏側で自動的に構成される

Private DNS Zone(プライベートDNSゾーン)

PaaSリソースのFQDN(例: myaccount.blob.core.windows.net)を、パブリックIPではなくNICのプライベートIPへ解決するための仕組みです。

  • VNetにDNSゾーンをリンクすることで有効化
  • 設定を忘れると、FQDNがパブリックIPに解決されてしまい、Private Endpointを経由しない(最もよくある落とし穴)
# DNSゾーンのAレコード例
blob.core.windows.net  → 10.0.2.4  (NICのプライベートIP)
database.windows.net   → 10.0.2.5
vaultcore.azure.net    → 10.0.2.6

NIC(ネットワークインターフェース)

NICはAzure上のリソースがネットワークに接続するための仮想のLANカードです。VMだけでなく、Private Endpointにも必ず1枚のNICが作られます。これがPrivate Endpointの実体です。


NICの詳細

Private EndpointのNICとは

Private Endpointを作成すると、指定したサブネット内にNICが自動生成されます。このNICがPaaSリソースをVNetの住人として扱える理由です。

VMのNICとPE用NICの違い

VM の NIC Private Endpoint の NIC
用途 VMがネットワークに接続 PaaSリソースをVNet内に露出
IPアドレス サブネットから割当 サブネットから割当(同じ仕組み)
パブリックIP オプションで付与可能 持てない
セキュリティ NSG適用可能 NSG適用可能
管理 ユーザーが明示的に設定 PE作成時に自動生成

通信の流れ

VMからStorage Accountにアクセスする場合を例に、通信の流れを追います。

インターネットを一切経由しないのがポイントです。アプリ側のコードや接続文字列はそのままで、DNS解決の結果だけが変わります。


各リソースの関係まとめ

関係 内容
VM → Private Endpoint 同一VNet内のNICのプライベートIPで通信
Private Endpoint → PaaSリソース Private Link経由でMSバックボーンを通じて接続
Private DNS Zone → VNet リンクすることでVNet内の名前解決に使われる
Private DNS Zone Aレコード → NIC NICのプライベートIPを指す
NIC → Private Endpoint NICはPEの実体(1対1で自動生成)

設定時のチェックリスト

  • Private Endpointを作成するサブネットを専用に用意する(App SubnetとPE Subnetを分ける)
  • PaaSリソース側でパブリックアクセスを無効化する
  • Private DNS Zoneを作成し、VNetにリンクする
  • DNSゾーンにAレコードが正しく登録されているか確認する(自動登録の場合は privatelink.blob.core.windows.net など)
  • VMから nslookup でFQDNがプライベートIPに解決されることを確認する
# 確認コマンド例(VM上で実行)
nslookup myaccount.blob.core.windows.net
# → 10.0.2.4 が返れば正常(パブリックIPが返る場合はDNS設定を見直す)

まとめ

コンポーネント 一言で言うと
VNet プライベートなネットワーク空間
Private Endpoint PaaSをVNetの住人にするリソース
NIC Private Endpointの実体。プライベートIPを持つ仮想NIC
Private Link NICとPaaSリソースを繋ぐMSバックボーン接続
Private DNS Zone FQDNをNICのIPに解決するDNS

デフォルト構成ではPaaSリソースがインターネットに公開され、通信もインターネットを経由します。Private Endpoint + Private DNS Zoneを導入することで、DNS解決の結果がプライベートIPに切り替わり、通信が完全にVNet内に閉じます。

いかがでしたでしょうか。セキュアな通信を実現するために、まずは上記のサービスとそれぞれの役割を理解し実際に小規模なプロダクトから構築してみるとよいのかなと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?