Geolocalização e tratamento de endereços IP

Este artigo explica como a pesquisa de geolocalização e o tratamento de endereços IP funcionam no Application Insights.

Comportamento predefinido

Por padrão, os endereços IP são coletados temporariamente, mas não armazenados.

Quando a telemetria é enviada para o Azure, o endereço IP é usado em uma pesquisa de geolocalização. O resultado é usado para preencher os campos client_City, client_StateOrProvincee client_CountryOrRegion. O endereço é então descartado e 0.0.0.0 é escrito no client_IP campo.

Os tipos de telemetria são:

  • Telemetria do navegador: o Application Insights coleta o endereço IP do remetente. O ponto de extremidade de ingestão calcula o endereço IP.
  • Telemetria do servidor: o módulo de telemetria do Application Insights coleta temporariamente o endereço IP do cliente quando o X-Forwarded-For cabeçalho não está definido. Quando a lista de endereços IP de entrada tem mais de um item, o último endereço IP é usado para preencher campos de geolocalização.

Esse comportamento é por design para ajudar a evitar a coleta desnecessária de dados pessoais e informações de localização de endereço IP.

Quando os endereços IP não são coletados, a cidade e outros atributos de geolocalização também não são coletados.

Armazenamento de dados de endereço IP

Aviso

O padrão e nossa recomendação é não coletar endereços IP. Se você substituir esse comportamento, verifique se a coleção não viola nenhum requisito de conformidade ou regulamentação local.

Para saber mais sobre o tratamento de dados pessoais, consulte Orientações para dados pessoais.

Para habilitar a coleta e o armazenamento de IP, a DisableIpMasking propriedade do componente Application Insights deve ser definida como true.

As opções para definir esta propriedade incluem:

Modelo 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
       }
}

Portal

Se você precisar modificar o comportamento de apenas um único recurso do Application Insights, use o portal do Azure.

  1. Vá para o recurso do Application Insights e selecione Modelo de exportação de automação>.

  2. Selecione Implementar.

    Captura de tela que mostra o botão Implantar.

  3. Selecione Editar modelo.

    Captura de ecrã que mostra o botão Editar, juntamente com um aviso sobre o grupo de recursos.

    Nota

    Se ocorrer o erro mostrado na captura de tela anterior, você pode resolvê-lo. Ele afirma: "O grupo de recursos está em um local que não é suportado por um ou mais recursos no modelo. Escolha um grupo de recursos diferente." Selecione temporariamente um grupo de recursos diferente na lista suspensa e selecione novamente o grupo de recursos original.

  4. No modelo JSON, localize properties dentro de resources. Adicione uma vírgula ao último campo JSON e, em seguida, adicione a seguinte nova linha: "DisableIpMasking": true. Em seguida, selecione Guardar.

    Captura de tela que mostra a adição de uma vírgula e uma nova linha após a propriedade para a fonte da solicitação.

  5. Selecione Rever + criar>Criar.

    Nota

    Se você vir "Sua implantação falhou", examine os detalhes da implantação para encontrar aquele com o tipo microsoft.insights/components e verifique o status. Se esse for bem-sucedido, as alterações feitas foram DisableIpMasking implantadas.

  6. Após a conclusão da implantação, novos dados de telemetria serão registrados.

    Se você selecionar e editar o modelo novamente, somente o modelo padrão sem a propriedade recém-adicionada. Se você não estiver vendo os dados do endereço IP e quiser confirmar que está "DisableIpMasking": true definido, execute os seguintes comandos do 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
    

    Uma lista de propriedades é retornada como resultado. Uma das propriedades deve ler DisableIpMasking: true. Se você executar os comandos do PowerShell antes de implantar a nova propriedade com o Gerenciador de Recursos do Azure, a propriedade não existirá.

API REST

A seguinte carga útil da API REST faz as mesmas modificações:

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

O cmdlet do PowerShell Update-AzApplicationInsights pode desabilitar o mascaramento de IP com o DisableIPMasking parâmetro.

Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -DisableIPMasking:$true

Para obter mais informações sobre o Update-AzApplicationInsights cmdlet, consulte Update-AzApplicationInsights

Próximos passos

  • Saiba mais sobre a recolha de dados pessoais no Azure Monitor.
  • Saiba como definir o IP do usuário usando OpenTelemetry.