Gerir dados pessoais em Log Analytics e Insights de Aplicações

O Log Analytics é uma loja de dados onde é provável que os dados pessoais sejam encontrados. A Application Insights armazena os seus dados numa partição do Log Analytics. Este artigo explica onde o Log Analytics e o Application Insights armazenam dados pessoais e como gerir estes dados.

Neste artigo, os dados de registo referem-se a dados enviados para um espaço de trabalho do Log Analytics, enquanto os dados da aplicação referem-se aos dados recolhidos pela Application Insights. Se estiver a utilizar um recurso de Insights de Aplicação baseado no espaço de trabalho, aplica-se a informação sobre os dados de registo. Se estiver a utilizar um recurso clássico de Insights de Aplicação, os dados da aplicação aplicam-se.

Nota

Para obter informações sobre a visualização ou eliminação de dados pessoais, veja Azure Data Subject Requests for the GDPR (Pedidos de Titulares de Dados do Azure relativos aos RGPD). Para obter mais informações sobre o RGPD, consulte a secção RGPD do Centro de Confiança Microsoft e a secção RGPD do portal Service Trust.

Estratégia para o tratamento de dados pessoais

Embora cabe a si e à sua empresa definir uma estratégia de tratamento de dados pessoais, eis algumas abordagens, listadas da maioria até menos preferíveis do ponto de vista técnico:

  • Pare de recolher dados pessoais, ou obfunde, annimize ou ajuste os dados recolhidos para excluir que sejam considerados "pessoais". Esta é de longe a abordagem preferida, o que lhe poupa a necessidade de criar uma estratégia de tratamento de dados dispendiosa e impactante.
  • Normalize os dados para reduzir os efeitos negativos na plataforma de dados e desempenho. Por exemplo, em vez de registar um ID de utilizador explícito, crie um lookup para correlacionar o nome de utilizador e os seus dados a um ID interno que pode ser registado em outro lugar. Desta forma, se um utilizador lhe pedir para apagar as suas informações pessoais, pode eliminar apenas a linha na tabela de pesquisa que corresponde ao utilizador.
  • Se necessitar de recolher dados pessoais, construa um processo utilizando o caminho da Expurgação da API e a API de consulta existente para cumprir quaisquer obrigações de exportação e eliminação de quaisquer dados pessoais associados a um utilizador.

Onde procurar dados pessoais no Log Analytics

O Log Analytics prescreve um esquema aos seus dados, mas permite-lhe substituir todos os campos com valores personalizados. Também pode ingerir esquemas personalizados. Como tal, é impossível dizer exatamente onde os dados pessoais serão encontrados no seu espaço de trabalho específico. Os seguintes locais, no entanto, são bons pontos de partida no seu inventário.

Nota

Algumas das consultas abaixo usam search * para consultar todas as mesas em um espaço de trabalho. Recomendamos vivamente que evite a utilização search *, o que cria uma consulta altamente ineficiente, sempre que possível. Em vez disso, consulta uma tabela específica.

Dados de registo

  • Endereços IP: Log Analytics recolhe várias informações IP em várias tabelas. Por exemplo, a seguinte consulta mostra todas as tabelas que recolheram endereços IPv4 nas últimas 24 horas:

    search * 
    | where * matches regex @'\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b' //RegEx originally provided on https://stackoverflow.com/questions/5284147/validating-ipv4-addresses-with-regexp
    | summarize count() by $table
    
  • IDs do utilizador: Encontrará nomes de utilizador e IDs de utilizador em várias soluções e tabelas. Pode procurar um nome de utilizador ou ID de utilizador em todo o seu conjunto de dados utilizando o comando de pesquisa:

    search "<username or user ID>"
    

    Lembre-se de procurar não só nomes de utilizadores legíveis pelo homem, mas também guids que podem ser rastreados até um determinado utilizador.

  • IDs do dispositivo: Tal como os IDs do utilizador, os IDs do dispositivo são por vezes considerados dados pessoais. Utilize a abordagem listada acima para identificação de IDs de utilizador para identificar tabelas que possuam dados pessoais.

  • Dados personalizados: O Log Analytics permite-lhe recolher dados personalizados através de registos personalizados, campos personalizados, a API do Colecionador de Dados HTTP e como parte dos registos de eventos do sistema. Verifique todos os dados personalizados para obter dados pessoais.

  • Dados capturados por solução: Como o mecanismo de solução está aberto, recomendamos a revisão de todas as tabelas geradas por soluções para garantir o cumprimento.

