ネットワーク分離のために Azure サービスと仮想ネットワークを統合する

Azure サービスの Virtual Network (VNet) 統合を使用すると、サービスへのアクセスを、仮想ネットワーク インフラストラクチャのみに制限できます。 VNet インフラストラクチャには、ピアリングされた仮想ネットワークとオンプレミス ネットワークも含まれています。

VNet 統合は、Azure サービスにネットワーク分離の利点を提供します。これは、次の 1 つ以上の方法で実現できます。

  • サービスの専用インスタンスを仮想ネットワークにデプロイする。 サービスは、仮想ネットワーク内で、また、オンプレミス ネットワークからプライベート アクセスできます。
  • Azure Private Link を使用するサービスにプライベートかつ安全に接続するプライベート エンドポイントを使用する。 プライベート エンドポイントでは、自分の VNet からのプライベート IP アドレスを使用して、サービスを効果的に仮想ネットワークに取り込みます。
  • サービス エンドポイントを介して仮想ネットワークをサービスに拡張することによって、パブリック エンドポイントを使用してサービスにアクセスする。 サービス エンドポイントを使用することで、仮想ネットワークに対してサービス リソースをセキュリティで保護することができます。
  • サービス タグを使用して、パブリック IP エンドポイントとの間で Azure リソースへのトラフィックを許可または拒否する。

仮想ネットワークに専用の Azure サービスをデプロイする

仮想ネットワークに専用の Azure サービスをデプロイすると、プライベート IP アドレスを利用してサービス リソースに非公開で通信できます。

仮想ネットワークに専用の Azure サービスをデプロイする

仮想ネットワークに専用の Azure サービスをデプロイすると、次のことができるようになります。

  • 仮想ネットワーク内のリソースは、プライベート IP アドレスを利用し、非公開で互いと通信できます。 たとえば、仮想ネットワーク内で、HDInsight と仮想マシンで実行されている SQL Server の間でデータを直接転送できます。
  • オンプレミスのリソースは、サイト間 VPN (VPN Gateway) または ExpressRoute とプライベート IP アドレスを利用し、仮想ネットワーク内のリソースにアクセスできます。
  • 仮想ネットワーク内のリソースがプライベート IP アドレスで互いに通信できるように仮想ネットワークをピアリングできます。
  • 仮想ネットワーク内のサービス インスタンスは通常、Azure サービスによって完全に管理されます。 この管理には、リソースの正常性の監視と負荷に応じたスケーリングが含まれます。
  • サービス インスタンスは、仮想ネットワークのサブネットにデプロイされます。 サブネットのインバウンド ネットワーク アクセスとアウトバウンド ネットワーク アクセスは、サービスで提供されるガイダンスに基づき、ネットワーク セキュリティ グループ経由で開放する必要があります。
  • 特定のサービスでは、デプロイ先のサブネットに制限が課されます。 これらの制限によって、ポリシーの適用、ルート、または同じサブネット内の VM とサービス リソースの組み合わせが制限されます。 具体的な制限は、時間の経過と共に変わる可能性があるため、サービスごとにそれらをチェックしてください。 そのようなサービスの例として、Azure NetApp Files、Dedicated HSM、Azure Container Instances、App Service があります。
  • 場合によっては、サブネットが特定のサービスをホストできる明示的な識別子として、委任されたサブネットがサービスで必要になることがあります。 委任されたサブネットにサービス固有のリソースを作成するための明示的なアクセス許可を、サービスは委任により取得します。
  • 委任されたサブネットを含む仮想ネットワークでの REST API 応答の例を参照してください。 委任サブネット モデルを使用するサービスを網羅した一覧は、Available Delegations API で取得できます。

仮想ネットワークにデプロイできるサービスの一覧については、「仮想ネットワークに専用の Azure サービスをデプロイする」を参照してください。

プライベート エンドポイントを使用すると、仮想ネットワークから Azure リソースへのトラフィックを安全に受信できます。 このプライベート リンクは、パブリック IP アドレスを必要とせずに確立されます。 プライベート エンドポイントは、仮想ネットワーク内の Azure サービス用の特別なネットワーク インターフェイスです。 リソースのプライベート エンドポイントを作成すると、仮想ネットワーク上のクライアントと Azure リソースの間にセキュリティで保護された接続が提供されます。 プライベート エンドポイントには、仮想ネットワークの IP アドレス範囲から IP アドレスが割り当てられます。 プライベート エンドポイントと Azure サービス間の接続は、プライベート リンクです。

図の右側には、Azure SQL Database がターゲットの PaaS サービスとして示されています。 ターゲットは、プライベート エンドポイントをサポートする任意のサービスにすることができます。 複数の顧客の論理 SQL Server の複数のインスタンスがあり、すべてのインスタンスにパブリック IP アドレスを介して到達できます。

