ネットワーク分離のために Azure サービスと仮想ネットワークを統合する
Azure サービスの仮想ネットワーク統合を使用すると、サービスへのアクセスを、仮想ネットワーク インフラストラクチャのみに制限できます。 仮想ネットワーク インフラストラクチャには、ピアリングされた仮想ネットワークとオンプレミス ネットワークも含まれています。
仮想ネットワーク統合では、次の 1 つ以上の方法を使用して Azure サービスにネットワーク分離の利点を提供します。
サービスの専用インスタンスを仮想ネットワークにデプロイする。 サービスは、仮想ネットワーク内で、また、オンプレミス ネットワークからプライベート アクセスできます。
Azure Private Link を使用するサービスにプライベートかつ安全に接続するプライベート エンドポイントを使用する。 プライベート エンドポイントでは、仮想ネットワークのプライベート IP アドレスを使用して、サービスが仮想ネットワークに実質的に組み込まれます。
サービス エンドポイントを介して仮想ネットワークをサービスに拡張することによって、パブリック エンドポイントを使用してサービスにアクセスする。 サービス エンドポイントを使用することで、仮想ネットワークに対してサービス リソースをセキュリティで保護することができます。
サービス タグを使用して、パブリック IP エンドポイントとの間で Azure リソースへのトラフィックを許可または拒否する。
仮想ネットワークに専用の Azure サービスをデプロイする
仮想ネットワークに専用の Azure サービスをデプロイすると、プライベート IP アドレスを利用してサービス リソースに非公開で通信できます。
仮想ネットワークに専用の Azure サービスをデプロイすると、次のことができるようになります。
仮想ネットワーク内のリソースは、プライベート IP アドレスを利用し、非公開で互いと通信できます。 たとえば、仮想ネットワーク内で、HDInsight と仮想マシンで実行されている SQL Server の間でデータを直接転送できます。
オンプレミスのリソースは、サイト間 VPN (VPN Gateway) または ExpressRoute とプライベート IP アドレスを利用し、仮想ネットワーク内のリソースにアクセスできます。
仮想ネットワーク内のリソースがプライベート IP アドレスで互いに通信できるように仮想ネットワークをピアリングできます。
Azure サービスでは、仮想ネットワーク内のサービス インスタンスを完全に管理します。 この管理には、リソースの正常性の監視と負荷に応じたスケーリングが含まれます。
サービス インスタンスは、仮想ネットワークのサブネットにデプロイされます。 サブネットのインバウンド ネットワーク アクセスとアウトバウンド ネットワーク アクセスは、サービスで提供されるガイダンスに基づき、ネットワーク セキュリティ グループ経由で開放する必要があります。
特定のサービスでは、デプロイ先のサブネットに制限が課されます。 これらの制限によって、ポリシーの適用、ルート、または同じサブネット内の VM とサービス リソースの組み合わせが制限されます。 具体的な制限は、時間の経過と共に変わる可能性があるため、サービスごとにそれらをチェックしてください。 そのようなサービスの例として、Azure NetApp Files、Dedicated HSM、Azure Container Instances、App Service があります。
場合によっては、サブネットが特定のサービスをホストできる明示的な識別子として、委任されたサブネットがサービスで必要になることがあります。 Azure サービスでは、委任により、委任されたサブネットにサービス固有のリソースを作成するための明示的なアクセス許可を受け取ります。
委任されたサブネットを含む仮想ネットワークでの REST API 応答の例を参照してください。 委任サブネット モデルを使用するサービスを網羅した一覧は、Available Delegations API で取得できます。
仮想ネットワークにデプロイできるサービスの一覧については、「仮想ネットワークに専用の Azure サービスをデプロイする」を参照してください。
Private Link とプライベート エンドポイント
プライベート エンドポイントを使用すると、仮想ネットワークから Azure リソースへのトラフィックを安全に受信できます。 このプライベート リンクは、パブリック IP アドレスを必要とせずに確立されます。 プライベート エンドポイントは、仮想ネットワーク内の Azure サービス用の特別なネットワーク インターフェイスです。 リソースのプライベート エンドポイントを作成すると、仮想ネットワーク上のクライアントと Azure リソースの間にセキュリティで保護された接続が提供されます。 プライベート エンドポイントには、仮想ネットワークの IP アドレス範囲から IP アドレスが割り当てられます。 プライベート エンドポイントと Azure サービス間の接続は、プライベート リンクです。
図の右側には、Azure SQL Database がターゲットの PaaS サービスとして示されています。 ターゲットは、プライベート エンドポイントをサポートする任意のサービスにすることができます。 複数の顧客の論理 SQL Server の複数のインスタンスがあり、すべてのインスタンスにパブリック IP アドレスを介して到達できます。
この場合、論理 SQL Server の 1 つのインスタンスがプライベート エンドポイントで公開されます。 このエンドポイントでは、クライアントの仮想ネットワーク内のプライベート IP アドレスを使用して、SQL Server に到達できるようにします。 DNS 構成が変更されたため、クライアント アプリケーションではトラフィックがそのプライベート エンドポイントに直接送信されるようになりました。 ターゲット サービスには、仮想ネットワークのプライベート IP アドレスから送信されたトラフィックが表示されます。
緑色の矢印はプライベート リンクを表します。 パブリック IP アドレスは、プライベート エンドポイントと共にターゲット リソースに引き続き "存在" できます。 パブリック IP は、クライアント アプリケーションによって使用されなくなります。 ファイアウォールでは、そのパブリック IP アドレスへのアクセスを禁止して、プライベート エンドポイント経由で "のみ" アクセスできるようにすることができます。 仮想ネットワークからプライベート エンドポイントがない SQL Server への接続は、パブリック IP アドレスから確立されます。 青い矢印は、このフローを表します。
通常、クライアント アプリケーションは、DNS ホスト名を使用してターゲット サービスに到達します。 アプリケーションを変更する必要はありません。 元のパブリック IP アドレスではなく、ターゲット リソースのプライベート IP アドレスに同じホスト名が解決されるように、仮想ネットワークの DNS 解決を構成する必要があります。 クライアントとターゲット サービス間のプライベート パスを使用すると、クライアントはパブリック IP アドレスに依存しません。 ターゲット サービスでは、パブリック アクセスを無効にすることができます。
このように個々のインスタンスを公開すると、データの盗難を防ぐことができます。 悪意のあるアクターが、データベースから情報を収集し、別のパブリック データベースまたはストレージ アカウントにアップロードすることはできません。 "すべて" の PaaS サービスのパブリック IP アドレスへのアクセスを防ぐことができます。 プライベート エンドポイント経由で PaaS インスタンスに引き続きアクセスすることができます。
プライベート リンクと、サポートされている Azure サービスの一覧については、「Private Link とは」を参照してください。
サービス エンドポイント
サービス エンドポイントでは、Azure のバックボーン ネットワーク経由で Azure サービスに安全に直接接続できます。 エンドポイントを使用することで、Azure リソースを仮想ネットワークのみにセキュリティ保護することができます。 サービス エンドポイントを使用すると、仮想ネットワークのプライベート IP アドレスから、送信パブリック IP を必要とせずに、Azure サービスに到達できます。
サービス エンドポイントがない場合、アクセスを仮想ネットワークのみに制限することは難しい可能性があります。 接続元 IP アドレスは、変更されたり、他のお客様と共有されたりすることがあります。 たとえば、送信 IP アドレスが共有されている PaaS サービスなどです。 サービス エンドポイントを使用すると、ターゲット サービスに表示されるソース IP アドレスが、仮想ネットワークからのプライベート IP アドレスになります。 このイグレス トラフィックの変更により、接続元を簡単に特定し、それを使用して適切なファイアウォール規則を構成することができます。 たとえば、その仮想ネットワーク内の特定のサブネットからのトラフィックのみを許可します。
サービス エンドポイントを使用しても、Azure サービスの DNS エントリは変わらず、引き続き Azure サービスに割り当てられているパブリック IP アドレスに解決されます。
下の図の右側は、同じターゲット PaaS サービスです。 左側には、2 つのサブネットを持つ顧客の仮想ネットワークがあります。サブネット A には Microsoft.Sql
へのサービス エンドポイントがあり、サブネット B にはサービスエンド ポイントが定義されていません。
サブネット B のリソースから任意の SQL Server に接続するときには、送信通信にパブリック IP アドレスが使用されます。 青い矢印は、このトラフィックを表します。 SQL Server のファイアウォールでは、そのパブリック IP アドレスを使用して、ネットワーク トラフィックを許可またはブロックする必要があります。
サブネット A のリソースは、データベース サーバーに接続するときには、仮想ネットワーク内からのプライベート 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 サービスでは、リソースのセキュリティ保護に使用されるサブネットの数に制限が適用される場合があります。 (仮想ネットワークに関する FAQ を参照) | はい (「Private Link に関する制限」を参照) |
**仮想ネットワークからのアクセスに限定された Azure サービス リソースは、オンプレミスのネットワークからはアクセスできません。 オンプレミスからのトラフィックを許可する場合は、オンプレミスまたは ExpressRoute からのパブリック IP アドレス (通常は NAT) を許可します。 これらの IP アドレスは、Azure サービス リソースの IP ファイアウォール構成を通じて追加できます。 詳細については、仮想ネットワークに関する FAQ についてのページを参照してください。
次の手順
Azure ネットワークとアプリを統合する方法について説明します。
サービス タグを使用してリソースへのアクセスを制限する方法について説明します。
Azure Private Link を使って Azure Cosmos DB アカウントに非公開で接続する方法について説明します。