Azure Monitor のプライベート リンクを構成する
この記事では、Azure portal を使用して Azure Monitor プライベート リンク スコープ (AMPLS) を作成および構成するための詳細な手順について説明します。 また、この記事には、CLI、PowerShell、ARM テンプレートを使用して AMPLS を操作するための別の方法も含まれています。
Azure Private Link のインスタンスを構成するには、次の手順が必要です。 以下のセクションでは、これらの各手順について詳しく説明します。
- Azure Monitor プライベート リンク スコープ (AMPLS) を作成する。
- リソースを AMPLS に接続する。
- AMPLS をプライベート エンドポイントに接続する。
- AMPLS リソースへのアクセスを構成する。
この記事では、Azure portal を使用して構成を行う方法について説明します。 また、プロセスを自動化するための Azure Resource Manager テンプレート (ARM テンプレート) の例を示します。
Azure Monitor プライベート リンク スコープ (AMPLS) を作成する
Azure portal の [監視] メニューから、[プライベート リンク スコープ] を選択し、[作成] を選択します。
サブスクリプションとリソース グループを選択し、AMPLS に、AppServerProdTelem のようなわかりやすい名前を付けます。
[Review + create](レビュー + 作成) を選択します。
検証をパスしたら、[作成] を選択します。
リソースを AMPLS に接続する
AMPLS のメニューから、[Azure Monitor リソース] を選択し、[追加] を選択します。
コンポーネントを選択し、[適用] を選択してコンポーネントをスコープに追加します。 Log Analytics ワークスペース、Application Insights コンポーネント、データ収集エンドポイント (DCE) などの Azure Monitor リソースのみを使用できます。
Note
Azure Monitor リソースを削除するには、まず接続先の AMPLS オブジェクトから切断する必要があります。 AMPLS に接続されているリソースを削除することはできません。
AMPLS をプライベート エンドポイントに接続する
リソースを AMPLS に接続すると、ネットワークを接続するためのプライベート エンドポイントを作成できます。
AMPLS のメニューから、[プライベート エンドポイント接続]、[プライベート エンドポイント] の順に選択します。 また、Private Link センターで開始された接続をここで承認することもできます。そのためには、その接続を選択し、[承認] を選択します。
[基本] タブ
- [サブスクリプション] と [リソース グループ] を選択し、エンドポイントの [名前] と [ネットワーク インターフェイス名] を入力します。
- プライベート エンドポイントを作成する必要がある [リージョン] を選択します。 リージョンは、接続先の仮想ネットワークと同じにする必要があります。
[リソース] タブ
- Azure Monitor プライベート リンク スコープのリソースを含む "サブスクリプション" を選択します。
- [リソースの種類] には、Microsoft.insights/privateLinkScopes を選択してください。
- [リソース] ドロップダウンから、作成したプライベート リンク スコープを選択します。
[仮想ネットワーク] タブ
- Azure Monitor リソースに接続する [仮想ネットワーク] と [サブネット] を選択します。
- プライベート エンドポイントを含むサブネットにネットワーク セキュリティ グループまたはルート テーブルを適用する場合は、[プライベート エンドポイントのネットワーク ポリシー] で [編集] を選択します。 詳細については、「プライベート エンドポイントのネットワーク ポリシーを管理する」を参照してください。
- [プライベート IP 構成] は、既定で [IP アドレスを動的に割り当てる] オプションが選択されています。 静的 IP アドレスを割り当てる場合は、[IP アドレスを静的に割り当てる] を選択し、名前とプライベート IP を入力します。
- 必要に応じて、[アプリケーション セキュリティ グループ] を選択または作成します。 アプリケーション セキュリティ グループを使うと、仮想マシンをグループ化し、それらのグループに基づいてネットワーク セキュリティ ポリシーを定義できます。
[DNS] タブ
- [プライベート DNS ゾーンとの統合] で [はい] を選択します。これにより、新しいプライベート DNS ゾーンが自動的に作成されます。 実際の DNS ゾーンは、次のスクリーンショットに示されているものとは異なる場合があります。
Note
[いいえ] を選択して DNS レコードを手動で管理する場合は、まずプライベート リンクの設定を完了させます。 このプライベート エンドポイントと AMPLS 構成を含め、Azure プライベート エンドポイントの DNS 構成の手順に従って、DNS を構成します。 プライベート リンクの設定の準備で、空のレコードを作成しないようにしてください。 作成する DNS レコードによって、既存の設定がオーバーライドされ、Azure Monitor との接続が影響を受ける可能性があります。
[はい] または [いいえ] のどちらを選択しても、独自のカスタム DNS サーバーを使っている場合は、Azure プライベート エンドポイントの DNS 構成に関する記事で説明されているパブリック DNS ゾーン フォワーダー用に、条件付きフォワーダーを設定する必要があります。 条件付きフォワーダーでは、DNS クエリを Azure DNS に転送する必要があります。
[確認と作成] タブ
- 検証に合格したら、[作成] を選択します。
AMPLS リソースへのアクセスを構成する
AMPLS のメニューから、[ネットワークの分離] を選択して、プライベート リンクを経由してリソースにアクセスできるネットワークと、他のネットワークでそのリソースにアクセスできるかどうかを制御します。
接続済み AMPLS
この画面では、AMPLS へのリソースの接続を確認して構成できます。 AMPLS に接続すると、接続されている仮想ネットワークからのトラフィックがリソースにアクセスできるようになります。 これには、Azure Monitor リソースの接続で説明したスコープからの接続と同じ効果があります。
新しい接続を追加するには、[追加] を選択し、AMPLS を選択します。 「AMPLS の制限」で説明されているように、リソースは、5 つの AMPLS オブジェクトに接続できます。
仮想ネットワークのアクセス構成
これらの設定は、リストされているスコープに接続されていないパブリック ネットワークからのアクセスを制御します。 これには、ログ、メトリック、ライブ メトリック ストリームへのアクセスが含まれます。 また、ブック、ダッシュボード、クエリ API ベースのクライアント エクスペリエンス、Azure portal の分析情報など、このデータに基づいて構築されたエクスペリエンスも含まれます。 Azure portal の外部で実行され、Log Analytics データにクエリを発行するエクスペリエンスも、プライベート リンクの仮想ネットワーク 内で実行する必要があります。
- [プライベート リンク スコープを通じて接続されていないパブリック ネットワークからのデータ インジェストを受け入れる] を [いいえ] に設定した場合、接続されたスコープ外のクライアント (マシン、SDK など) は、リソースへのデータのアップロードやログの送信はできません。
- [プライベート リンク スコープを通じて接続されていないパブリック ネットワークからのクエリを受け入れる] を [いいえ] に設定した場合、接続されたスコープ外のクライアント (マシン、SDK など) は、リソース内のデータのクエリを実行できません。
CLI を使用して AMPLS を操作する
オープン アクセス モードで AMPLS を作成する
次の CLI コマンドを実行すると、クエリとインジェストのアクセス モードの両方が Open
に設定された、"my-scope"
という名前の新しい AMPLS リソースが作成されます。
az resource create -g "my-resource-group" --name "my-scope" -l global --api-version "2021-07-01-preview" --resource-type Microsoft.Insights/privateLinkScopes --properties "{\"accessModeSettings\":{\"queryAccessMode\":\"Open\", \"ingestionAccessMode\":\"Open\"}}"
リソース アクセス フラグを設定する
ワークスペースまたはコンポーネント アクセス フラグを管理するには、log-analytics ワークスペースまたは az monitor app-insights コンポーネントでフラグ [--ingestion-access {Disabled, Enabled}]
と [--query-access {Disabled, Enabled}]
を使用します。
PowerShell を使用して AMPLS を操作する
AMPLS を作成する
次の PowerShell スクリプトを実行すると、クエリ アクセス モードが Open
でインジェスト アクセス モードが PrivateOnly
に設定された、"my-scope"
という名前の新しい AMPLS リソースが作成されます。 つまり、AMPLS 内のリソースへのインジェストのみを許可するという設定です。
# scope details
$scopeSubscriptionId = "ab1800bd-ceac-48cd-...-..."
$scopeResourceGroup = "my-resource-group"
$scopeName = "my-scope"
$scopeProperties = @{
accessModeSettings = @{
queryAccessMode = "Open";
ingestionAccessMode = "PrivateOnly"
}
}
# login
Connect-AzAccount
# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId
# create private link scope resource
$scope = New-AzResource -Location "Global" -Properties $scopeProperties -ResourceName $scopeName -ResourceType "Microsoft.Insights/privateLinkScopes" -ResourceGroupName $scopeResourceGroup -ApiVersion "2021-07-01-preview" -Force
AMPLS のアクセス モードを設定する
AMPLS を作成した後、AMPLS にアクセス モード フラグを設定するには、次の PowerShell コードを使用します。
# get private link scope resource
$scope = Get-AzResource -ResourceType Microsoft.Insights/privateLinkScopes -ResourceGroupName $scopeResourceGroup -ResourceName $scopeName -ApiVersion "2021-07-01-preview"
# set access mode settings
$scope.Properties.AccessModeSettings.QueryAccessMode = "Open";
$scope.Properties.AccessModeSettings.IngestionAccessMode = "Open";
$scope | Set-AzResource -Force
ARM テンプレート
AMPLS を作成する
次の ARM テンプレートでは、次のことが実行されます。
- クエリとインジェストのアクセス モードが
Open
に設定された、"my-scope"
という名前の AMPLS。 "my-workspace"
という名前の Log Analytics ワークスペース。"my-workspace-connection"
という名前のスコープ付きリソースの"my-scope"
AMPLS への追加。
{
"$schema": https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#,
"contentVersion": "1.0.0.0",
"parameters": {
"private_link_scope_name": {
"defaultValue": "my-scope",
"type": "String"
},
"workspace_name": {
"defaultValue": "my-workspace",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "microsoft.insights/privatelinkscopes",
"apiVersion": "2021-07-01-preview",
"name": "[parameters('private_link_scope_name')]",
"location": "global",
"properties": {
"accessModeSettings":{
"queryAccessMode":"Open",
"ingestionAccessMode":"Open"
}
}
},
{
"type": "microsoft.operationalinsights/workspaces",
"apiVersion": "2020-10-01",
"name": "[parameters('workspace_name')]",
"location": "westeurope",
"properties": {
"sku": {
"name": "pergb2018"
},
"publicNetworkAccessForIngestion": "Enabled",
"publicNetworkAccessForQuery": "Enabled"
}
},
{
"type": "microsoft.insights/privatelinkscopes/scopedresources",
"apiVersion": "2019-10-17-preview",
"name": "[concat(parameters('private_link_scope_name'), '/', concat(parameters('workspace_name'), '-connection'))]",
"dependsOn": [
"[resourceId('microsoft.insights/privatelinkscopes', parameters('private_link_scope_name'))]",
"[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
],
"properties": {
"linkedResourceId": "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
}
}
]
}
AMPLS の構成を確認および検証する
このセクションの手順に従って、プライベート リンクのセットアップを確認し、検証します。
エンドポイントの DNS 設定を確認する
この記事で作成したプライベート エンドポイントには、次の 5 つの DNS ゾーンが構成されています。
privatelink.monitor.azure.com
privatelink.oms.opinsights.azure.com
privatelink.ods.opinsights.azure.com
privatelink.agentsvc.azure-automation.net
privatelink.blob.core.windows.net
これらのゾーンのそれぞれで、特定の Azure Monitor エンドポイントが仮想ネットワークの IP プールからのプライベート IP にマップされます。 以下の画像に示されている IP アドレスは単なる例です。 実際の構成では、代わりに、独自のネットワークからのプライベート IP が表示されるはずです。
privatelink-monitor-azure-com
このゾーンは、Azure Monitor によって使用されるグローバル エンドポイントを対象とします。つまり、リソース固有の要求ではなく、グローバルまたはリージョンに要求を提供するエンドポイントです。 このゾーンには、次のエンドポイントがマップされている必要があります。
- in.ai: Application Insights インジェスト エンドポイント (グローバルおよびリージョン両方のエントリ)
- api: Application Insights と Log Analytics API エンドポイント
- live: Application Insights ライブ メトリクス エンドポイント
- profiler: Application Insights Profiler for .NET エンドポイント。
- snapshot: Application Insights スナップショット エンドポイント
- diagservices-query: Application Insights Profiler for .NET とスナップショット デバッガー (Azure portal でプロファイラーやデバッガーの結果にアクセスするときに使用)。
このゾーンでは、次の DCE のリソース固有のエンドポイントも対象とします。
<unique-dce-identifier>.<regionname>.handler.control
: プライベート構成エンドポイント (DCE リソースの一部)<unique-dce-identifier>.<regionname>.ingest
: プライベート インジェスト エンドポイント (DCE リソースの一部)
Log Analytics エンドポイント
Log Analytics では、次の 4 つの DNS ゾーンが使用されます。
privatelink-oms-opinsights-azure-com
: OMS エンドポイントへのワークスペース固有のマッピングを対象とします。 このプライベート エンドポイントに接続されている AMPLS にリンクされた各ワークスペースのエントリが表示されます。privatelink-ods-opinsights-azure-com
: Log Analytics のインジェスト エンドポイントである ODS エンドポイントへのワークスペース固有のマッピングを対象とします。 このプライベート エンドポイントに接続されている AMPLS にリンクされた各ワークスペースのエントリが表示されます。privatelink-agentsvc-azure-automation-net*
: エージェント サービス オートメーション エンドポイントへのワークスペース固有のマッピングを対象とします。 このプライベート エンドポイントに接続されている AMPLS にリンクされた各ワークスペースのエントリが表示されます。privatelink-blob-core-windows-net
: グローバル エージェントのソリューション パックのストレージ アカウントに対する接続を構成します。 これにより、エージェントは、新規または更新されたソリューション パック (管理パックとも呼ばれます) をダウンロードできます。 使用するワークスペースの数に関係なく、全ての Log Analytics エージェントを処理するのに必要なエントリは 1 つだけです。 このエントリは、2021 年 4 月 19 日以降 (または、Azure ソブリン クラウドでは 2021 年 6 月以降) に作成されたプライベート リンク セットアップにのみ追加されます。
次のスクリーンショットは、米国東部に 2 つのワークスペースを持ち、西ヨーロッパに 1 つのワークスペースを持つ AMPLS にマップされたエンドポイントを示しています。 米国東部のワークスペースが IP アドレスを共有していることに注意してください。 西ヨーロッパのワークスペース エンドポイントは別の IP アドレスにマップされています。 BLOB エンドポイントはこの画像には表示されていませんが、構成されています。
AMPLS 経由の通信を検証する
要求がプライベート エンドポイントを介して送信されるようになったことを検証するには、ブラウザーまたはネットワーク追跡ツールを使用して確認します。 たとえば、ご利用のワークスペースまたはアプリケーションに対してクエリを試みる場合は、API エンドポイントにマップされたプライベート IP に要求が送信されることを確認します。 この例では、172.17.0.9 です。
Note
ブラウザーによっては、他の DNS 設定が使用されます。 詳細については、「ブラウザーの DNS 設定」を参照してください。 目的の DNS 設定が適用されていることを確認します。
(AMPLS 経由で接続されていない) パブリック ネットワークからの要求がワークスペースまたはコンポーネントによって受信されていないことを確認するには、「リソースへのアクセスを構成する」で説明されているように、リソースのパブリック インジェストとクエリ フラグを [いいえ] に設定します。
ご利用の保護されたネットワーク上のクライアントから、
nslookup
を、ご利用の DNS ゾーンに一覧表示されている任意のエンドポイントに対して使用します。 それは、既定で使用されるパブリック IP ではなく、マップされたプライベート IP に、DNS サーバーによって解決される必要があります。
ローカルでのテスト
ネットワーク上の他のクライアントに影響を与えずにプライベート リンクをローカルでテストするには、プライベート エンドポイントを作成するときに DNS を更新しないようにしてください。 代わりに、お使いのマシン上の hosts ファイルを編集して、プライベート リンク エンドポイントに要求が送信されるようにします。
- プライベート リンクを設定しますが、プライベート エンドポイントに接続する際に、DNS との自動統合をしないことを選択します。
- マシンのホスト ファイルで関連するエンドポイントを構成します。
追加の設定
ネットワーク サブネットのサイズ
サポートされる最小の IPv4 サブネットは /27 です (CIDR サブネット定義を使用)。 Azure 仮想ネットワークは /29 という小さいサイズにすることもできますが、Azure によって 5 つの IP アドレスが予約されています。 1 つのワークスペースに接続する場合でも、Azure Monitor プライベート リンクのセットアップには少なくとも 11 個の IP アドレスが必要です。 Azure Monitor プライベート リンク エンドポイントの一覧については、エンドポイントの DNS 設定を確認してください。
Azure portal
Application Insights、Log Analytics、DCE に Azure Monitor ポータル エクスペリエンスを使用するには、プライベート ネットワークで Azure portal と Azure Monitor 拡張機能にアクセスできるようにします。 AzureActiveDirectory、AzureResourceManager、AzureFrontDoor.FirstParty、および AzureFrontdoor.Frontend サービス タグをネットワーク セキュリティ グループに追加します。
プログラムでアクセス
REST API、Azure CLI または PowerShell をプライベート ネットワーク上の Azure Monitor で使用する場合、サービス タグ AzureActiveDirectory と AzureResourceManager をファイアウォールに追加します。
ブラウザーの DNS 設定
プライベート リンクを介して Azure Monitor リソースに接続している場合、これらのリソースへのトラフィックは、お使いのネットワーク上で構成されているプライベート エンドポイントを経由する必要があります。 プライベート エンドポイントを有効にするには、プライベート エンドポイントへの接続の説明に従って、DNS 設定を更新します。 一部のブラウザーでは、ユーザーが設定したものではなく、ブラウザー自身の DNS 設定が使用されています。 ブラウザーが Azure Monitor パブリック エンドポイントに接続を試みる際に、プライベート リンクを完全にバイパスする場合があります。 ブラウザーの設定によって、DNS 設定がオーバーライドされていないこと、また、古い DNS 設定がキャッシュされていないことを確認してください。
クエリの制限: externaldata 演算子
- externaldata 演算子は、ストレージ アカウントからデータを読み取りますが、ストレージにプライベートでアクセスすることは保証されないため、プライベート リンク経由ではサポートされていません。
- Azure Data Explorer プロキシ (ADX プロキシ) を使用すると、ログ クエリで Azure Data Explorer にクエリを実行できます。 ADX プロキシは、対象のリソースにプライベートでアクセスすることは保証されないため、Private Link 経由ではサポートされていません。
次のステップ
- カスタム ログとカスタマー マネージド キーのプライベート ストレージについて確認する
- 新しいデータ収集エンドポイントについて確認する
プライベート リンク スコープを作成して管理するには、REST API または Azure CLI (az monitor private-link-scope) を使用します。