この場合、論理 SQL Server の 1 つのインスタンスがプライベート エンドポイントで公開されます。 このエンドポイントでは、クライアントの仮想ネットワーク内のプライベート IP アドレスを使用して、SQL Server に到達できるようにします。 DNS 構成が変更されたため、クライアント アプリケーションではトラフィックがそのプライベート エンドポイントに直接送信されるようになりました。 ターゲット サービスには、VNet のプライベート IP アドレスから送信されたトラフィックが表示されます。

プライベート リンクは緑色の矢印で表されています。 パブリック IP アドレスは、プライベート エンドポイントと共にターゲット リソースに引き続き "存在" できます。 パブリック IP は、クライアント アプリケーションによって使用されなくなります。 ファイアウォールでは、そのパブリック IP アドレスへのアクセスを禁止して、プライベート エンドポイント経由で "のみ" アクセスできるようにすることができます。 VNet からプライベート エンドポイントがない SQL server への接続は、引き続きパブリック IP アドレスから確立されます。 このフローは青い矢印で表されています。

プライベート エンドポイント

通常、クライアント アプリケーションは、DNS ホスト名を使用してターゲット サービスに到達します。 アプリケーションを変更する必要はありません。 VNet の DNS 解決では、元のパブリック IP アドレスではなく、ターゲット リソースのプライベート IP アドレスに同じホスト名が解決されるように構成する必要があります。 クライアントとターゲット サービス間のプライベート パスを使用すると、クライアントはパブリック IP アドレスに依存しません。 ターゲット サービスでは、パブリック アクセスを無効にすることができます。

このように個々のインスタンスを公開すると、データの盗難を防ぐことができます。 悪意のあるアクターが、データベースから情報を収集し、別のパブリック データベースまたはストレージ アカウントにアップロードすることはできません。 "すべて" の PaaS サービスのパブリック IP アドレスへのアクセスを防ぐことができます。 プライベート エンドポイント経由で PaaS インスタンスに引き続きアクセスすることができます。

プライベート リンクと、サポートされている Azure サービスの一覧については、「Private Link とは」を参照してください。

サービス エンドポイント

サービス エンドポイントでは、Azure のバックボーン ネットワーク経由で Azure サービスに安全に直接接続できます。 エンドポイントを使用することで、Azure リソースを仮想ネットワークのみにセキュリティ保護することができます。 サービス エンドポイントを使用すると、VNet のプライベート IP アドレスで、送信パブリック IP を必要とせずに、Azure サービスに到達できます。

サービス エンドポイントがない場合、VNet へのアクセスのみに制限することが難しいことがあります。 接続元 IP アドレスは、変更されたり、他のお客様と共有されたりすることがあります。 たとえば、送信 IP アドレスが共有されている PaaS サービスなどです。 サービス エンドポイントを使用すると、ターゲット サービスに表示される接続元 IP アドレスが、VNet からのプライベート IP アドレスになります。 このイグレス トラフィックの変更により、接続元を簡単に特定し、それを使用して適切なファイアウォール規則を構成することができます。 たとえば、その VNet 内の特定のサブネットからのトラフィックのみを許可します。

サービス エンドポイントを使用しても、Azure サービスの DNS エントリは変わらず、引き続き Azure サービスに割り当てられているパブリック IP アドレスに解決されます。

下の図の右側は、同じターゲット PaaS サービスです。 左側には、2 つのサブネットを持つ顧客の VNet があります。サブネット A には Microsoft.Sql へのサービス エンドポイントがあり、サブネット B にはサービスエンド ポイントが定義されていません。

サブネット B のリソースから任意の SQL Server に接続する場合は、送信通信にパブリック IP アドレスが使用されます。 このトラフィックは青い矢印で表されています。 SQL Server のファイアウォールでは、そのパブリック IP アドレスを使用して、ネットワーク トラフィックを許可またはブロックする必要があります。

サブネット A のリソースからデータベース サーバーに接続する場合、そのリソースは VNet 内からのプライベート IP アドレスとして表示されます。 このトラフィックは緑色の矢印で表されています。 SQL Server のファイアウォールでは、サブネット A に限定して許可またはブロックできるようになりました。ソース サービスのパブリック IP アドレスを知っている必要はありません。

サービス エンドポイント

サービス エンドポイントは、ターゲット サービスのすべてのインスタンスに適用されます。 たとえば、顧客のインスタンスだけでなく、Azure の顧客のすべての SQL Server インスタンスが対象となります。

詳細については、「仮想ネットワーク サービス エンドポイント」を参照してください。

サービス タグ

サービス タグは、指定された Azure サービスからの IP アドレス プレフィックスのグループを表します。 サービス タグを使用して、ネットワーク セキュリティ グループまたは Azure Firewall でのネットワーク アクセス制御を定義できます。 サービスのトラフィックを許可または拒否することができます。 トラフィックを許可または拒否するには、ルールの接続元フィールドまたは接続先フィールドにサービス タグを指定します。

サービス タグを使用したトラフィックの許可または拒否

