O Regulamento Geral de Proteção de Dados da UE (GDPR) e a implementação do DSGVO alemão são muito rigorosos quando se trata de dados relacionados a indivíduos (como endereços IP). No entanto, esta questão não é sobre o GDPR, mas como implementar o regulamento com o log de acesso HTTP nginx mantendo a possibilidade de "identificar" o usuário anônimo dentro de uma jornada de usuário (para delimitar uma jornada de usuário de outras).
Minha implementação atual é que eu não gravo o IP remoto e a porta. Limpei as variáveis de ambiente para upstreams/proxies/etc e simples não tem IP remoto e informações de porta com os logs de acesso.
Agora estou enfrentando o problema de que preciso seguir um caminho de uma jornada do usuário. Simplesmente não tenho como "identificar" quais solicitações estão dentro de qual jornada do usuário. Quero salientar, que também não uso cookies, etc.
A abordagem herdada para "identificar" um "usuário anônimo" é procurar o IP remoto e as informações de data. No mesmo dia, o mesmo IP remoto provavelmente seria o mesmo usuário. No entanto, como mencionado acima, não registro informações remotas de IP e porta. E eu não quero isso mesmo agora.
Meu atual é fazer o hash do endereço IP remoto com a porta remota e a data da solicitação. Eu teria as informações de data com os logs, mas não a porta remota, então não posso - sem força bruta pesada - recuperar o IP remoto, um dado relacionado ao indivíduo. Essa abordagem ajudaria a devolver algum nível de identificação da jornada do usuário , o que me ajudaria bastante.
Um fluxo de trabalho geral para realizar essa abordagem seria:
- A solicitação é aceita pelo nginx,
- O nginx realiza uma operação de hash com IP remoto, porta remota e data atual (eg
md5_hex("$remote_addr $remote_port $current_date")
) e armazena o hash em uma nova variável (eg$remote_ip_anonymous
), - o log_format teria a variável $remote_ip_anonymous.
O hash seria alterado, mesmo quando o IP remoto e a porta remota fossem os mesmos, devido ao sal de data atual. E isso mudaria, quando a porta remota fosse alterada. Portanto, isso deve estar bem com o GDPR ou pelo menos a categoria de segurança de dados mais baixa, enquanto o IP remoto real seria uma categoria de segurança de dados principal com o GDPR.
Chega de teoria... como eu implementaria essa anonimização de IP remoto? Eu tenho que usar o módulo nginx Perl ou módulo Lua, ou existe outra maneira (mais rápida) de obter esse hash e armazená-lo na variável nginx?
O Regulamento Geral de Proteção de Dados da UE (GDPR) trata da "proteção de pessoas físicas no que diz respeito ao processamento de dados pessoais e regras relacionadas à livre circulação de dados pessoais". Não se trata de como sabotar os sistemas de TI. A melhor abordagem é se acalmar e ver o que está certo e o que não está certo em relação à proteção de dados pessoais.
É tecnicamente essencial que um servidor web processe um endereço IP de um navegador/cliente. Sem essa capacidade, um servidor web não seria capaz de enviar uma resposta de volta ao navegador/cliente.
Evitar o processamento de dados pessoais não é uma opção . (Na verdade, existem opções. Por exemplo, o navegador TOR ou usar um proxy de anonimização seria uma opção. Mas isso deve ser feito pelo cliente.)
Em relação ao seu servidor web e uma configuração de reclamação GDPR, você deve:
No entanto, existe uma maneira adequada de anonimizar o log de IP no Nginx . Eu não recomendaria, mas funciona.
Como excluir arquivos de log após 7 dias:
Com o log-rotation do serviço instalado, você deve alterar o arquivo de configuração do Nginx da seguinte maneira ...