EUの一般データ保護規則(GDPR)とドイツのDSGVOの実装は、個人関連データ(IPアドレスなど)に関しては非常に厳格です。ただし、この質問はGDPRについてではありませんが、nginx HTTPアクセスログを使用して規制を実装しながら、匿名ユーザーを「特定」する可能性を維持する方法ユーザージャーニー(ユーザージャーニーと他のジャーニーとの境界)。
現在の実装では、リモートIPとポートをまったく記録していません。アップストリーム/プロキシ/ etcの環境変数を削除しましたが、simpleにはリモートIPおよびアクセスログのポート情報がありません。
ユーザージャーニーのパスをたどる必要があるという問題に直面しています。私は単に、どの要求がどのユーザージャーニーの範囲内にあるかを「識別する」方法がないだけです。クッキーなども使わないことを指摘したい。
「匿名ユーザー」を「識別する」ための従来のアプローチは、リモートIPと日付情報を探すことです。同じ日に、同じリモートIPが同じユーザーである可能性が最も高くなります。ただし、上記のように、リモートIPおよびポート情報はログに記録しません。そして今でもそれは欲しくない。
私の現在のところは、リモートIPアドレスをリモートポートとリクエストの日付でハッシュすることです。ログには日付情報が含まれますが、リモートポートは含まれません。そのため、強力なブルートフォースがなければ、個人に関連するデータであるリモートIPを復元できません。このアプローチは、someレベルのユーザージャーニー識別を返すのに役立ちます。それは私にかなり役立ちます。
このアプローチを実現するための一般的なワークフローは次のとおりです。
md5_hex("$remote_addr $remote_port $current_date")
)を使用してハッシュ演算を実行し、新しい変数(例:$remote_ip_anonymous
)、現在の日付ソルトが原因で、リモートIPとリモートポートが同じであっても、ハッシュは変更されます。また、リモートポートが変更されると、変更されます。したがって、これはGDPRまたは少なくとも最低のデータセキュリティカテゴリでは問題ないはずですが、実際のリモートIPはGDPRの市長のデータセキュリティカテゴリです。
理論は十分です... このようなリモートIP匿名化をどのように実装しますか? nginx PerlモジュールまたはLuaモジュールを使用する必要がありますか、それともそのハッシュを取得して保存する別の(より速い)方法がありますか?それをnginx変数に入れますか?
EUの一般データ保護規則(GDPR)は、「個人データの処理に関する個人の保護と個人データの自由な移動に関連する規則」に関するものです。 ITシステムを妨害する方法についてではありません。最善の方法は、落ち着いて、OKを確認することです。そして、OKではありません。個人データ保護に関して。
Webサーバーがブラウザ/クライアントのIPアドレスを処理することは技術的に重要です。この機能がないと、Webサーバーはブラウザー/クライアントに応答を返すことができません。
個人データの処理を回避することはできません。 (実際にはもちろんオプションがあります。たとえば、TORブラウザや匿名化プロキシの使用はオプションですが、これはクライアントが行う必要があります。)
WebサーバーとGDPR準拠の設定に関して、次のことを行う必要があります:
ただし、 Nginx でIPロギングを匿名化する適切な方法があります。私はそれをお勧めしませんが、それは動作します。
7日後にログファイルを削除する方法:
インストールされたサービスログローテーションでは、次のようにNginx設定ファイルを変更する必要があります...
vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}