ネットワーク分離を実現し、パブリック エンドポイントを持つ Azure サービスへのアクセス時に、インターネットから Azure リソースを保護できます。 受信/送信ネットワーク セキュリティ グループ規則を作成して、インターネットとの間のトラフィックを拒否し、AzureCloud との間のトラフィックを許可します。 サービス タグの詳細については、特定の Azure サービスの「利用可能なサービス タグ」を参照してください。

サービス タグおよびこれをサポートする Azure サービスの詳細については、サービス タグの概要に関する記事を参照してください。

プライベート エンドポイントとサービス エンドポイントの比較

注意

Microsoft では、Azure Private Link を使用することをお勧めします。 Private Link は、オンプレミスから PaaS にプライベートにアクセスするという点で、組み込みのデータ流出防止と、独自のネットワーク内のプライベート IP へのサービスのマッピングにおいて、より優れた機能を提供します。 詳細については、Azure Private Link に関するページを参照してください

相違点だけを見るのではなく、サービス エンドポイントとプライベート エンドポイントの両方に共通の特性があることを指摘することには価値があります。

どちらの機能も、ターゲット サービスのファイアウォールをより細かく制御するために使用されます。 たとえば、SQL Server データベースまたはストレージ アカウントへのアクセスを制限します。 ただし、前のセクションで詳しく説明したように、操作は双方で異なります。

どちらの方法でも、送信元ネットワーク アドレス変換 (SNAT) のポート枯渇の問題が克服されます。 ネットワーク仮想アプライアンス (NVA) や SNAT ポート制限を使用するサービスを介してトラフィックをトンネリングする場合は、枯渇する可能性があります。 サービス エンドポイントまたはプライベート エンドポイントを使用すると、トラフィックは最適化されたパスを経由してターゲット サービスに直接到達します。 どちらの方法でも、待機時間とコストの両方が削減されるため、帯域幅が集中的に使用されるアプリケーションでメリットがあります。

どちらの場合も、ターゲット サービスへのトラフィックがネットワーク ファイアウォールまたは NVA を通過するようにすることができます。 この手順は 2 つの方法で異なります。 サービス エンドポイントを使用する場合は、ソース サービスがデプロイされているサブネットではなく、ファイアウォールのサブネットでサービス エンドポイントを構成する必要があります。 プライベート エンドポイントを使用する場合は、プライベート エンドポイントの IP アドレス用のユーザー定義ルート (UDR) をソース サブネットに配置します。 プライベート エンドポイントのサブネットではありません。

違いを比較して理解するには、次の表をご覧ください。

考慮事項 サービス エンドポイント プライベート エンドポイント
構成が適用されるレベルのサービス スコープ サービス全体 (たとえば、"すべて" の SQL Server または "すべて" の顧客のストレージ アカウント) 個々のインスタンス (たとえば、特定の SQL Server インスタンスまたは "自分" が所有するストレージ アカウント)
組み込みのデータ流出防止 - 悪意のある内部関係者によって、保護された PaaS リソースから他の保護されていない PaaS リソースにデータを移動またはコピーする機能 いいえ はい
オンプレミスから PaaS リソースへのプライベート アクセス いいえ はい
サービス アクセスのために NSG 構成が必要 はい (サービス タグを使用) いいえ
パブリック IP アドレスを使用せずにサービスに到達できる いいえ はい
Azure から Azure へのトラフィックは、Azure のバックボーン ネットワーク上で送受信される はい はい
サービスでそのパブリック IP アドレスを無効にすることができる いいえ はい
Azure Virtual Network からのトラフィックを簡単に制限できる はい (特定のサブネットからのアクセスを許可するか、NSG を使用します (またはその両方)) はい
オンプレミス (VPN/ExpressRoute) からのトラフィックを簡単に制限できる 該当なし** はい
DNS の変更が必要 いいえ はい (DNS の構成に関する記事を参照)
ソリューションのコストに影響する いいえ はい (「Private link の価格」を参照)
ソリューションの複合 SLA に影響する いいえ はい (プライベート リンク サービス自体の SLA は 99.99% です)
セットアップとメンテナンス より少ない管理オーバーヘッドで設定が簡単 追加の作業が必要
制限 仮想ネットワーク内のサービス エンドポイントの合計数に制限はありません。 Azure サービスでは、リソースのセキュリティ保護に使用されるサブネットの数に制限が適用される場合があります。 (VNet に関する FAQ を参照) はい (「Private Link に関する制限」を参照)

**仮想ネットワークからのアクセスに限定された Azure サービス リソースは、オンプレミスのネットワークからはアクセスできません。 オンプレミスからのトラフィックを許可する場合は、オンプレミスまたは ExpressRoute からのパブリック IP アドレス (通常は NAT) を許可します。 これらの IP アドレスは、Azure サービス リソースの IP ファイアウォール構成を通じて追加できます。 詳細については、VNet の FAQ を参照してください。

次の手順