
GDPR のプライバシー問題で証拠として使用されるログがいくつかあります。アプリケーションは個人データを処理し、誰が何にそれを使用しているかを記録します。不正使用の調査が進行中でない限り、ログは誰にも読み取られるべきではありません。
毎日ローテーションされるこれらのログを、安全に暗号化された方法 (ローカル) で保存するにはどうすればよいでしょうか? ルート crontab ジョブを考えていますが、パスワードはプレーン テキストであってはなりません。あらゆる提案をいただければ幸いです。
$ ls -ltrh
-rw-r----- 1 appuser appuser 83K May 27 23:55 gdpr.log.2018-05-27
-rw-r----- 1 appuser appuser 905K May 28 23:55 gdpr.log.2018-05-28
-rw-r----- 1 appuser appuser 3.0M May 29 23:40 gdpr.log.2018-05-29
-rw-r----- 1 appuser appuser 462K May 30 09:49 gdpr.log
答え1
サーバー上にある公開キーを使用してファイルを暗号化できます。このファイルは、サーバー上にない秘密キーを使用してのみ復号化できます。この方法により、サーバーが侵害された場合でも、暗号化されたログは安全です。
例:
作業用のディレクトリを作成し、新しい公開鍵と秘密鍵のペアを作成します。
$ mkdir /tmp/1
$ cd /tmp/1
$ ssh-keygen -f key
$ ls
key
key.pub
公開鍵を次のpem
形式に変換します:
$ openssl rsa -in key -pubout > key.pub.pem
file
次の内容のというテスト ファイルを作成しますhello
。
$ echo hello > file
公開鍵形式を使用してファイルを暗号化しpem
、出力を次のファイルに書き込みますencrypted
:
$ cat file | openssl rsautl -encrypt -pubin -inkey key.pub.pem > encrypted_file
秘密鍵を使用してファイルを復号化します。
$ cat encrypted_file | openssl rsautl -decrypt -inkey key
hello
当然、秘密鍵をサーバーから移動し、暗号化コマンドを cronjob に入れる必要があります。次のようなものです:
for file in /var/log/dir/*;do
cat "${file}" | openssl rsautl -encrypt -pubin -inkey /path/to/key.pub.pem > "${file}.encrypted" && rm "${file}"
done
答え2
このテーマに少しでも精通している人なら、解決策の現実的な枠組みを確立するために100の質問をすることができるだろう。とはいえ、フルディスク暗号化を検討したことがありますか?それは本当に、本当にあらゆる種類の自動化や手順を構築するオーバーヘッドと比較すると単純であり、リモート ルート化されていない限り、責任をカバーするのにおそらく十分です (私は弁護士ではありません)。