청크 수준 데이터 파티셔닝으로 안전한 RAG 워크플로 구축하기
벡터 데이터베이스는 AI 기반 애플리케이션, 특히 RAG(검색 증강 생성)를 구동하는 핵심 요소가 되었으며, 방대한 고차원 데이터셋 전반에서 빠르고 효율적인 유사도 검색을 가능하게 합니다. 이러한 데이터베이스가 수십억 개의 벡터를 수용할 수 있도록 확장됨에 따라 효과적인 파티셔닝이 중요해집니다. 데이터를 논리적 세그먼트로 구성함으로써 파티셔닝은 쿼리 성능을 향상시키고, 확장성을 지원하며, 다중 사용자 환경에서 테넌트별 격리를 통해 안전한 데이터 관리를 보장합니다.
Milvus 및 Zilliz Cloud(관리형 Milvus)와 같은 최신 벡터 데이터베이스는 엔터프라이즈 애플리케이션의 요구를 충족하기 위해 고급 파티셔닝 기능을 도입했습니다. 그러나 파티션 수가 증가할수록 이를 효과적으로 관리하는 복잡성도 커집니다. 이제 기업들은 AI 워크플로와 원활하게 통합되면서 파티셔닝을 확장할 수 있는 개인정보 보호 우선 솔루션을 찾고 있습니다.
Zilliz가 주최한 최근 South Bay Unstructured Data Meetup에서 Caber Systems의 CEO이자 공동 창립자인 Rob Quiros는 사용자별, 청크별 액세스 정책을 사용하여 벡터 데이터베이스를 파티셔닝하는 혁신적인 접근 방식을 공유했습니다. 그는 권한과 인증을 파티션에 통합하는 것이 어떻게 청크 수준에서 데이터를 보호하고 개인정보 보호 우려를 해결할 수 있는지 자세히 설명했습니다. 이 블로그에서는 그의 인사이트를 요약하고 Caber Systems가 강력한 개인정보 중심 데이터 관리를 달성하기 위해 Milvus 벡터 데이터베이스를 어떻게 활용하는지 살펴봅니다. 자세한 내용은 YouTube에서 그의 발표 전체 다시보기를 시청하세요.
벡터 데이터베이스의 액세스 제어 과제
Milvus,와 같은 최신 벡터 데이터베이스는 멀티 테넌시를 효과적으로 지원하여, 서로 다른 고객 데이터셋을 별도로 저장하고 관리할 수 있게 합니다. 이 기능은 한 테넌트의 데이터가 격리되어 다른 테넌트가 접근할 수 없도록 보장하며, 안전하고 체계적인 데이터 관리를 위한 견고한 기반을 형성합니다. 그러나 이러한 분리는 전반적인 데이터 격리에는 잘 부합하지만, 이러한 데이터셋 내에서 세분화된 사용자별 액세스 제어를 구현하는 것은 더 어렵습니다. 이는 기업이 요구하는 액세스 제어 모드가 다양하기 때문입니다.
그중 일부는 다음과 같습니다:
역할 기반 액세스 제어(RBAC) - 사전 정의된 역할을 기반으로 권한을 할당하지만, 복잡하고 동적인 요구 사항을 처리하는 데 어려움이 있습니다.
속성 기반 액세스 제어(ABAC) - 사용자 역할, 데이터 민감도 또는 지리적 위치와 같은 속성을 사용하지만, 강력한 정책 관리 시스템이 필요합니다.
관계 기반 액세스 제어(ReBAC) - 부서 또는 팀 간의 관계를 기반으로 액세스를 제공하며, 시행 메커니즘에 복잡성을 더합니다.
또한 이러한 액세스 제어를 제공하고 관리하는 것은 행정적 악몽이 될 수 있습니다. 권한 할당부터 액세스 요청 또는 분쟁 처리에 이르기까지 운영 오버헤드 또한 지원 팀을 압도할 수 있습니다. 아래 Permit.io의 그림은 ReBAC 제어의 예를 보여줍니다. 이는 진행 중인 세션 동안에만 유효한 특정 데이터 청크에 액세스하기 위한 복잡한 프로세스를 설명합니다.
그림: ReBAC 제어의 예
그림: ReBAC 제어의 예
데이터 접근에서 에이전트의 역할
RAG 시스템에서 사용자를 대신해 작동하는 agents는 벡터 데이터베이스에 쿼리하고 정보를 검색합니다. 이들은 작업을 자동화하여 효율성을 향상시키지만, 중대한 보안 과제를 야기합니다. 에이전트는 사용자 작업의 프록시로 작동하므로 데이터 접근 중 사용자 권한을 상속받습니다. 그러나 이 메커니즘은 공격에 취약합니다:
에이전트 스푸핑: 악의적인 행위자가 에이전트를 사칭하여 사용자 자격 증명을 악용하고 민감한 데이터에 접근할 수 있습니다.
데이터 유출: 에이전트의 세션이 손상되면 방대한 양의 데이터에 대한 무단 접근을 허용할 수 있습니다.
그림: Agentic RAG의 보안 문제
그림: Agentic RAG의 보안 문제
이러한 위험을 완화하기 위해 조직은 엄격한 조치를 도입해야 합니다:
인증: 신원을 확인하고 스푸핑을 방지하기 위한 강력한 에이전트 인증.
세션 관리: Reback이 시연한 것처럼 에이전트 세션을 사전 정의된 기간으로 제한.
로깅 및 모니터링: 에이전트 활동을 추적하고 이상 징후를 감지하기 위한 포괄적인 감사 추적.
이러한 조치를 취하면 공격에 대응하는 데 도움이 될 수 있지만, 이를 모두 구현하는 것은 매우 번거로워집니다.
데이터 중복 - 기업에 중대한 과제
데이터 중복은 기업 환경에서 지속적인 문제입니다. 문서는 복사-붙여넣기, 파일 공유 또는 버전 관리를 통해 여러 차례 반복되는 경우가 많아 벡터 데이터베이스에 중복 청크가 저장됩니다. 이러한 중복은 저장소 오버헤드를 증가시키고 LLM의 일반화 가능성을 저하시킵니다. Rob은 Riverbed에서 데이터 중복 제거를 수행했던 이전 경험을 언급하며, 당시 데이터의 90-95%가 중복이어서 제거해야 했다고 말합니다.
그림: 데이터 중복은 권한 설정에서 큰 과제입니다
그림: 데이터 중복은 권한 설정에서 큰 과제입니다
권한을 포함한 메타데이터가 문서에서 벡터 데이터베이스의 청크로 직접 복사될 때 주요한 복잡성이 발생합니다. 서로 다른 권한을 가진 여러 문서에 중복 청크가 존재하는 경우, 메타데이터가 덮어써져 충돌이나 부적절한 접근 제어가 발생할 수 있습니다. 따라서 데이터 보안과 규정 준수를 보장하려면 청크 수준에서 권한을 해결하는 것이 중요합니다.
아래는 Apple 10-Q 보고서의 예로, 두 문서의 상용 문구가 공통적이며 버전 간 차이가 최소한임을 볼 수 있습니다. 따라서 여기서 목표는 데이터 청크의 출처와 관련 권한을 식별하고 추적하여 올바른 접근 규칙을 일관되게 적용할 수 있도록 하는 것입니다.
그림: Apple의 10Q 공시에서 유사한 문서의 예
청크 수준에서 데이터 보호
이러한 문제를 해결하기 위해 Caber는 청크 수준에서 데이터를 보호하는 솔루션을 제안했습니다. 이는 벡터 데이터베이스에 수집된 문서를 살펴보고, 청크와 그 출처 간의 관계를 매핑하기 위해 별도의 인덱스를 구축함으로써 수행됩니다. 이 계보 그래프는 각 청크의 출처와 관련 권한에 대한 가시성을 제공하여 권한의 결정론적 할당을 가능하게 합니다.
그림- 청크 수준에서 데이터를 보호하기 위한 Caber의 접근 방식
그림: 청크 수준에서 데이터를 보호하기 위한 Caber의 접근 방식 (출처)
Apple의 10Q 공시를 활용한 예시 계보 그래프
Apple의 예시를 이어서, 아래 그래프에는 Apple의 10-Q 공시 여러 버전에서 가져온 데이터 청크가 포함되어 있습니다. 그래프의 빨간색 노드는 모든 문서에 공통으로 존재하는 데이터 청크를 나타냅니다. 정책을 사용하여 이러한 각 청크에 대한 권한이 결정됩니다. 그런 다음 벡터 데이터베이스에서 데이터를 검색하는 동안 이러한 권한을 확인하여 사용자가 해당 청크에 접근할 수 있는 적절한 권한을 가지고 있는지 보장합니다.
그림: Caber를 사용한 권한별 각 청크 계보의 동적 매핑
Apple의 10Q 공시를 활용한 예시 RAG 데모
처음에는 데이터가 권한 메타데이터 없이 Milvus와 같은 벡터 데이터베이스에 저장됩니다. 데이터가 RAG에서 나오면, SDK를 통한 Caber의 워크플로 통합을 통해 이 데이터를 LLM에 전달하기 전에 세분화된 수준에서 필터링하고 수정할 수 있습니다. 예를 들어, 그림은 두 명의 서로 다른 사용자에 대한 접근 권한 부여를 보여줍니다. 회사의 CFO인 Amy는 2023년 및 2024년 10Q 보고서의 모든 데이터 청크에 접근할 권한이 있습니다. 반면 또 다른 사용자인 Bob은 동일한 접근이 제한되어 일반적인 답변을 받습니다.
그림: 두 사용자에 대한 서로 다른 접근 권한을 보여주는 RAG 예시
Caber의 LLM 워크플로 통합 및 기능
그림: Caber는 LLM 워크플로와 통합됩니다
Caber는 SDK를 사용하여 LLM 워크플로와 통합될 수 있으며, 원활한 접근 제어 관리를 가능하게 합니다. ID 커넥터를 통해 시스템은 사용자 인증 정보를 가져오는 반면, 다른 커넥터는 데이터 청크와 해당 권한의 인덱스를 구축하는 데 도움을 줍니다. 예를 들어, 사용자가 시스템과 상호작용할 때 에이전트는 프롬프트를 벡터 데이터베이스로 전달합니다. 그런 다음 RAG 응답은 최종 답변을 제공하는 LLM으로 전송됩니다. 이 과정에서 데이터는 그 흐름을 기반으로 추적되며 모든 연결은 해당 특정 사용자에게 귀속됩니다.
여기서 벡터 데이터베이스로 Milvus를 사용하면 동적 파티셔닝과 멀티테넌시를 지원하는 데 도움이 되어, 청크별 접근 제어가 필요한 개인정보 보호 중심 애플리케이션에 이상적입니다. HNSW 인덱싱과 같은 기능을 통해 수십억 개의 벡터에 걸쳐 고속 쿼리를 보장합니다.
책임성 및 감사 가능성
Caber가 제공하는 추적 가능성은 중요한 책임성과 감사 기능을 제공합니다. 특히 LLM이 사용자를 대신해 자율적으로 행동하는 Agentic AI가 관련된 복잡한 시나리오에서는, 행동이 상당히 예측 불가능하기 때문에 문제가 발생할 가능성이 높습니다(예: 민감한 데이터 유출). 여기서는 데이터가 다양한 API 및 객체 호출을 통해 어떻게 이동했는지에 대한 지식이 시스템이 정확히 어느 단계에서 실패했는지 알아내는 데 필수적입니다.
그림: 책임성 및 감사 가능성
애플리케이션 흐름의 상세한 관측 가능성
Caber는 또한 애플리케이션 흐름에 대한 상세한 관측 가능성을 통해 애플리케이션 도구의 분석 및 디버깅을 가능하게 합니다. 사용자의 데이터가 언제 어떤 서비스에 의해 접근되었는지 추적할 수 있는 능력은 조직이 애플리케이션의 데이터 파이프라인 내 병목 현상, 비효율성 및 보안 위험을 더 잘 식별할 수 있도록 합니다.
그림: 애플리케이션 흐름의 관측 가능성
정책에 대한 데이터 컴플라이언스 요구사항
위에서 얻은 인사이트는 보안 정책을 개선하고 격차를 사전에 해결하기 위해 LLM에 다시 반영될 수 있습니다. 이 프레임워크는 접근 제어, 감사 가능성, 개선 조치 및 분석을 지원하여 규정 준수를 보장하고 시스템 복원력을 향상시킵니다.
데이터 규정 준수 요구사항에서 정책으로.png
데이터 규정 준수 요구사항에서 정책으로 (출처)
결론
LLM 애플리케이션의 사용 사례가 증가함에 따라 더 많은 기업이 작업을 수행하기 위해 RAG에 의존하고 있습니다. 따라서 세분화된 수준에서 데이터 접근을 보호하고 관리하는 것이 매우 중요해지고 있습니다. Milvus의 고급 파티셔닝 및 검색 기능과 결합된 Caber와 같은 솔루션은 데이터 중복과 데이터의 안전한 사용을 위한 접근 제어 설정과 같은 과제를 해결하는 데 이상적인 프레임워크를 제공합니다.
관련 자료
계속 읽기

How to Choose the Best Embedding Model for RAG in 2026: 10 Models Benchmarked
We benchmarked 10 embedding models on cross-modal, cross-lingual, long-document, and dimension compression tasks. See which one fits your RAG pipeline.

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

VidTok: Rethinking Video Processing with Compact Tokenization
VidTok tokenizes videos to reduce redundancy while preserving spatial and temporal details for efficient processing.