Dados da aplicação

  • Endereços IP: Embora o Application Insights obfunde todos os campos 0.0.0.0 de endereços IP por padrão, é bastante comum anular este valor com o IP do utilizador real para manter as informações da sessão. Utilize a consulta abaixo para encontrar qualquer tabela que contenha valores na coluna de endereços IP que não 0.0.0.0 seja nas últimas 24 horas:

    search client_IP != "0.0.0.0"
    | where timestamp > ago(1d)
    | summarize numNonObfuscatedIPs_24h = count() by $table
    
  • IDs do utilizador: Por padrão, o Application Insights utiliza IDs gerados aleatoriamente para utilizador e rastreio de sessão em campos como session_Id, user_Id, user_AuthenticatedId, user_AccountId e personalizadosDimensionis. No entanto, é comum sobrepor estes campos com um ID que seja mais relevante para a aplicação, como nomes de utilizadores ou GUIDs do Azure Ative Directory. Estes IDs são muitas vezes considerados como dados pessoais. Recomendamos que obstaculize ou anonimize estas identificações.

  • Dados personalizados: O Application Insights permite-lhe anexar um conjunto de dimensões personalizadas a qualquer tipo de dado. Utilize a seguinte consulta para identificar as dimensões personalizadas recolhidas nas últimas 24 horas:

    search * 
    | where isnotempty(customDimensions)
    | where timestamp > ago(1d)
    | project $table, timestamp, name, customDimensions 
    
  • Dados em memória e em trânsito: O Application Insights rastreia exceções, pedidos, chamadas de dependência e vestígios. Muitas vezes encontrará dados pessoais no código e nível de chamada HTTP. Rever exceções, pedidos, dependências e traços de tabelas para identificar tais dados. Utilize inicializadores de telemetria sempre que possível para obstacular estes dados.

  • Snapshot Debugger captura: A funcionalidade Snapshot Debugger em Application Insights permite-lhe recolher instantâneos de depurar quando o Application Insights deteta uma exceção na instância de produção da sua aplicação. Os instantâneos expõem o traço completo da pilha levando às exceções e aos valores das variáveis locais em cada passo da pilha. Infelizmente, esta funcionalidade não permite a eliminação seletiva de pontos de encaixe ou acesso programático a dados dentro do instantâneo. Portanto, se a taxa de retenção de instantâneo padrão não satisfizer os seus requisitos de conformidade, recomendamos que desligue a funcionalidade.

Exportação e eliminação de dados pessoais

Recomendamos vivamente que reestruture a sua política de recolha de dados para parar de recolher dados pessoais, obfunde ou anonimize dados pessoais, ou de outra forma modificar esses dados até que deixe de ser considerado pessoal. No tratamento pessoal, os dados incorrerão em custos na definição e automatização de uma estratégia, construindo uma interface através da qual os seus clientes interagem com os seus dados e manutenção contínua. Também é computacionalmente dispendioso para Log Analytics e Application Insights, e um grande volume de chamadas de Consulta simultânea ou Purga API pode afetar negativamente todas as outras interações com a funcionalidade Log Analytics. No entanto, se tiver de recolher dados pessoais, siga as diretrizes desta secção.

Importante

Embora a maioria das operações de purga completem muito mais rapidamente, o SLA formal para a conclusão das operações de purga é definido em 30 dias devido ao seu forte impacto na plataforma de dados. Este SLA satisfaz os requisitos do RGPD. É um processo automatizado, por isso não há como acelerar a operação.

Ver e exportar

Utilize a consulta de Log Analytics API ou a Consulta de Insights de Aplicação API para visualização e pedidos de dados de exportação.

É necessário implementar a lógica de conversão dos dados num formato adequado para entrega aos seus utilizadores. Funções do Azure é um ótimo lugar para acolher tal lógica.

Eliminar

Aviso

Os deletes no Log Analytics são destrutivos e não reversíveis! Por favor, tenha muito cuidado na execução deles.

A AZure Monitor's Purpur API permite eliminar dados pessoais. Utilize a operação de purga com moderação para evitar riscos potenciais, impacto de desempenho e o potencial de distorcer agregações, medições e outros aspetos dos seus dados log analytics. Consulte a secção de tratamento de dados pessoais para obter abordagens alternativas de tratamento de dados pessoais.

A purga é uma operação altamente privilegiada. Conceder o papel de Purgador de Dados no Azure Resource Manager cautelosamente devido ao potencial de perda de dados.

Para gerir os recursos do sistema, limitamos os pedidos de purga a 50 pedidos por hora. Emordenar a execução de pedidos de purga enviando um único comando cujo predicado inclui todas as identidades do utilizador que requerem purga. Utilize o operador para especificar várias identidades. Execute a consulta antes de executar o pedido de purga para verificar os resultados esperados.

Dados de registo

  • A API de Purga de Espaço de Trabalho requer um objeto especificando parâmetros de dados para eliminar e devolver uma referência GUID.

  • A API do Status de Purga obtém um cabeçalho 'x-ms-status-location' que inclui um URL que pode ligar para determinar o estado da sua operação de purga. Por exemplo:

    x-ms-status-location: https://management.azure.com/subscriptions/[SubscriptionId]/resourceGroups/[ResourceGroupName]/providers/Microsoft.OperationalInsights/workspaces/[WorkspaceName]/operations/purge-[PurgeOperationId]?api-version=2015-03-20
    

Dados da aplicação

  • Os Componentes - Purga PÓS API requer um objeto especificando parâmetros de dados para eliminar e devolver um GUIADO DE Referência.

  • Os Componentes - Obter Estado de Purga GET API devolve um cabeçalho 'x-ms-status-location' que inclui um URL que pode ligar para determinar o estado da sua operação de purga. Por exemplo:

    x-ms-status-location: https://management.azure.com/subscriptions/[SubscriptionId]/resourceGroups/[ResourceGroupName]/providers/microsoft.insights/components/[ComponentName]/operations/purge-[PurgeOperationId]?api-version=2015-05-01
    

Passos seguintes