B2B SaaS에서 고객 데이터 내보내기는 편리한 기능이지만 권한 범위가 넓어질수록 큰 유출 경로가 됩니다. 조회 화면에서 볼 수 있는 데이터와 대량 추출 파일로 받을 수 있는 데이터는 영향이 다릅니다. 내보내기 전후의 통제를 별도로 설계해야 합니다.
누가 무엇을 내보낼 수 있는지 정한다
테넌트 관리자라도 모든 개인 정보와 첨부 파일을 무제한 받을 필요는 없습니다. 역할별 허용 데이터, 기간, 건수, 파일 형식을 정의하고 요청마다 현재 테넌트 문맥을 재검사합니다. 클라이언트가 보낸 tenant_id만 신뢰하지 않습니다.
큰 요청에는 승인과 사유를 붙인다
대량 고객 데이터나 민감 필드가 포함되면 다운로드 생성 전 승인이나 추가 인증을 요구할 수 있습니다. 요청자, 승인자, 범위, 사유를 남기고 승인 후 범위가 바뀌면 다시 확인합니다. 승인 화면에는 파일에 포함될 필드를 보여 줍니다.
파일 생성과 다운로드를 분리한다
내보내기는 백그라운드 작업이 될 수 있습니다. 작업 큐에도 테넌트 문맥을 안전하게 전달하고 생성된 파일은 짧은 만료시간과 접근 제한을 둡니다. URL을 아는 누구나 다운로드할 수 있는 공개 저장소는 피합니다.
민감값을 최소화한다
기본 파일에는 꼭 필요한 필드만 포함하고, 개인 정보나 내부 식별자는 별도 옵션으로 둡니다. CSV 수식 주입 같은 파일 소비 측 위험도 고려해 내보내기 값을 안전하게 인코딩합니다. 파일 보존 기간이 끝나면 정해진 절차로 제거합니다.
사후 추적을 가능하게 한다
요청, 승인, 생성, 다운로드, 실패, 만료를 하나의 작업 ID로 연결합니다. 비정상적으로 잦은 내보내기와 범위 확대를 감시합니다. 고객 문의가 오면 어떤 시점에 어떤 범위의 파일이 생성됐는지 설명할 수 있어야 합니다.
현장에 적용할 때의 순서
- 역할·필드·기간 범위 정의
- 민감 추출에 승인·만료 적용
- 생성·다운로드 감사 연결
주의할 실패: 공개 URL로 파일 제공
관찰할 지표: 대량 반출·권한 오류 건수
적용 전 체크리스트
- 내보내기 범위와 역할 권한이 분리됐는가
- 파일 URL·만료·테넌트 문맥을 검증하는가
- 요청부터 다운로드까지 감사 이력이 이어지는가
참고 자료
AWS SaaS Tenant Isolation Strategies. 테넌트 경계를 모든 데이터 접근에 강제해야 한다는 원칙을 참고했습니다. 내보내기 승인과 파일 정책은 서비스 위험에 맞춰 설계해야 합니다.
이미지와 도식은 이해를 돕기 위한 개념 시각화입니다. 특정 고객의 실제 설비·데이터·화면을 재현한 것이 아닙니다.
#SaaS보안 #데이터내보내기 #테넌트격리 #접근제어 #개인정보보호 #CSV보안 #감사로그 #B2BSaaS #파일다운로드 #데이터거버넌스