位置情報と IP アドレスの処理
この記事では、Application Insights での位置情報検索と IP アドレス処理のしくみについて説明します。
既定の動作
既定では、IP アドレスは一時的に収集されますが、格納されません。
テレメトリが Azure に送信されると、IP アドレスが位置情報検索で使用されます。 結果は、フィールド client_City
、client_StateOrProvince
、client_CountryOrRegion
の入力に使用されます。 アドレスは破棄され、0.0.0.0
が client_IP
フィールドに書き込まれます。
テレメトリの種類は次のとおりです。
- ブラウザー テレメトリ: Application Insights は、送信者の IP アドレスを収集します。 インジェスト エンドポイントは IP アドレスを計算します。
- サーバー テレメトリ:
X-Forwarded-For
ヘッダーが設定されていない場合、Application Insights テレメトリ モジュールでクライアントの IP アドレスが一時的に収集されます。 受信した IP アドレス リストに複数の項目がある場合は、最後の IP アドレスを使用して位置情報フィールドが設定されます。
この動作の仕様は、個人データおよび IP アドレス位置情報の不必要な収集を回避するのに役立ちます。
IP アドレスが収集されない場合、市区町村やその他の位置情報属性も収集されません。
IP アドレス データのストレージ
警告
IP アドレスを収集しない (既定) ことをお勧めします。 この動作をオーバーライドする場合は、収集することがコンプライアンス要件や現地の規制に違反していないかどうかを確認してください。
個人データ処理の詳細については、個人データのガイダンスに関するページをご覧ください。
IP の収集と格納を有効にするには、Application Insights コンポーネントの DisableIpMasking
プロパティを true
に設定する必要があります。
このプロパティを設定するオプションは次のとおりです。
ARM テンプレート
{
"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<resource-name>",
"name": "<resource-name>",
"type": "microsoft.insights/components",
"location": "westcentralus",
"tags": {
},
"kind": "web",
"properties": {
"Application_Type": "web",
"Flow_Type": "Redfield",
"Request_Source": "IbizaAIExtension",
// ...
"DisableIpMasking": true
}
}
ポータル
1 つの Application Insights リソースの動作のみを変更する必要がある場合は、Azure portal を使用します。
Application Insights リソースに移動し、[Automation]>[テンプレートのエクスポート] を選択します。
[デプロイ] を選択します。
[テンプレートの編集] を選択します。
注意
上のスクリーンショットで示されているエラーが発生した場合は解決が可能です。 エラーの内容: "リソース グループは、テンプレート内の 1 つ以上のリソースがサポートしていない場所にあります。 別のリソース グループを選択してください。" 一時的にドロップダウン リストから別のリソース グループを選択してから、元のリソース グループを再選択してください。
JSON テンプレートで、
resources
内のproperties
を見つけます。 最後の JSON フィールドにコンマを追加して、"DisableIpMasking": true
という新しい行を追加します。 その後、 [保存] を選びます。[確認と作成]>[作成] の順に選択します。
Note
"デプロイに失敗しました" と表示されている場合は、
microsoft.insights/components
という種類のデプロイの詳細を確認し、状態を確認します。 成功した場合は、DisableIpMasking
に加えられた変更がデプロイされます。デプロイが完了すると、新しいテレメトリ データが記録されます。
テンプレートをもう一度選択して編集すると、新しく追加されたプロパティのない既定のテンプレートのみになります。 IP アドレス データが表示されず、
"DisableIpMasking": true
が設定されていることを確認する必要がある場合、次の PowerShell コマンドを実行します。# Replace `Fabrikam-dev` with the appropriate resource and resource group name. # If you aren't using Azure Cloud Shell, you need to connect to your Azure account # Connect-AzAccount $AppInsights = Get-AzResource -Name 'Fabrikam-dev' -ResourceType 'microsoft.insights/components' -ResourceGroupName 'Fabrikam-dev' $AppInsights.Properties
結果として、プロパティの一覧が返されます。 プロパティのいずれかが
DisableIpMasking: true
になっているはずです。 Azure Resource Manager で新しいプロパティをデプロイする前に PowerShell コマンドを実行する場合、プロパティは存在しません。
REST API
次の REST API ペイロードでも、同じ変更が行われます。
PATCH https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/microsoft.insights/components/<resource-name>?api-version=2018-05-01-preview HTTP/1.1
Host: management.azure.com
Authorization: AUTH_TOKEN
Content-Type: application/json
Content-Length: 54
{
"location": "<resource location>",
"kind": "web",
"properties": {
"Application_Type": "web",
"DisableIpMasking": true
}
}
PowerShell
PowerShell Update-AzApplicationInsights
コマンドレットは、DisableIPMasking
パラメーターを使用して IP マスクを無効にすることができます。
Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -DisableIPMasking:$true
Update-AzApplicationInsights
コマンドレットの詳細については、「Update-AzApplicationInsights」を参照してください
次のステップ
- Azure Monitor での個人データ収集について、詳しく学習する。
- OpenTelemetry を使用してユーザー IP を設定する方法について学習する。