수집할 수 있는 문서와 답변에 쓸 수 있는 문서

검색 증강 생성(RAG)은 질문과 관련된 자료를 검색해 답변 생성에 제공하는 방식입니다. 자료가 검색 인덱스에 들어 있다는 사실과 질문자에게 그 자료를 제공해도 된다는 사실은 별개의 판단입니다. 수집기는 작업을 수행할 서비스 계정으로 공유 드라이브의 자료를 읽고, 사용자는 자신의 인증 정보로 질문합니다. 수집기에 부서 자료를 읽을 수 있게 했다는 이유로 사용자도 모든 부서 자료를 읽게 된다면 원본과 검색 서비스의 권한 경계가 어긋납니다.

문서 접근 제어 목록(ACL)은 어떤 사람과 그룹이 어떤 문서를 읽는지 표현합니다. 문서를 여러 문단으로 잘라 색인하는 시스템에서는 각 조각이 원본 문서 ID와 권한이 적용된 버전을 참조하게 합니다. 제목·파일명·미리보기·첨부에도 같은 범위를 적용합니다. 비공개 문서의 조각을 제거하고 제목을 남겨 두면 신규 채용 계획이나 미공개 계약 상대가 드러날 수 있습니다. 동일한 내용이 공개 문서와 제한 문서에 함께 있다면 검색에 실제로 사용한 문서 ID와 공개 근거를 남깁니다. 문구가 비슷하다는 사실만으로 비공개 버전의 참조를 허용할 수 없습니다.

검색 요청 서버는 신뢰하는 인증·권한 서비스에서 사용자와 소속을 확인한 뒤, 검색 엔진의 권한 필터나 동등한 경계를 통해 허용 집합을 적용합니다. 원본의 그룹 상속과 개별 예외를 어떻게 매핑할지, 자료원의 권한을 파싱하지 못했을 때 어떤 상태로 저장할지 정합니다. 권한을 확인할 수 없는 문서를 일반 검색에 포함하면 동기화 오류가 열람 허용으로 바뀝니다. 사용자 질문에 팀 이름이나 문서 ID를 적어도 서버의 권한 판정에는 영향을 주지 않게 합니다. 인덱스에서 검색된 후보는 모델 입력과 인용 링크를 만들기 전에 한 번 더 검증할 수 있습니다.

Microsoft의 Azure AI Search 공식 문서는 사용자·그룹 문자열을 인덱스에 넣고 조회 시 필터로 매칭하는 일반 제공 패턴과 원본 권한 메타데이터를 통합하는 프리뷰 패턴을 구분합니다. 같은 문서에 있는 ADLS Gen2의 ACL과 SharePoint의 ACL 예시는 서로 다른 자료원과 동기화 특성을 설명합니다. 실제 프로젝트에서는 사용하는 API와 자료원에 대한 공식 지원 범위, 동기화 지연, 인용을 다시 열 때의 인증을 따로 시험합니다. Microsoft Learn — Document-level access control in Azure AI Search[1]

권한표에는 사용자와 문서 분류를 함께 씁니다

가상의 조직에서 일반 운영 지침, 영업 견적, 인사 평가, 영업·인사 공동 프로젝트 자료를 색인한다고 가정합니다. 다음 표는 일부 역할의 조회 권한 예입니다. 테스트 계정에도 운영에 넣을 그룹 구조와 같은 형태를 사용하고 자료에는 고유한 가상 표식을 넣어 노출 여부를 구분합니다.

질문자 또는 계정사내 공통 지침영업 견적인사 평가제한 공동 프로젝트
재직 일반 직원허용거부거부거부
영업 담당, 공동 프로젝트 미참여허용허용거부거부
인사 담당, 평가 권한과 프로젝트 참여 부여허용거부할당 범위에 한해 허용초대 범위에 한해 허용
영업에서 인사로 이동, 평가 권한 미부여허용거부거부새 할당이 없으면 거부
퇴사 처리된 시험 계정거부거부거부거부
인덱싱 서비스 계정설정된 자료원에서 수집승인 자료원 수집승인 자료원 수집승인 자료원 수집

수집 계정 행의 “수집”은 대화 채널의 사용자 권한으로 사용할 수 없는 작업 권한입니다. 인사 부서에 소속돼도 평가 프로젝트의 모든 문서를 열어야 하는 것은 아닙니다. 필요하면 부서와 프로젝트, 개별 문서의 지정 수신자를 함께 적용합니다. 조직에 손님, 계약 종료 임박 계정, 중첩 그룹, 임시 승격, 교차 테넌트 권한이 있다면 각 상태의 허용과 거부 한 쌍을 확보합니다. 결정에 필요한 신원과 자료를 명시적으로 묶는 근거는 NIST SP 800-207 — Zero Trust Architecture[2]에서 확인할 수 있습니다.

