Skip to content

[feedback/security] 개인정보 필드 암호화와 키 버전 관리 #216

Description

@hywznn

배경

  • 여권번호와 외국인등록번호를 포함한 OCR 결과는 이미 AES-256-GCM 암호문과 키 버전으로 저장됩니다.
  • 계정 연락처는 user_account.phone 평문 컬럼에 남아 있어 동일한 보호 수준이 필요합니다.
  • 배포 환경은 server-env Kubernetes Secret을 사용하지만 PII 전용 키와 키 교체 정책은 없습니다.

작업 범위

  • PII 전용 AES-256-GCM 키링과 현재 키 버전 설정
  • 계정 연락처 암호문·키 버전 컬럼 추가
  • 신규·수정 연락처의 암호문 저장과 조회 시 복호화
  • 기존 평문 연락처의 멱등 백필 도구
  • 평문과 암호문 동시 저장 방지 제약
  • 키 오설정·변조·다른 계정 AAD 사용 시 실패 테스트
  • Kubernetes Secret 환경변수 운영 가이드

제외 범위

  • KMS·Secrets Manager 직접 연동
  • 파일 바이너리 암호화
  • 이메일 검색 컬럼 암호화
  • OCR 결과 암호화 구조 변경

완료 기준

  • 암호화 활성화 시 DB에 연락처 평문이 남지 않음
  • 기존 평문 데이터가 재실행 가능한 백필로 암호화됨
  • 이전 키를 유지한 상태에서 키 버전 교체 가능
  • 전체 테스트와 PostgreSQL RLS 검증 통과

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P1핵심 작업 다음으로 처리할 중요 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업status:in-progress담당자가 현재 구현 중인 작업type:security

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions