Azure Private Link のセットアップを設計する
Azure Private Link のインスタンスを設定する前に、ネットワーク トポロジと DNS ルーティング トポロジを検討してください。
「Azure Private Link を使用して、ネットワークを Azure Monitor に接続する」で説明されているように、プライベート リンクを設定すると、すべての Azure Monitor リソースへのトラフィックに影響します。 これは特に、Application Insights リソースに当てはまります。 また、プライベート エンドポイントに接続されているネットワークだけでなく、同じ DNS を共有している他のすべてのネットワークにも影響します。
最もシンプルで最も安全なのは次のアプローチです。
- 単一のプライベート エンドポイントと単一の Azure Monitor Private Link スコープ (AMPLS) を指定して、単一のプライベート リンク接続を作成します。 ネットワークがピアリングされている場合は、共有 (またはハブ) 仮想ネットワーク上にプライベート リンク接続を作成します。
- Application Insights コンポーネント、Log Analytics ワークスペース、データ収集エンドポイントなどの "すべての" Azure Monitor リソースを AMPLS に追加します。
- ネットワーク エグレス トラフィックを可能な限りブロックします。
すべての Azure Monitor リソースを AMPLS に追加できない場合でも、「プライベート リンクをネットワークに適用する方法を制御する」で説明されているように、一部のリソースにプライベート リンクを適用できます。 データ流出を防ぐことができないため、この方法はお勧めしません。
ネットワーク トポロジ別の計画
計画プロセスでネットワーク トポロジを検討します。
基本原則: 単一の AMPLS を使用して DNS のオーバーライドを回避する
一部のネットワークは、複数の仮想ネットワークまたは接続された他のネットワークで構成されます。 これらのネットワークで同じ DNS を共有している場合は、これらのいずれかでプライベート リンクを設定すると、DNS が更新され、すべてのネットワークのトラフィックに影響します。
次の図では、仮想ネットワーク 10.0.1.x が AMPLS1 に接続し、Azure Monitor のエンドポイントを範囲 10.0.1.x の IP にマッピングする DNS エントリを作成します。 その後、仮想ネットワーク 10.0.2.x は AMPLS2 に接続し、AMPLS2 は同じグローバル/リージョナル エンドポイントを範囲 10.0.2.x の IP にマッピングして同じ DNS エントリを上書きします。 これらの仮想ネットワークはピアリングされていないため、最初の仮想ネットワークはこれらのエンドポイントに到達できないようになります。
この競合を回避するには、DNS ごとに AMPLS オブジェクトを 1 つだけ作成します。
ハブアンドスポーク ネットワーク
ハブアンドスポーク ネットワークでは、各スポーク仮想ネットワーク上ではなくハブ (メイン) ネットワーク上に設定された単一のプライベート リンク接続を使用する必要があります。
Note
たとえば、各仮想ネットワークが限られた一連の監視リソースにアクセスできるようにするために、スポーク仮想ネットワーク用に個別のプライベート リンクを作成することをお勧めします。 このような場合は、仮想ネットワークごとに専用のプライベート エンドポイントと AMPLS を作成できます。 "また、DNS オーバーライドを回避するために、同じ DNS ゾーンを共有していないことを確認する必要があります"。
ピアリングされたネットワーク
ネットワーク ピアリングは、ハブ アンド スポーク以外のさまざまなトポロジで使用されます。 このようなネットワークは、互いの IP アドレスを共有でき、多くの場合は同一の DNS を共有しています。 このような場合は、他のネットワークからアクセス可能なネットワーク上に単一のプライベート リンクを作成します。 複数のプライベート エンドポイントや AMPLS オブジェクトを作成することは避けてください。これは、最終的には DNS に含まれる最後のセットのみが適用されるためです。
分離ネットワーク
ネットワークがピアリングされていない場合は、プライベート リンクを使用するために DNS も分離する必要があります。 その後、ネットワークごとに個別のプライベート エンドポイントと、個別の AMPLS オブジェクトを作成します。 AMPLS オブジェクトは、同じワークスペースやコンポーネントにリンクすることも、異なるワークスペースやコンポーネントにリンクすることもできます。
ローカルでのテスト: DNS ではなくマシンのホスト ファイルを編集する
ネットワーク上の他のクライアントに影響を与えずにプライベート リンクをローカルでテストするには、プライベート エンドポイントを作成するときに DNS を更新しないようにしてください。 代わりに、お使いのマシン上の hosts ファイルを編集して、プライベート リンク エンドポイントに要求が送信されるようにします。
- プライベート リンクを設定しますが、プライベート エンドポイントに接続する際は、DNS と自動統合しないことを選択します (手順 5b)。
- マシンのホスト ファイルで関連するエンドポイントを構成します。 マッピングが必要な Azure Monitor エンドポイントを確認するには、「エンドポイントの DNS 設定の確認」を参照してください。
このアプローチは、運用環境にはお勧めしません。
プライベート リンクをネットワークに適用する方法を制御する
プライベート リンク アクセス モードを使用すると、プライベート リンクがネットワーク トラフィックに与える影響を制御できます。 これらの設定は、AMPLS オブジェクト (接続されているすべてのネットワークに影響が及びます)、またはそこに接続されている特定のネットワークに適用できます。
継続的で中断のないネットワーク トラフィックを確保するには、適切なアクセス モードを選択することが重要です。 これらの各モードは、インジェストとクエリに対して個別に設定できます。
- プライベートのみ: 仮想ネットワークは、プライベート リンク リソース (AMPLS 内のリソース) のみに到達できます。 これは最も安全な作業モードです。 AMPLS から Azure Monitor リソースへのトラフィックをブロックすることで、データ流出を防ぎます。
- オープン: 仮想ネットワークは、プライベート リンク リソースと、AMPLS にないリソースの両方に到達できます (それらが公衆ネットワークからのトラフィックを受け入れる場合)。 "オープン" アクセス モードでは、データ流出を防ぐことはできませんが、プライベート リンクの他の恩恵は得られます。 プライベート リンク リソースへのトラフィックは、プライベート エンドポイントを介して送信され、検証され、Microsoft バックボーン経由で送信されます。 "オープン" モードは、混合モードの作業 (一部のリソースにパブリックにアクセスし、他のリソースにプライベート リンクを介してアクセスする)、または段階的なオンボーディング プロセス中に役立ちます。 アクセス モードは、インジェストとクエリに対して個別に設定されます。 たとえば、インジェストには "プライベートのみ" モードを設定しつつ、クエリには "オープン" モードを設定することができます。
アクセス モードは慎重に選択してください。 "プライベートのみ" アクセス モードを使用すると、AMPLS にないリソースへのトラフィックが、サブスクリプションやテナントに関係なく、同じ DNS を共有するすべてのネットワークでブロックされます。 例外は Log Analytics インジェスト要求です。これについては説明します。 すべての Azure Monitor リソースを AMPLS に追加できない場合、まず、一部のリソースを追加し、"オープン" アクセス モードを適用します。 "すべての Azure Monitor リソースを AMPLS に追加した後にのみ"、最大のセキュリティを確保するために "プライベートのみ" モードに切り替えます。
構成の詳細と例については、「API とコマンド ラインの使用」を参照してください。
注意
Log Analytics インジェストではリソース固有のエンドポイントが使用されます。 そのため、AMPLS アクセス モードに準拠しません。 Log Analytics インジェスト要求で AMPLS の外部にあるワークスペースにアクセスできないようにするには、AMPLS アクセス モードには関係なく、パブリック エンドポイントへのトラフィックをブロックするようにネットワーク ファイアウォールを設定します。
特定のネットワークのアクセス モードを設定する
AMPLS リソースに設定されたアクセス モードは、すべてのネットワークに影響します。ただし、特定のネットワークに対してこれらの設定をオーバーライドすることができます。
次の図では、VNet1 は "オープン" モードを使用し、VNet2 は "プライベートのみ" モードを使用しています。 VNet1 からの要求は、プライベート リンク経由でワークスペース 1 とコンポーネント 2 に到達できます。 要求は、公衆ネットワークからのトラフィックを受け入れる場合にのみ、コンポーネント 3 に到達できます。 VNet2 の要求は、コンポーネント 3 に到達できません。
AMPLS の制限を考慮する
AMPLS オブジェクトには次の制限があります。
- 仮想ネットワークは、"1 つ" の AMPLS オブジェクトにのみ接続できます。 これは、その AMPLS オブジェクトで、仮想ネットワークでアクセスできる必要のあるすべての Azure Monitor リソースへのアクセスを提供する必要があることを意味します。
- AMPLS オブジェクトは、300 のLog Analytics ワークスペースと 1,000 の Visual Studio Online Application Insights コンポーネントに接続できます。
- 1 つの Azure Monitor リソース (ワークスペース、Application Insights コンポーネント、またはデータ収集エンドポイント) を最大 5 つの AMPLS に接続できます。
- 1 つの AMPLS オブジェクトは、最大 10 個のプライベート エンドポイントに接続できます。
注意
2021 年 12 月 1 日より前に作成された AMPLS リソースは、50 リソースのみをサポートします。
次の図で説明します。
- 各仮想ネットワークは 1 つの AMPLS オブジェクトにのみ接続します。
- AMPLS A は、接続可能な 300 の Log Analytics ワークスペースのうちの 2 つと、接続可能な 1,000 の Application Insights コンポーネントのうちの 1 つを使用して、2 つのワークスペースと 1 つの Application Insight コンポーネントに接続します。
- ワークスペース 2 は、使用可能な 5 つの AMPLS 接続のうち 2 つを使用して、AMPLS A と AMPLS B に接続します。
- AMPLS B は、使用可能な 10 個のプライベート エンドポイント接続のうち 2 つを使用して、2 つの仮想ネットワーク (VNet2 と VNet3) のプライベート エンドポイントに接続します。
リソースへのネットワーク アクセスを制御する
Log Analytics ワークスペースまたは Application Insights コンポーネントは、次のように設定できます。
- 公衆ネットワーク (リソースの AMPLS に接続されていないネットワーク) からのインジェストを受け入れるかブロックする。
- 公衆ネットワーク (リソースの AMPLS に接続されていないネットワーク) からのクエリを受け入れるかブロックする。
この細分性により、ワークスペースごとにニーズに応じてアクセスを設定できます。 たとえば、インジェストはプライベート リンクで接続されたネットワーク (つまり、特定の仮想ネットワーク) 経由でのみ受け入れつつ、クエリは公衆であれプライベートであれあらゆるネットワークから受け入れるように選択することができます。
公衆ネットワークからのクエリをブロックすると、接続されている AMPLS の外部のマシンや SDK などのクライアントはそのリソース内のデータに対してクエリを実行できなくなります。 このデータには、ログ、メトリック、およびライブ メトリック ストリームが含まれます。 公衆ネットワークからのクエリをブロックすると、これらのクエリを実行するすべてのエクスペリエンス (ブック、ダッシュボード、Azure portal 内の分析情報、Azure portal の外部から実行されるクエリなど) に影響が及びます。
Note
これらの設定が適用されない、特定の例外があります。 詳細については、次のセクション を参照してください。
データ収集エンドポイントは、公衆ネットワーク (リソースの AMPLS に接続されていないネットワーク) からのアクセスを受け入れる、またはブロックするように設定できます。
構成情報については、「リソース アクセス フラグを設定する」を参照してください。
例外
ただし、次の例外があります。
診断ログ
診断設定を使用してワークスペースにアップロードされたログとメトリックは、セキュリティで保護されたプライベート Microsoft チャネルを経由し、これらの設定によって制御されることはありません。
カスタム メトリックまたは Azure Monitor ゲスト メトリック
Azure Monitor エージェントを介して収集およびアップロードされたカスタム メトリック (プレビュー) は、データ収集エンドポイントによって制御されません。 それらを、プライベート リンク経由で構成することはできません。
Azure Resource Manager
前に説明したようなアクセスの制限は、リソースのデータに適用されます。 ただし、これらのアクセス設定をオンまたはオフにするなどの構成の変更は、Azure Resource Manager で管理されます。 これらの設定を制御するには、適切なロール、アクセス許可、ネットワーク制御、監査を使用して、リソースへのアクセスを制限します。 詳細については、Azure Monitor のロール、アクセス許可、およびセキュリティに関するページを参照してください。
Note
Resource Manager API を介して送信されたクエリでは、Azure Monitor プライベート リンクを使用できません。 これらのクエリは、ターゲット リソースで公衆ネットワークからのクエリが許可されている場合 ([ネットワークの分離] ペインまたは CLI を使用して設定します) にのみ実行できます。
次のエクスペリエンスについては、Resource Manager API を介してクエリが実行されることが確認されています。
- LogicApp コネクタ
- Update Management ソリューション
- ソリューションの変更の追跡
- VM Insights
- Container Insights
- Log Analytics の [ワークスペースの概要 (非推奨)] ペイン (ソリューション ダッシュボードを表示)
Application Insights の考慮事項
- 監視対象のワークロードをホストしているリソースをプライベート リンクに追加する必要があります。 例については、Azure Web アプリでのプライベート エンドポイントの使用に関するページを参照してください。
- ポータル以外の消費エクスペリエンスも、監視対象のワークロードを含むプライベート リンク仮想ネットワークで実行する必要があります。
- Profiler と Debugger のプライベート リンクをサポートするには、独自のストレージ アカウントを指定する必要があります。
Note
ワークスペース ベースの Application Insights を完全に保護するには、Application Insights リソースと基になる Log Analytics ワークスペースへのアクセスをロックダウンする必要があります。
Log Analytics の考慮事項
以下の Log Analytics に関する考慮事項に注意してください。
Log Analytics ソリューション パックのダウンロード
ソリューション パックをダウンロードするには、Log Analytics エージェントがグローバル ストレージ アカウントにアクセスする必要があります。 2021 年 4 月 19 日以降 (または、Azure ソブリン クラウドでは、2021 年 6 月から) に作成されたプライベート リンクのセットアップでは、プライベート リンクを介して、エージェントのソリューション パックのストレージに接続できます。 この機能は、blob.core.windows.net
用に作成された DNS ゾーンによって可能になります。
2021 年 4 月 19 日より前に作成されたプライベート リンクのセットアップでは、プライベート リンクを介してソリューション パックのストレージには接続できません。 これに対処するには、次のいずれかを行います。
AMPLS とそれに接続されているプライベート エンドポイントを再作成します。
ファイアウォールの許可リストに次のルールを追加することにより、エージェントがパブリック エンドポイントを介してストレージ アカウントに接続できるようにします。
クラウド環境 エージェントのリソース Port Direction Azure Public scadvisorcontent.blob.core.windows.net 443 送信 Azure Government usbn1oicore.blob.core.usgovcloudapi.net 443 送信 21Vianet が運用する Microsoft Azure mceast2oicore.blob.core.chinacloudapi.cn 443 送信
プライベート リンク経由でカスタム ログと IIS ログを収集する
ストレージ アカウントは、カスタム ログの取り込みプロセスで使用されます。 既定では、サービスで管理されるストレージ アカウントが使用されます。 プライベート リンクにカスタム ログを取り込むには、独自のストレージ アカウントを使用して、それらを Log Analytics ワークスペースに関連付ける必要があります。
独自のストレージ アカウントを接続する方法について詳しくは、ログ インジェスト用の顧客所有のストレージ アカウントに関する記事の特に「プライベート リンクを使用する」と、「ストレージ アカウントを Log Analytics ワークスペースにリンクする」をご覧ください。
Automation
Azure Automation アカウント (Update Management、Change Tracking、Inventory など) を必要とする Log Analytics ソリューションを使用する場合は、Automation アカウント用にプライベート リンクを作成する必要もあります。 詳細は、「Azure Private Link を使用して、ネットワークを Azure Automation に安全に接続する」を参照してください。
注意
一部の製品や Azure portal エクスペリエンスでは、Resource Manager を介してデータに対してクエリが実行されます。 この場合、プライベート リンク設定が Resource Manager に適用されていない限り、プライベート リンク経由ではデータに対してクエリを実行できません。 この制限を回避するには、「リソースへのネットワーク アクセスを制御する」の説明に従い、公衆ネットワークからのクエリを受け入れるようにリソースを構成できます。 (インジェストはプライベート リンク ネットワークのみに制限しておくことができます)。次の製品およびエクスペリエンスが Resource Manager 経由でワークスペースに対してクエリを実行していることが確認されています。
- LogicApp コネクタ
- Update Management ソリューション
- ソリューションの変更の追跡
- ポータルの [ワークスペースの概要 (非推奨)] ペイン (ソリューション ダッシュボードを表示)
- VM Insights
- Container Insights
マネージド Prometheus に関する考慮事項
- Private Link のインジェスト設定は、AMPLS と、Prometheus メトリックの格納に使用される Azure Monitor ワークスペースを参照するデータ収集エンドポイント (DCE) の設定を使用して行われます。
- Private Link のクエリ設定は、Prometheus メトリックの格納に使用される Azure Monitor ワークスペースで直接行われ、AMPLS 経由では処理されません。
要件
以下の要件に注意してください。
ネットワーク サブネットのサイズ
サポートされる最小の IPv4 サブネットは /27 です (CIDR サブネット定義を使用)。 Azure 仮想ネットワークは /29 という小さいサイズにすることもできますが、Azure によって 5 つの IP アドレスが予約されています。 1 つのワークスペースに接続する場合でも、Azure Monitor プライベート リンクのセットアップには最低でもさらに 11 個の IP アドレスが必要です。 Azure Monitor プライベート リンク エンドポイントの一覧については、エンドポイントの DNS 設定を確認してください。
エージェント
Log Analytics ワークスペースへのセキュリティで保護された取り込みをサポートするには、最新バージョンの Windows および Linux エージェントを使用する必要があります。 以前のバージョンでは、プライベート ネットワーク経由で監視データをアップロードすることはできません。
Azure Monitor Windows エージェント
Azure Monitor Windows エージェント バージョン 1.1.1.0 以上 (データ収集エンドポイントを使用)。
Azure Monitor Linux エージェント
Azure Monitor Linux エージェント バージョン 1.10.5.0 以上 (データ収集エンドポイントを使用)。
Log Analytics Windows エージェント (非推奨)
Log Analytics エージェント バージョン 10.20.18038.0 以降を使用します。
Log Analytics Linux エージェント (非推奨)
エージェント バージョン 1.12.25 以降を使用します。 できない場合は、VM で次のコマンドを実行します。
$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -X
$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -w <workspace id> -s <workspace key>
Azure portal
Application Insights、Log Analytics、データ収集エンドポイントなどの Azure Monitor ポータル エクスペリエンスを使用するには、プライベート ネットワークで Azure portal および Azure Monitor の拡張機能にアクセスできるようにする必要があります。 AzureActiveDirectory、AzureResourceManager、AzureFrontDoor.FirstParty、および AzureFrontdoor.Frontend サービス タグをネットワーク セキュリティ グループに追加します。
プログラムでアクセス
REST API、Azure CLI または PowerShell をプライベート ネットワーク上の Azure Monitor で使用する場合、サービス タグ AzureActiveDirectory と AzureResourceManager をファイアウォールに追加します。
コンテンツ配信ネットワークから Application Insights SDK をダウンロードする
ブラウザーが CDN からコードをダウンロードしないように、スクリプトに JavaScript コードをバンドルします。 例については GitHub を参照してください。
ブラウザーの DNS 設定
プライベート リンクを介して Azure Monitor リソースに接続している場合、これらのリソースへのトラフィックは、お使いのネットワーク上で構成されているプライベート エンドポイントを経由する必要があります。 プライベート エンドポイントを有効にするには、「プライベート エンドポイントへの接続」の説明に従って、DNS 設定を更新します。 一部のブラウザーでは、ユーザーが設定したものではなく、ブラウザー自身の DNS 設定が使用されています。 ブラウザーが Azure Monitor パブリック エンドポイントに接続を試みる際に、プライベート リンクを完全にバイパスする場合があります。 ブラウザーの設定によって、DNS 設定がオーバーライドされていないこと、また、古い DNS 設定がキャッシュされていないことを確認してください。
クエリの制限: externaldata 演算子
externaldata
演算子は、ストレージ アカウントからデータを読み取りますが、ストレージにプライベートでアクセスすることは保証されないため、プライベート リンク経由ではサポートされていません。- Azure Data Explorer プロキシ (ADX プロキシ) を使用すると、ログ クエリで Azure Data Explorer にクエリを実行できます。 ADX プロキシは、対象のリソースにプライベートでアクセスすることは保証されないため、Private Link 経由ではサポートされていません。
次の手順
- プライベート リンクの構成方法について確認します。
- カスタム ログとカスタマー マネージド キーのプライベート ストレージについて確認します。
- Automation 用の Private Link について確認します。