Azure Monitor Private Link Scope (AMPLS)
Azure Monitor Private Link は、監視ネットワークの境界を定義して、プライベート エンドポイントを Azure Monitor リソースのセットに接続します。 このセットは、Azure Monitor Private Link スコープ (AMPLS) と呼ばれています。
Azure Monitor が利用できる private link が AMPLS ですが、他のサービスへの Private link とは違う構造になっています。
※注意:プライベート リンクを設定すると、すべての Azure Monitor リソースへのトラフィックに影響します。特に、Application Insights リソースに当てはまります。
一般仕組みのイメージ図:
関連する Azure リソース一覧:
- 仮想ネットワーク
- AMPLS
- プライベート エンドポイント
- Azure Monitor リソース
- Log Analytics
- Application insights
- etc.
Azure Monitor Private link Scope の特徴:
- AMPLS は Azure Monitor リソースのセット(複数の Azure モニターのリソース)を対象とした設定になる
- Azure Monitor リソースのセット:Log Analytics ワークスペース、Application Insights リソース
- 1つの VNET に、1つの AMPLS しか作成できない
- Azure Monitor は、リソース固有のエンドポイントと共有グローバル/リージョン エンドポイントが存在する
- リソース固有のエンドポイント:リソースごとに AMPLS 設定が適用される
- AMPLS のアクセスモードで通信を制御不可
- 例:Log Analytics ワークスペースのデータ インジェスト
- 共有グローバル/リージョン エンドポイント:AMPLS 作成すると、グローバル/対象リージョン レベルで適用される
- すべて適用されるのは、DNS の設定が変わったから
- AMPLS のアクセスモードで通信を制御可能
- 同じグローバル/リージョン エンドポイントで複数 AMPLS 作成すると、Azure Monitor DNS ゾーンが互いにオーバーライドされ、既存の環境が破壊される
- 例:Log Analytics ワークスペースのデータ クエリ
- 同一の DNS を共有するすべてのネットワークに対して、1 つの AMPLS リソースのみを作成する必要がある
- 例えば、カスタムな DNS サーバーを使う場合
- AMPLS はアクセスモードを指定可能:
- アクセスモードは、プライベート リンクを有効にした VNet の outbound 制御みたいなもの
- Private Only Mode:接続されている VNet (PE と繋いだ 同じ DNS を共有しているすべてのネットワーク) が Private Link スコープにあるリソースにのみ到達できる
- Open Mode: 接続されている VNet が、AMPLS に含まれるリソースも AMPLS にないリソースも到達できる
- データ インジェスト/クエリそれぞれに対して、アクセスモードの指定が可能
- リソース固有のエンドポイントはアクセスモードの制御対象外
共有グローバル エンドポイント
- Application Insights エンドポイント
- Application Insights エンドポイントへのインジェスト
- ライブ メトリック
- プロファイラー
- デバッガーなどを処理するエンドポイント
- クエリ エンドポイント
- Application Insights がリソースに対するクエリを処理するエンドポイント
- Log Analytics がリソースに対するクエリを処理するエンドポイント
共有エンドポイントは DNS による影響を受けるため、アクセスモードが「プライベートのみ」の場合、プライベート DNS ゾーンを VNET に関連付けしないと、アクセスが拒否されます。
また、カスタムDNSサーバを利用する場合も同じく、DNS の設定がされていないと、上記のエンドポイントへのアクセスができなくなります。
リソース固有のエンドポイント
- Log Analytics ワークスペース インジェスト エンドポイント
- データ収集エンドポイント(DCE):VM のゲスト OS テレメトリ データを収集するために、固有のインジェスト設定を構成することが可能
- Azure Monitor エージェントでの収集
- カスタム ログ
AMPLS に特定の Log Analytics ワークスペースを追加すると、Private Link を通じてこのワークスペースにインジェスト要求が送信されます。
一方、他のワークスペースへのインジェストでは引き続きパブリック エンドポイントが使用されます。
リソース固有のエンドポイントは AMPLS のアクセスモードには制御されません。
そのため、ログのインジェストはアクセスモードでの制御はできません。
パブリックからのインジェストの制御は、Log analytics ワークスペースの「ネットワーク分離」項目で制御できます。
※ インジェストは private dns zone が VM の VNET に紐付けしなくても、データの収集はできていました。(クエリは private dns zone がないと、NG でした)アクセスモードは DNS 名前解決で制御している?
設計
- 最もシンプルで最も安全なアプローチ:
- 単一のプライベート エンドポイントと単一の AMPLS を指定して、単一の Private Link 接続を作成します。 ネットワークがピアリングされている場合は、共有 (またはハブ) VNet 上に Private Link 接続を作成します。
- "すべての" Azure Monitor リソース (Application Insights コンポーネント、Log Analytics ワークスペース、データ収集エンドポイント) をその AMPLS に追加します。
- ネットワーク エグレス トラフィックを可能な限りブロックします。
基本原則:単一の AMPLS を使用して DNS のオーバーライドを回避する
- 複数のネットワークで同じ DNS を共有している場合は、これらのいずれかで Private Link を設定すると、DNS が更新され、すべてのネットワークのトラフィックに影響します。
- 対象エンドポイント:グローバル/リージョナル エンドポイント
- 競合を回避するには、DNS ごとに AMPLS オブジェクトを 1 つだけ作成します。
ピアリングされたネットワーク
仮想ネットワーク ピアリングの場合、多くの場合は同一の DNS を共有しています。
この場合、 複数のプライベート エンドポイントや AMPLS オブジェクトを作成することは避けてください。
- ハブ スポーク環境の場合、ハブ仮想ネットワークに PE を作るのが一般的な構成です。
- 各スポークから、PE へアクセスできるようにするため
- プライベート DNS ゾーンをアクセス元の仮想ネットワークに関連付ける必要があります。
- 名前解決するため
- カスタム DNS サーバを使う場合、その DNS を参照するすべてのネットワークに影響する
分離ネットワーク
ネットワークがピアリングされていない場合は、プライベート リンクを使用するために DNS も分離する必要があります。
ネットワークごとに個別のプライベート エンドポイントと、個別の AMPLS オブジェクトを作成します。
Log analytics のネットワーク分離
Log analytics ワークスペースの「ネットワーク分離」項目で、以下の設定が可能です。
- プライベート リンク スコープを通じて接続されていないパブリック ネットワークからのデータ インジェストを受け入れる (Y/N)
- プライベート リンク スコープを通じて接続されていないパブリック ネットワークからのクエリを受け入れる (Y/N)
この設定によって、Log analytics ワークスペースがパブリックからのアクセスをブロックすることができます。
ローカルでのテスト: DNS ではなくマシンのホスト ファイルを編集する
DNS を更新すると、大きいな影響が与えてしまう可能性があるので、テストの場合 hosts ファイルで名前解決することをお勧めします。
- Private Link を設定しますが、プライベート エンドポイントに接続する際は、DNS と自動統合しないことを選択します
- マシンのホスト ファイルで関連するエンドポイントを構成します。
※ hosts ファイルのアプローチは運用環境での使用は推奨しません。
アクセスモード
(2021 年 9 月に導入された) Azure Private Link アクセスモードを使用すると、プライベート リンクがネットワーク トラフィックに与える影響を制御できます。
※ プライベート リンクをネットワークに適用する方法を制御
- アクセスモードは、インジェストとクエリに対して個別に設定されます。
- 例:インジェストには "プライベートのみ" モードを設定しつつ、クエリには "オープン" モードを設定することができます。
- アクセスモードは慎重に選択してください。
- リソース固有のエンドポイントは AMPLS アクセスモードに準拠しません
- エンドポイントごとに個別設定 (除外設定) も可能
Private Only
アクセスモードを使用すると、サブスクリプションまたはテナントに関係なく、同じ DNS を共有しているすべてのネットワークで AMPLS 内ではないリソースへのトラフィックがブロックされます (以下で説明する Log Analytics インジェスト要求を除く)。
すべての Azure Monitor リソースを AMPLS に追加できない場合、まず、一部のリソースを追加し、オープン アクセスモードを適用します。 "すべて" の Azure Monitor リソースを AMPLS に追加した後で "プライベートのみ" モードに切り替えると、最大のセキュリティを確保できます。
プライベートのみ (Private Only)
- VNet は、Private Link リソース (AMPLS 内のリソース) のみに到達できます。
- 最も安全な作業モードであり、データ流出を防ぎます。
- AMPLS の外部にある Azure Monitor リソースへのトラフィックはブロックされます。
- すべての Azure Monitor リソースを AMPLS に追加した後に設定してください。
- そうしないと、アクセスできなくなる期間が生まれます
イメージ:
※ VNET から Component 3 へのアクセスはできない (Component 3 は AMPLS に含まれていない)
オープン (Open)
- VNet は、Private Link リソースと、AMPLS にないリソースの両方に到達できます。
- データ流出を防ぐことはできません。
- Private Link リソースへのトラフィックは、プライベート エンドポイントを介して送信され、検証され、Microsoft バックボーン経由で送信されます。
イメージ:
両方同時利用
AMPLS の制限
- 1 つの VNet は、1 つの AMPLS オブジェクトにのみ接続できます。
- これは、その AMPLS オブジェクトで、VNet でアクセスできる必要のあるすべての Azure Monitor リソースへのアクセスを提供する必要があることを意味します。
- AMPLS オブジェクトは、300 のLog Analytics ワークスペースと 1000 の Visual Studio Online Application Insights コンポーネントに接続できます。
- 1 つの Azure Monitor リソース (ワークスペース、Application Insights コンポーネント、またはデータ収集エンドポイント) を最大 5 つの AMPLS に接続できます。
- 1 つの AMPLS オブジェクトは、最大 10 個のプライベート エンドポイントに接続できます。
useage 制限例:
例外
診断ログ
診断設定を使用してワークスペースにアップロードされたログとメトリックは、セキュリティで保護されたプライベート Microsoft チャネルを経由するため、これらの設定によって制御されることはありません。
"カスタム メトリック" または Azure Monitor ゲスト メトリック
Azure Monitor エージェントを使用して収集およびアップロードされたカスタム メトリック (プレビュー) は、データ収集エンドポイントによって制御されず、プライベート リンク経由で構成することもできません。
コメント