안녕하세요,
사용자를 익명화한 후에도 admin/logs/staff_action_logs에서 새로운 "익명화"된 무작위 사용자 이름에 연결된 이전 사용자 이름과 이메일을 여전히 볼 수 있어 이상하게 느껴졌습니다. 이는 진정한 익명화라고 보기 어렵고, 이러한 데이터를 로그에 영구적으로 보관하는 것은 EU GDPR 법을 위반하는 것일 수 있습니다.
또한 이러한 작업의 로그를 유지하는 데는 큰 이점이 없어 보입니다. 이 로그를 영구적으로 삭제하는 방법을 알려 주실 수 있을까요? 또한 Discourse 로그를 주기적으로 정리하고 로깅 정책을 어떻게 제한할 수 있는지 여부도 궁금합니다.
미리 감사드립니다.
안녕하세요,
이 문제가 다시 발생하지 않도록 설정인 log anonymizer details의 선택을 해제해야 합니다. GDPR을 준수하려면 이 기능을 꺼야 합니다.
다만, 로그에서 이 항목을 제거하는 것에 대해서는 확실하지 않습니다.
온드레이, 빠른 답변 감사합니다.
해당 옵션을 비활성화했지만, 이미 기록된 동작들은 여전히 표시되고 있습니다. 로그를 삭제하는 방법은 무엇인가요?
앞서 언급한 설정을 활성화한 후 오래된 행을 제거하려면, 먼저 rails 콘솔을 통해 관련 사용자 기록 행을 검사하세요:
UserHistory.where(action: 24)
위 명령이 로그에 더 이상 사용자 데이터가 연결되어 있지 않아야 하는 모든 행을 포함하고 있는지 확인한 후, rails 콘솔에서 다음을 실행하세요:
UserHistory.where(action: 24).update_all(details: nil, email: nil)
(개인 데이터는 "details"와 “email” 필드에 포함되어 있으며, 위 명령을 통해 삭제됩니다. GDPR 준수에는 행 삭제가 필수적이지 않지만, 삭제를 원한다면 delete_all을 사용하세요.)
이 명령을 실행하는 것은 본인의 책임이며, 대규모 데이터베이스 명령을 실행하기 전에 백업을 만들어 두시기 바랍니다.
위 명령을 실행한 후, 여전히 값이 남아 있는 죽은 튜플(dead tuples)이 실제로 삭제되도록 postgresql에서 vacuum을 트리거하는 것도 좋습니다.
Hooksmith님, 제안해 주신 방법으로 해결되었습니다. 하지만 가끔씩 아래 코드를 실행하지 못할 이유가 없다고 생각합니다:
UserHistory.delete_all
아마도 매주 실행할 수 있도록 스크립트를 작성해 볼 것 같습니다.
건강하세요
Heliosurge
(Dan DeMontmorency)
8월 8, 2021, 11:46오전
6
그날 밤이 더 나은 방법입니다. 때로는 스태프의 잘못된 판단으로 인해 익명 처리된 행동을 되돌려야 했기 때문입니다. 완벽하지는 않지만, 관리자로서 익명화된 사용자를 복원하는 방법을 찾아냈습니다.
simon
8월 9, 2021, 11:39오후
7
이 테이블은 사이트의 스태프 활동 로그를 채우는 데 사용되는 데이터를 제공합니다. 사이트의 스태프 구성원들의 이력을 그대로 유지하는 것이 유용합니다. 적어도 스태프 구성원에 의해 설정이 변경된 것과 관련된 사이트 문제를 디버깅하는 데 도움이 됩니다.