지리적 위치 및 IP 주소 처리
이 문서에서는 Application Insights에서 지리적 위치 조회 및 IP 주소 처리가 작동하는 방식을 설명합니다.
기본 동작
기본적으로 IP 주소는 일시적으로 수집되지만 저장되지는 않습니다.
원격 분석 데이터가 Azure로 전송되면 IP 주소가 지리적 위치 조회에 사용됩니다. 결과는 client_City
, client_StateOrProvince
, client_CountryOrRegion
필드를 채우는 데 사용됩니다. 그런 다음 주소가 삭제되고 0.0.0.0
이 client_IP
필드에 기록됩니다.
원격 분석 형식 필터링
- 브라우저 원격 분석: Application Insights가 보낸 사람의 IP 주소를 수집합니다. 수집 엔드포인트는 IP 주소를 계산 합니다.
- 서버 원격 분석: Application Insights 원격 분석 모듈은
X-Forwarded-For
헤더가 설정되지 않은 경우 일시적으로 클라이언트 IP 주소를 수집합니다. 들어오는 IP 주소 목록에 항목이 두 개 이상 있는 경우 마지막 IP 주소가 위치 정보 필드를 채우는 데 사용됩니다.
이 동작은 개인 데이터 및 IP 주소 위치 정보의 불필요한 컬렉션을 방지하기 위해 의도된 것입니다.
IP 주소가 수집되지 않으면 도시 및 기타 지리적 위치 특성도 수집되지 않습니다.
IP 주소 데이터의 Storage
Warning
기본 설정과 권장 사항은 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
}
}
포털
단일 Application Insights 리소스에 대한 동작만 수정해야 하는 경우 Azure Portal을 사용하세요.
Application Insights 리소스로 이동한 다음 자동화>템플릿 내보내기를 선택합니다.
배포를 선택합니다.
템플릿 편집을 선택합니다.
참고 항목
앞의 스크린샷에 표시된 오류가 발생하면 해결할 수 있습니다. 오류: :리소스 그룹이 템플릿에 있는 하나 이상의 리소스에서 지원하지 않는 위치에 있습니다." 다른 리소스 그룹을 선택하세요.” 드롭다운에서 다른 리소스 그룹을 임시로 선택한 다음 원래 리소스 그룹을 다시 선택하여 오류를 해결합니다.
JSON 템플릿에서
resources
안에 있는properties
를 찾습니다. 마지막 JSON 필드에 쉼표를 추가한 다음, 새 줄"DisableIpMasking": true
을 추가합니다. 그런 다음 저장을 선택합니다.검토 + 만들기>만들기를 차례로 선택합니다.
참고 항목
‘배포 실패’가 표시되면 유형이
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
cmdlet은 DisableIPMasking
매개 변수를 사용하여 IP 마스킹을 사용하지 않도록 설정할 수 있습니다.
Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -DisableIPMasking:$true
Update-AzApplicationInsights
cmdlet에 대한 자세한 내용은 Update-AzApplicationInsights를 참조하세요.
다음 단계
- Azure Monitor에서 개인 데이터 수집에 대해 자세히 알아봅니다.
- OpenTelemetry를 사용하여 사용자 IP를 설정하는 방법을 알아봅니다.