SaaS 테넌트 격리는 고객이 자기 조직에 허용된 기록과 작업에만 접근할 수 있음을 의미합니다. 인터페이스의 테넌트 선택기만으로는 충분하지 않습니다. 요청, 백그라운드 작업, 캐시, 파일 다운로드가 기반 시스템에 도달할 때도 경계가 유지되어야 합니다.

별도 조직, 일반 사용자 역할, 의도적인 경계 넘기 시도로 테넌트 격리를 테스트하세요. 같은 접근 규칙에 따라 읽기, 쓰기, 파일, 캐시 응답, 백그라운드 작업을 확인합니다. 민감하거나 상업적으로 중요한 기록을 가진 고객을 온보딩하기 전에 실제 강제되는 백엔드 경계의 증거를 요구하세요.

각 조직이 자기 구매 주문을 보는 고객 포털을 생각해 보세요. 목록 화면은 올바르지만 다운로드한 내보내기에 다른 조직의 행이 포함됩니다. 로그인과 일반 페이지가 의도대로 작동해도 이는 격리 실패입니다.

이 안내는 책임자가 검증과 개선 범위를 정하도록 돕습니다. 특정 데이터베이스 구조가 보안을 보장하거나 체크리스트가 완전한 앱 평가를 대체한다는 주장이 아닙니다.

저장 방식을 고르기 전에 SaaS 테넌트 격리 정의

제품에서 테넌트가 무엇인지 식별하세요. 고객 조직, 법인, 작업 공간일 수 있습니다. 사용자 가입, 탈퇴, 테넌트 전환 방법과 여러 테넌트에 걸쳐 행동할 지원 역할을 기록합니다. 규칙의 모호함은 테스트의 모호함이 됩니다.

OWASP 다중 테넌트 보안 지침 은 데이터베이스, 캐시, 저장소, 컴퓨팅 경계의 격리를 설명합니다. 클라이언트가 보낸 테넌트 선택자와 서버가 검증한 권한도 구분합니다. 제품의 실제 요청 경로 평가에 이 구분을 사용하세요.

데이터 소유를 명확히 하세요. 공유 상품 목록은 여러 고객에게 의도적으로 보일 수 있지만 주문 메모는 테넌트 소유입니다. 의도적 공유를 결함으로 분류하지 않고 누출을 찾도록 테스트가 차이를 알아야 합니다.

관리 예외를 정리하세요. 지원 직원이 고객 기록을 검사할 수 있다면 누가 접근을 부여하고 범위를 제한하며 사용을 기록하는지 설명합니다. 강력한 지원 경로는 일반 모델 밖에 숨기지 말고 의도한 기능으로 테스트해야 합니다.

요청 전체에서 테넌트 맥락 추적

인증 사용자에서 시작해 현재 소속이나 서비스 권한을 검증하세요. 선택 테넌트를 업무 논리와 데이터 접근까지 추적합니다. 헤더, 경로 값, 요청 본문 변경으로 다른 조직의 권한을 대신할 수 없는지 확인하세요.

무작위처럼 보이는 식별자는 추측을 어렵게 할 뿐 권한을 만들지 않습니다. OWASP 권한 부여 지침 은 매 요청의 접근 검사를 권장합니다. 추측 가능성에 기대지 말고 다른 테넌트에서 합법적으로 얻은 식별자로 테스트하세요.

경계변경 시도 예시검수 결과
기록 조회다른 테넌트의 알려진 주문 식별자 요청기록 노출 없이 거부
갱신유효한 입력에 다른 테넌트 식별자 제출무단 수정 없음
테넌트 전환소속 없는 조직 선택서버가 요청 범위 거부
일괄 엔드포인트여러 테넌트 식별자 포함부분 누출 없는 정의된 거부
지원 작업일반 역할로 높은 권한 경로 사용거부와 유용한 조사 증거

검색, 내보내기, 대체 API에도 같은 판단을 반복하세요. 첫 상세 화면이 정확해도 일괄 보고서, 모바일 엔드포인트, 오래된 호환 경로가 같은 경계를 강제하는 증거는 아닙니다.

검증된 테넌트 권한 전달: 요청 주체 인증, 선택 테넌트 소속 검증, 각 데이터 경로의 경계 강제, 허용 결과만 반환하는 흐름.
무작위 식별자는 권한 부여 통제가 아닙니다. 원본 크기 도표 보기

실제 통제로 데이터베이스 방식 비교

별도 데이터베이스, 스키마, 공유 테이블은 서로 다른 운영상 절충을 만듭니다. 어느 것도 자격 증명, 역할, 쿼리, 관리 경로 검증을 없애지 않습니다. 제안서는 경계가 강제되는 위치와 앱 코드가 필터를 빠뜨렸을 때의 결과를 밝혀야 합니다.