여러 역할을 겸직하는 사람이 있을 때는 부서 이동과 별개로 유효한 프로젝트 권한이 남을 수 있습니다. 테스트의 기대 결과에 그 예외를 적습니다. 모든 영업 자료를 가리는 규칙을 넣느라 공동 프로젝트 자료까지 막으면 권한 회수는 성공처럼 보여도 업무 경로 하나가 끊어집니다. 반대로 상위 폴더에서 권한을 받는 문서가 이동한 뒤 이전 폴더의 권한을 계속 갖고 있다면 소속을 바꾸는 시험만으로는 발견하기 어렵습니다. 사용자 권한 변경과 원본 문서 ACL 변경을 각각 시험해야 합니다. 객체와 행동 조합을 검증하는 방법은 멀티테넌트 권한 검증과 함께 적용할 수 있습니다.

서비스 작동 방식

캠페인에 필요한 데이터부터 연결 — 캠페인에서 역산한 이벤트와 속성을 정의하고 식별자와 전송 시점, 측정 도구의 역할을 맞춥니다.

이미 만든 답변이 돌아오는 경로를 확인합니다

한 번 만든 답을 다시 보여 주는 답변 캐시, 사용자가 다시 여는 과거 대화, 긴 대화를 축약한 메모리, 인용을 열어 주는 파일 프록시는 모두 문서 검색을 우회할 수 있는 읽기 경로입니다. 캐시 키가 질문 문구만으로 구성된 경우 같은 질문을 한 다른 사람에게 앞 사람의 답변이 전달될 수 있습니다. 사용자나 그룹을 키에 넣어도 그 사람의 권한이 바뀌면 문제가 남습니다. 민감도가 높은 답변은 캐시를 사용하지 않는 방식과, 답변에 포함된 원문 문서별 참조를 보관해 재사용 전에 현재 권한을 확인하는 방식을 비교합니다. 그룹 버전으로 캐시를 분리하는 경우에는 같은 그룹 안의 개별 ACL이나 문서 이동도 무효화 조건에 포함합니다.

대화에 과거 문장이나 요약이 남는다면 새로 검색하지 않아도 다음 질문의 모델 입력이 될 수 있습니다. 예전 답변에 원천 문서 식별자와 버전이 있으면 그 자료를 여전히 읽을 수 있는지 확인하고 권한이 없어진 항목을 현재 모델 입력과 재표시에서 제외할 수도 있습니다. 원천을 구분할 수 없는 대화 요약은 접근 범위를 좁히고 새 대화로 유도하는 경로를 검토합니다. 화면에서 과거 요약을 숨겨도 서버가 모델에 넣으면 모델 답변에서 다시 나올 수 있습니다. 사용자에게 허용되던 때 이미 별도 복사된 내용은 조직이 정한 기록과 사고 대응 범위에서 다룹니다. 회수 시험은 서비스가 그 사람에게 더 이상 다시 제공하는지에 초점을 둡니다. OWASP — AI Agent Security Cheat Sheet[3]

인용 링크에는 두 종류의 판단이 있습니다. 답변에 인용을 올려도 되는지와 링크를 열었을 때 무엇을 보여 주는지입니다. 짧은 수명의 서명 URL을 이용하더라도 만료 전의 접근 차단이 필요한 업무에서는 URL만으로 권한 회수를 강제할 수 있는지 시험합니다. 다운로드를 중계하는 서비스라면 요청 시점의 사용자 권한을 다시 확인하고 과거 URL의 접근 가능 시간도 기록합니다. 파일 열기를 차단했는데 인용 박스에 제목, 문서 위치 또는 발췌문이 남으면 화면의 기대 결과는 여전히 실패입니다. 자동완성, 목록, 링크 카드, 파일 다운로드를 각각 관측합니다.

부서 이동 전후에 같은 세션과 새 세션을 시험합니다

가상으로 영업 담당자 민지가 인사 부서로 이동하는 상황을 시험합니다. 민지는 이전에 ‘거래처 새벽’의 제한 견적 문서를 포함한 답변을 받았습니다. 견적에는 테스트만을 위한 품목명 ‘푸른 볼트 73’이 들어 있습니다. 민지는 이동 후에도 사내 공통 지침을 읽을 수 있고, 인사 평가 자료는 별도 승인을 받기 전까지 조회 권한이 없다고 가정합니다. 문서 ID와 고유 문구를 알고 질문하는 것과 문서 ID를 숨기고 의미만 바꿔 묻는 것을 모두 준비합니다. 훈련 데이터에 없는 가상 표식을 쓰면 실제로 금지 문서가 어느 경로에서 들어왔는지 확인하기 쉽습니다.

