아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
NHN클라우드 faviconNHN클라우드

멀티 테넌트 환경, 데이터 격리 어떻게 할까?

by DD
2024-10-21
1년 전
조회수 8

테넌트 데이터 격리는 행, 테이블, 데이터베이스 단위로 구분되며, 각 방식의 장단점 존재

행 단위 격리의 단점을 보완하기 위해 테넌트 ID 강제화를 위한 쿼리 검증 방법 제시

테넌트별 암호화를 통해 데이터 격리 실패 시에도 데이터 노출 리스크 최소화 가능

테넌트 데이터 격리 수준 비교

테넌트 데이터 격리는 행, 테이블, 데이터베이스 단위로 구분되며, 각 방식은 비용 절감과 보안 강화 사이의 트레이드오프를 가진다. 구체적으로, 행 단위 격리는 비용 효율적이지만, 보안 취약점에 노출될 수 있다. 따라서 서비스 요구사항에 맞는 격리 수준 선택이 중요하다.

JDBC DataSource Wrapper를 이용한 테넌트 ID 강제화

Spring 환경에서 JDBC DataSource Wrapper를 구현하여 쿼리에 tenant_id를 강제하는 방법을 제시한다. 따라서 PreparedStatement Wrapper를 통해 쿼리 검증을 수행하고, BeanPostProcessor를 활용하여 DataSource를 감싼다. 결과적으로, SQL Injection 공격을 방어하고 데이터 무결성을 확보한다.

테넌트별 암호화를 통한 데이터 보호

멀티 테넌트 환경에서 데이터 격리 실패 시, 테넌트별 암호화는 데이터 유출 리스크를 최소화하는 효과적인 방법이다. 구체적으로, 각 테넌트에 고유한 암호화 키를 부여하여 데이터를 보호한다. 반면, 키 관리 서비스를 활용하면 보안을 강화할 수 있지만, 성능 저하를 고려해야 한다.

멀티 테넌트 데이터를 격리하고 더 안전하게 만드는 방법
중급
아키텍처
JDBC
Spring
Apache ShardingSphere
Java
Backend
Data
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

Spring Boot 4.1 출시 후 최신 Spring 생태계 소식 모음!

스프링 로고

Spring JDBC 컨버터, 왜 안 될까? 래퍼 클래스로 해결!

네이버 페이 로고

Spring Tools 5.2.0 출시! Claude Code 플러그인 등 신기능 확인

스프링 로고

Java/Spring 코드로 Knowledge Graph 기반 RAG 시스템 구축하기

AWS 로고

SK플래닛, 개발자 성장을 위한 AI 교육 및 기술 블로그 활용 사례 공개!

SK플래닛 로고

컬리 개발자의 성장기: 면접, DDD, 팀워크, 그리고 성장!

컬리 로고
NHN클라우드 faviconNHN클라우드
중급
아키텍처
JDBC
Spring
Apache ShardingSphere
Java
Backend
Data

관련 추천 글

Spring Boot 4.1 출시 후 최신 Spring 생태계 소식 모음!

스프링 로고

Spring JDBC 컨버터, 왜 안 될까? 래퍼 클래스로 해결!

네이버 페이 로고

Spring Tools 5.2.0 출시! Claude Code 플러그인 등 신기능 확인

스프링 로고