방식검사할 경계포함할 운영 작업
별도 데이터베이스연결과 자격 증명 권한생성, 이전, 백업 분리
별도 스키마데이터베이스 역할과 이름 공간 선택권한, 이전 규율, 관리 접근
공유 테이블테넌트 소유와 강제 접근 정책쿼리 범위, 요청 역할, 부정 테스트
혼합데이터 종류별 문서 규칙명확한 라우팅과 일관된 사고 조사

모든 결함의 기본 수정으로 별도 데이터베이스 이전을 취급하지 마세요. 제한된 권한 버그는 집중 수리로 해결할 수 있습니다. 반대로 내보내기, 작업, 지원 도구가 무제한 접근을 사용한다면 컨트롤러 하나에 필터를 추가하는 것으로는 부족합니다.

운영 요청의 실제 역할 테스트

PostgreSQL 행 보안 문서 는 특권 역할과 테이블 소유 등의 중요한 예외를 설명합니다. 행 정책에 의존한다면 실제 제한된 요청 역할로 검증하세요. 데이터베이스 관리자 테스트는 일반 앱의 경계를 대표하지 않습니다.

배포와 이전 계정을 목록에 포함하세요. 합법적으로 더 넓은 접근이 필요할 수 있지만 고객 요청의 일반 신원이 되어서는 안 됩니다. 런타임의 의도한 권한 획득 방식과 배포 후 확인 방법을 문서화합니다.

캐시, 파일, 파생 출력 확인

캐시 키와 결과 범위를 검사하세요. 편리한 경로나 필터를 공유한다고 한 조직의 캐시 항목이 다른 조직의 답이 되어서는 안 됩니다. 첫 테넌트가 캐시를 채운 뒤 두 번째 테넌트를 테스트합니다.

파일에는 별도 검수 증거가 필요합니다. 업로드 소유, 미리보기 접근, 다운로드, 생성 보고서를 확인하세요. 페이지는 올바르게 거부하지만 첨부 URL은 무관한 경로에서 접근 가능할 수 있습니다. 오래되거나 이전에 발급된 링크도 범위에 포함합니다.

검색 색인, 추천, 분석 내보내기 같은 파생 데이터를 확인하세요. 삽입할 때뿐 아니라 조회할 때 테넌트 제한이 강제되는지 정합니다. 원본 기록 엔드포인트가 보호되어도 요약을 통해 정보가 경계를 넘을 수 있습니다.

서로 다른 조직의 통제된 테스트 데이터를 사용하세요. 실제 고객 문서를 복사하지 않고도 오염을 식별할 충분한 특징을 넣습니다. 예상 밖 캐시 적중이나 혼합 내보내기를 진단하기 쉬워집니다.

백그라운드 작업과 소속 변경 시험

백그라운드 작업은 검증된 테넌트 맥락을 큐와 작업까지 전달해야 합니다. 지연, 재시도, 다른 워커가 처리할 때를 확인하세요. 웹 요청의 유효 테넌트 범위는 나중 작업이 보존한다는 증거가 아닙니다.

소속 변경을 테스트하세요. 조직에서 제거된 사용자가 캐시 세션, 저장 내보내기, 대기 작업을 통해 합의 정책에 반하는 일반 접근을 유지해서는 안 됩니다. 철회 전 이미 수락된 업무의 의도한 행동을 정의합니다.

서로 다른 통제 테넌트와 역할로 경계 양쪽을 테스트하고 허용 작업과 다른 테넌트 접근을 확인한 뒤 결함과 정상 사례를 재검사합니다.
수리는 허용된 고객 업무를 보존해야 합니다. 강제 역할, 자원 종류, 제외 사항을 기록하세요. 원본 크기 도표 보기

지원 직원의 사용자 대행과 테넌트 삭제도 계획적으로 포함하세요. 높은 권한 세션에서 나오는 방법과 남은 파일, 작업, 참조 처리를 설명합니다. 삭제 정책은 제품의 보관 의무에 달려 있습니다. 평가에서 정책을 만들기보다 선택된 정책을 검증해야 합니다.

현재 팀이 경로를 설명하지 못한다면 우리의 소프트웨어 프로젝트 인수 안내 가 관련됩니다. 배포, 데이터 접근, 운영 문서의 관리권 회복도 유지 가능한 경계를 만드는 일부일 수 있습니다.

유용한 검증 보고서 지정