시험 경로변경 전변경 후 기대남길 근거
새 대화에서 같은 질문영업 견적 근거와 인용 제공제한 견적·표식·제목이 나오지 않음검색 후보 ID, 버전, 모델 입력 근거의 허용 판정
열린 대화에서 이전 답변 다시 질문앞선 근거로 답변 가능이전 대화 요약이 제한 견적을 재주입하지 않음권한 재판정 시각, 대화 원천 제외 기록
응답 캐시를 미리 채우고 질문권한 내 결과가 캐시될 수 있음같은 키가 있어도 금지된 답변을 제공하지 않음캐시 재사용 또는 무효화 이유와 권한 버전
과거 인용을 다른 탭에서 다시 열기현재 권한으로 파일 열기 가능파일 내용·미리보기·제목 노출을 정책대로 차단링크 방식, 파일 프록시의 서버 판정
권한 변경 전에 시작한 요청진행 중이거나 응답 전회수 시점 이후에 제공될 응답은 새 권한으로 검증실행 시작·권한 변경·응답 시각, 재판정 결과
공통 자료와 인사 평가 재확인공통 허용, 인사 평가는 거부공통 허용, 승인 전 인사 평가는 거부허용 사례와 거부 사례의 대조

회수 중 실행 경로가 멈췄는지도 확인합니다. 예를 들어 조회를 수행하고 실제 전송을 시작하기 전 조직이 권한 변경을 감지했다면 답변을 중단하거나 마스킹해야 할 수도 있습니다. 스트리밍 답변은 문장이 일부 이미 전송됐을 수 있어, 전송 전 권한 정책과 진행 중 취소 범위를 함께 정합니다. 기술 방식을 선정하기 전 검증자와 업무 책임자가 어느 시각부터 어떤 경로에 적용돼야 하는지 합의합니다. MCP 도구를 통해 검색을 제공한다면 MCP 운영 보안 체크리스트의 도구 권한과 연결 회수도 함께 적용합니다.

전파 지연은 변경 기록과 거부 증거를 맞춰 판단합니다

권한 변경 시각은 보통 한 개가 아닙니다. 인사 시스템이 변경을 등록한 시각, 신원 제공자가 그룹 변경을 확인한 시각, 검색 인덱스가 새 접근 목록으로 반영한 시각, 애플리케이션이 질문을 거부한 시각이 다를 수 있습니다. 어느 변경을 회수 기점으로 볼지 정하고 그때부터 대상 경로에서 허용이 마지막으로 확인된 시간과 거부가 처음 확인된 시간을 남깁니다. 가상으로 변경 후 20초에 아직 제공됐고 30초에 거부됐으면 해당 시험 간격 안에서 전환이 관측됐다는 의미입니다. 정확한 차단 시간이 30초였거나 모든 인스턴스가 함께 차단됐다는 결론은 낼 수 없습니다.

출근 시간처럼 요청이 많을 때나 인덱서가 멈췄을 때도 문제를 확인합니다. 권한 서비스가 현재 버전을 알려 줄 수 없거나 캐시가 만료되지 않은 상태에서, 고위험 자료는 거부하고 공통 도움말만 제공할 수도 있습니다. 방금 권한을 뺀 그룹에서 새 인덱스가 준비되기까지 전체 서비스를 중지하기 어렵다면 제한 문서 집합을 일시 검색 제외하는 선택도 가능합니다. 인사에서 영업으로 재이동하거나 임시 권한이 복구됐을 때는 새 부여 내역으로 허용을 다시 결정합니다. 이전 캐시를 되살리는 것으로 접근 복구를 대신하지 않습니다.

회수 증거를 재현할 때 원문을 모니터링 도구에 옮겨 두지 않아도 됩니다. 테스트 문서 식별자와 승인된 가상 표식, 당시의 권한 버전, 검색 후보 수와 판정, 캐시 여부와 실행 ID를 남깁니다. 확인 경로가 일부분이면 시험 범위와 관측 기간을 기록하고 운영 중 회수 목표와 비교합니다. 고위험 자료가 답변이나 인용으로 다시 나오는 경우에는 그 자료원 또는 기능의 공개를 보류하고 수정 뒤 동일 케이스와 정상 조회의 대조를 반복합니다. 시스템 수준의 프라이버시·정보보안 위험과 배포 전 시험은 NIST AI 600-1[4]에서 확인할 수도 있습니다.