행위자, 테넌트, 작업, 관찰 효과를 보여 주는 발견을 요구하세요. 관련 요청과 대상 증거를 포함하고 민감 값은 적절히 통제합니다. 접근 통제라는 라벨만 있고 재현 경로가 없다면 수리와 재테스트가 어렵습니다.

OWASP ASVS 는 더 넓은 앱 보안 요구를 지원할 수 있습니다. 테넌트별 검수표를 함께 유지해 검토자가 시험한 조직, 역할, 자원 종류를 확인하도록 하세요.

확인된 결함과 미검사 경로를 구분하세요. 비공개 저장 서비스나 관리 내보내기를 조사하지 못했다면 밝힙니다. 정직한 범위 한계는 모든 테넌트 데이터가 격리된다는 근거 없는 결론보다 유용합니다.

개선 후 원래 실패 사례와 주변 정상 사례를 반복하세요. 모든 다운로드를 차단하면 누출은 멈춰도 제품이 망가질 수 있습니다. 검수에는 무단 접근 거부와 허용된 고객 업무 계속이 모두 필요합니다.

제품의 실제 경계 예산

페이지 수만이 아니라 자원 종류, 역할, 운영 경로로 평가를 정하세요. 외부 파일, 캐시, 백그라운드 작업, 지원 접근이 테넌트 정보를 드러낼 수 있으면 포함합니다. 작은 포털의 경계도 인터페이스보다 넓을 수 있습니다.

작업 묶음납품물명확히 할 가정
경계 정리테넌트와 역할 모델아키텍처 지식 사용 가능성
검증허용 및 거부 접근 증거통제 계정과 환경
개선수정된 강제 통제와 회귀 검사구조 변경 필요 여부
인계반복 가능한 테스트와 알려진 제외온보딩 후 책임

평가와 개선을 나눈 GBP 제안서를 요청하세요. 로그인 테스트나 자동 스캔만으로 보편적 보장을 받아들이지 마세요. 가치 있는 납품물은 고객이 의존할 접근 경계의 증거입니다.

우리의 애플리케이션 보안 서비스 가 범위 논의의 출발점입니다. 제품 테넌트 모델과 온보딩 결정을 보내 주세요 . 다음 고객 계정을 열기 전에 필요한 검증, 집중 수리, 증거를 논의할 수 있습니다.


자주 묻는 질문

SaaS 테넌트 격리란 무엇인가요? 고객 조직의 데이터와 허용 작업을 강제로 분리하는 것입니다. 제품의 관리 예외를 포함해 앱 요청, 저장, 캐시, 파일, 백그라운드 작업에서 경계를 유지해야 합니다.

별도 데이터베이스가 격리를 보장하나요? 아니요. 자격 증명, 라우팅, 지원 도구, 내보내기, 백업이 경계를 넘을 수 있습니다. 설계 일부일 수 있지만 실제 접근 경로는 테스트해야 합니다.

무작위 기록 식별자면 충분한가요? 아니요. 쉬운 열거를 줄이지만 권한 검사는 아닙니다. 다른 통제 테넌트의 실제 식별자로 접근을 시험하고 서버가 거부하는지 확인하세요.

거부와 함께 허용 접근도 테스트해야 하나요? 네. 모든 요청을 거부하는 개선은 제품 손상을 숨길 수 있습니다. 일반 사용자의 의도한 작업은 유지되고 다른 테넌트 접근은 거부되는지 검증하세요.

캐시에 별도 테스트가 필요한 이유는 무엇인가요? 원래 데이터 접근 경로를 반복하지 않고 데이터를 반환할 수 있기 때문입니다. 한 테넌트에서 채우고 다른 테넌트에서 결과를 살피세요. 편리한 키 공유가 아니라 의도한 권한을 캐시 범위가 유지하는지 확인합니다.

지원 접근은 어떻게 작동해야 하나요? 누가 획득하고 어떤 범위와 기간을 갖는지, 행동을 어떻게 기록하는지 정하세요. 높은 권한 맥락의 진입, 사용, 종료를 시험합니다. 예외를 명확하고 검토 가능하게 설계해야 합니다.

행 수준 보안을 사용한다면 어떻게 하나요? 앱의 실제 요청 역할로 테스트하고 일반 컨트롤러를 우회하는 작업을 포함하세요. 특권 데이터베이스 역할과 다른 경로는 다르게 작동할 수 있습니다. 행 정책은 검증할 통제이지 평가를 생략할 이유가 아닙니다.

견적 전에 공급업체에 무엇을 제공하나요? 테넌트와 역할, 자원 종류, 외부 저장, 백그라운드 작업 설명입니다. 테스트 가능한 환경과 통제 계정, 평가가 지원해야 하는 결정을 알려 주세요.