Azure AI Search는 문서 수준 액세스 제어를 지원하므로 조직은 데이터 수집부터 쿼리 실행까지 문서 수준에서 세분화된 권한을 적용할 수 있습니다. 이 기능은 보안된 협력적 AI 시스템, 데이터 기반 Retrieval-Augmented 생성(RAG) 응용 프로그램 및 문서 수준에서 권한 부여 검사가 필요한 엔터프라이즈 검색 솔루션을 구축하는 데 필수적입니다.
문서 수준 액세스 제어에 대한 접근 방식
| 접근법 | 설명 |
|---|---|
| 보안 필터 | 문자열 비교. 애플리케이션은 사용자 또는 그룹 신원을 문자열로 입력합니다. 이 문자열은 쿼리에서 필터를 생성하여 문자열과 일치하지 않는 문서를 제외합니다. 보안 필터는 문서 수준 액세스 제어를 달성하기 위한 기술입니다. 이 방법은 API에 바인딩되지 않으므로 모든 버전 또는 패키지를 사용할 수 있습니다. |
| POSIX와 유사한 ACL/RBAC 범위(미리 보기) | 쿼리 토큰 뒤에 있는 Microsoft Entra 보안 주체는 사용 권한과 일치하지 않는 문서를 제외하고 검색 결과에 반환된 문서의 사용 권한 메타데이터와 비교됩니다. ACL(액세스 제어 목록) 권한은 Azure ADLS(Data Lake Storage) Gen2 디렉터리 및 파일에 적용됩니다. RBAC(역할 기반 액세스 제어) 범위는 ADLS Gen2 콘텐츠 및 Azure Blob에 적용됩니다. 문서 수준에서 ID 기반 액세스를 위한 기본 제공 지원은 미리 보기 상태로, REST API와 해당 기능을 제공하는 Azure SDK 패키지 미리 보기에서 사용할 수 있습니다. 기능 지원의 증거가 있는지 SDK 패키지 변경 로그 를 확인해야 합니다. |
| Microsoft Purview 민감도 레이블(미리 보기) | 인덱서는 지원되는 데이터 원본(Azure Blob Storage, ADLS Gen2, Microsoft 365의 SharePoint, OneLake)에서 Microsoft Purview에 정의된 민감도 레이블을 추출합니다. 이러한 레이블은 메타데이터로 저장되고 쿼리 시간에 평가되어 Microsoft Entra 토큰 및 Purview 정책 할당에 따라 사용자 액세스를 적용합니다. 이 방법은 Azure AI Search 권한 부여를 엔터프라이즈의 Microsoft Information Protection 모델에 맞춥니다. |
| Microsoft 365 ACL의 SharePoint(미리 보기) | 구성된 경우 Azure AI Search 인덱서는 초기 수집 중에 Microsoft 365 ACL에서 직접 SharePoint 문서 권한을 추출합니다. 액세스 검사는 Microsoft Entra 사용자 및 그룹 멤버 자격을 사용합니다. 지원되는 그룹 유형에는 Microsoft Entra 보안 그룹, Microsoft 365 그룹 및 메일 사용 보안 그룹이 포함됩니다. SharePoint 그룹은 아직 미리 보기에서 지원되지 않습니다. |
필터를 사용한 보안 트리밍 패턴
네이티브 ACL/RBAC 범위 통합이 실행 가능하지 않은 시나리오의 경우 제외 기준에 따라 결과를 트리밍하기 위한 보안 문자열 필터를 사용하는 것이 좋습니다. 패턴에는 다음 구성 요소가 포함됩니다.
- 사용자 또는 그룹 ID를 저장하려면 인덱스로 문자열 필드를 만듭니다.
- 연결된 ACL을 포함하는 원본 문서를 사용하여 인덱스를 로드합니다.
- 문자열에서 일치하도록 쿼리 논리에 필터 식을 포함합니다.
- 쿼리 시 호출자의 ID를 가져옵니다.
- 호출자의 ID를 필터 문자열로 전달합니다.
- 결과는 사용자 또는 그룹 ID 문자열을 포함하지 않는 일치 항목을 제외하도록 트리밍됩니다.
푸시 또는 끌어오기 모델 API를 사용할 수 있습니다. 이 방법은 API에 구애받지 않으므로 인덱스 및 쿼리에 여과 단계에 대한 유효한 문자열(ID)이 있는지 확인해야 합니다.
이 방법은 사용자 지정 액세스 모델 또는 비 Microsoft 보안 프레임워크를 사용하는 시스템에 유용합니다. 이 방법에 대한 자세한 내용은 Azure AI Search에서 결과를 트리밍하기 위한 보안 필터를 참조하세요.
POSIX와 유사한 ACL 및 RBAC 범위 권한에 대한 네이티브 지원 패턴(미리 보기)
기본 지원은 인덱싱 및 쿼리하려는 문서와 연결된 Microsoft Entra 사용자 및 그룹을 기반으로 합니다.
ADLS(Azure Data Lake Storage) Gen2 컨테이너는 컨테이너 및 파일에서 ACL을 지원합니다. ADLS Gen2의 경우 ADLS Gen2 인덱서 또는 Blob 지식 원본(ADLS Gen2 지원) 및 미리 보기 API를 사용하여 콘텐츠를 수집하는 경우 문서 수준의 RBAC 범위 보존이 기본적으로 지원됩니다. Azure Blob 인덱서 또는 기술 자료 원본을 사용하는 Azure Blob의 경우 RBAC 범위 보존은 컨테이너 수준에 있습니다.
ACL 보안 콘텐츠의 경우 관리 용이성을 위해 개별 사용자 액세스에 대한 그룹 액세스를 권장합니다. 패턴에는 다음 구성 요소가 포함됩니다.
- ACL 할당이 있는 문서 또는 파일로 시작합니다.
- 인덱스에 사용 권한 필터를 사용하도록 설정합니다.
- 인덱스 문자열 필드에 사용 권한 필터를 추가합니다.
- ACL이 연결된 원본 문서를 사용하여 인덱스를 로드합니다.
- 요청 헤더에 추가하여
x-ms-query-source-authorization인덱스 쿼리
클라이언트 앱은 검색 인덱스 데이터 판독기 또는 검색 인덱스 데이터기여자 역할을 통해 인덱스에 대한 읽기 권한을 받습니다. 쿼리 시 액세스는 인덱싱된 콘텐츠의 사용자 또는 그룹 권한 메타데이터에 의해 결정됩니다. 권한 필터를 포함하는 쿼리는 요청 헤더에서와 같이 x-ms-query-source-authorization 사용자 또는 그룹 토큰을 전달합니다. 쿼리 시 사용 권한 필터를 사용하는 경우 Azure AI Search는 다음 두 가지를 확인합니다.
먼저 클라이언트 애플리케이션이 인덱스에 액세스할 수 있도록 하는 검색 인덱스 데이터 판독기 권한을 확인합니다.
둘째, 요청에 대한 추가 토큰이 제공되면 일치하지 않는 토큰을 제외하고 검색 결과에 반환된 문서에 대한 사용자 또는 그룹 권한을 확인합니다.
인덱스에 권한 메타데이터를 가져오기 위해 푸시 모델 API를 사용하여 JSON 문서를 검색 인덱스에 푸시할 수 있습니다. 여기서 페이로드에는 각 문서에 대해 POSIX와 유사한 ACL을 제공하는 문자열 필드가 포함됩니다. 이 접근 방식과 보안 트리밍의 중요한 차이점은 인덱스와 쿼리의 권한 필터 메타데이터가 Microsoft Entra ID 인증으로 인식되는 반면 보안 트리밍 해결 방법은 간단한 문자열 비교라는 점입니다. 또한 Graph SDK를 사용하여 ID를 검색할 수 있습니다.
데이터 원본이 ADLS(Azure Data Lake Storage) Gen2 이고 코드가 인덱싱을 위해 미리 보기 API를 호출하는 경우 끌어오기 모델(인덱서) API를 사용할 수도 있습니다.
데이터 수집 프로세스 중 ACL 권한 메타데이터 검색(미리 보기)
ACL 권한을 검색하는 방법은 문서 페이로드를 푸시하는지 또는 ADLS Gen2 인덱서를 사용하는지에 따라 달라집니다.
기능을 제공하는 미리 보기 API로 시작합니다.
- 2025-11-01-preview REST API
- Python용 Azure SDK 시험판 패키지
- .NET용 Azure SDK 시험판 패키지
- Java용 Azure SDK 시험판 패키지
푸시 모델 접근 방식의 경우:
- 미리 보기 또는 시험판 SDK를 사용하여 인덱스 스키마도 생성되고 스키마에 사용 권한 필터가 있는지 확인합니다.
- Microsoft Graph SDK를 사용하여 그룹 또는 사용자 ID를 가져오는 것이 좋습니다.
- 인덱스 문서 또는 해당 Azure SDK API를 사용하여 문서 및 관련 권한 메타데이터를 검색 인덱스로 푸시합니다.
풀 모델 ADLS Gen2 인덱서 접근 방식 또는 Blob (ADLS Gen2) 지식 소스의 경우:
- ADLS Gen2 액세스 제어 모델을 사용하여 디렉터리의 파일이 보호되는지 확인합니다.
- 인덱서 REST API 만들기 또는 기술 자료 원본 REST API 또는 동등한 Azure SDK API를 사용하여 인덱서, 인덱스 및 데이터 원본을 만듭니다.
Microsoft 365 기본 ACL 권한 수집의 SharePoint 패턴(미리 보기)
Microsoft 365 콘텐츠의 SharePoint의 경우 Azure AI Search는 SharePoint ACL에 따라 문서 수준 권한을 적용할 수 있습니다. 이 통합은 SharePoint의 원본 문서에 액세스할 수 있는 사용자 또는 그룹만 인덱스에 권한이 동기화되는 즉시 검색 결과에서 검색할 수 있도록 합니다. 사용 권한은 문서 수집 중에 또는 그 이후에 인덱스에 적용됩니다.
SharePoint ACL 지원은 2025-11-01-preview REST API 또는 지원되는 SDK를 사용하여 SharePoint 인덱서에서 미리 보기로 제공됩니다. 인덱서는 파일 및 목록 항목 권한 메타데이터를 추출하고 검색 인덱스에 유지합니다. 여기서 쿼리 시 액세스 제어를 적용하는 데 사용됩니다.
패턴에는 다음 구성 요소가 포함됩니다.
- 애플리케이션 권한으로 Microsoft 365의 SharePoint 인덱서를 사용하여 SharePoint 사이트 콘텐츠를 읽고, ACL을 읽기 위한 전체 권한을 사용합니다. 사용 및 제한 사항에 대한 SharePoint 인덱서 ACL 설정 지침을 따릅니다.
- 초기 인덱싱 중에 SharePoint ACL 항목(사용자 및 그룹)은 검색 인덱스에서 권한 메타데이터로 저장됩니다.
- ACL의 증분 인덱싱을 위해, 공개 미리 보기 기간 동안 사용할 수 있는 SharePoint ACL 재동기화 메커니즘을 검토하십시오.
- 쿼리 시점에 Azure AI 검색은 쿼리 토큰의 Microsoft Entra 주체를 인덱스에 저장된 SharePoint ACL 메타데이터와 비교합니다. 호출자가 액세스할 수 있는 권한이 없는 문서는 제외됩니다.
미리 보기 중에는 SharePoint ACL에서 다음 주요 형식만 지원됩니다.
- Microsoft Entra 사용자 계정
- Microsoft Entra 보안 그룹
- Microsoft 365 그룹
- 메일 사용 보안 그룹
SharePoint 그룹은 미리 보기 릴리스에서 지원되지 않습니다.
구성 세부 정보 및 전체 제한 사항은 Microsoft 365 문서 수준 권한(미리 보기)에서 SharePoint를 인덱싱하는 방법을 참조하세요.
Microsoft Purview 민감도 레이블 패턴(미리 보기)
Azure AI Search는 문서 수준 액세스 제어를 위해 Microsoft Purview 민감도 레이블 을 수집하고 적용하여 Microsoft Purview에서 검색 및 검색 애플리케이션으로 정보 보호 정책을 확장할 수 있습니다.
레이블 수집을 사용하도록 설정하면 Azure AI Search는 지원되는 데이터 원본에서 민감도 메타데이터를 추출합니다. 여기에는 Azure Blob Storage, ADLS Gen2(Azure Data Lake Storage Gen2), Microsoft 365의 SharePoint 및 Microsoft OneLake가 포함됩니다. 추출된 레이블은 문서 콘텐츠와 함께 인덱스에 저장됩니다.
쿼리 시 Azure AI Search는 각 문서의 민감도 레이블, 사용자의 Microsoft Entra 토큰 및 조직의 Purview 정책을 검사하여 액세스를 확인합니다. 문서는 사용자의 ID 및 레이블 기반 사용 권한이 구성된 Purview 정책에 따라 액세스를 허용하는 경우에만 반환됩니다.
패턴에는 다음 구성 요소가 포함됩니다.
- 2025-11-01-preview REST API 또는 Purview 레이블 수집을 지원하는 해당 SDK를 사용하여 인덱스, 데이터 원본 및 인덱서 (예약 용도)를 구성합니다.
- 검색 서비스에 시스템 할당 관리 ID 를 사용하도록 설정합니다. 그런 다음, 검색 서비스가 Microsoft Purview에 안전하게 액세스하고 레이블 메타데이터를 추출할 수 있도록 테넌트 전역 관리자 또는 권한 있는 역할 관리자에게 필요한 액세스 권한을 부여하도록 요청합니다.
- 인덱싱하기 전에 문서에 민감도 레이블을 적용하면 수집 중에 문서를 인식하고 보존할 수 있습니다.
- 쿼리 시 헤더
x-ms-query-source-authorization를 통해 유효한 Microsoft Entra 토큰을 각 쿼리 요청에 연결합니다. Azure AI Search는 토큰 및 관련 레이블 메타데이터를 평가하여 레이블 기반 액세스 제어를 적용합니다.
Purview 민감도 레이블 적용은 단일 테넌트 시나리오로 제한되고, RBAC 인증이 필요하며, 공개 미리 보기 중에는 REST API 또는 SDK를 통해서만 지원됩니다. 현재 Purview 사용 인덱스에는 자동 완성 및 제안 API를 사용할 수 없습니다.
자세한 내용은 Azure AI Search 인덱서를 사용하여 Microsoft Purview 민감도 레이블을 수집하는 방법을 참조하십시오.
쿼리 시 문서 수준 권한 적용
네이티브 토큰 기반 쿼리를 사용하여 Azure AI Search는 사용자의 Microsoft Entra 토큰의 유효성을 검사하여 사용자가 액세스할 수 있는 권한이 있는 문서만 포함하도록 결과 집합을 트리밍합니다.
사용자의 Microsoft Entra 토큰을 쿼리 요청에 연결하여 자동 트리밍을 수행할 수 있습니다. 자세한 내용은 Azure AI Search의 쿼리 시간 ACL 및 RBAC 적용을 참조하세요.
문서 수준 액세스 제어의 이점
문서 수준 액세스 제어는 AI 기반 애플리케이션에서 중요한 정보를 보호하는 데 중요합니다. 이를 통해 조직은 액세스 정책에 맞는 시스템을 구축하여 무단 또는 기밀 데이터를 노출할 위험을 줄일 수 있습니다. AI 시스템은 액세스 규칙을 검색 파이프라인에 직접 통합하여 안전하고 권한이 부여된 정보에 기반한 응답을 제공할 수 있습니다.
권한 적용을 Azure AI Search로 오프로드하면 개발자는 고품질 검색 및 순위 시스템을 빌드하는 데 집중할 수 있습니다. 이 방법은 중첩된 그룹을 처리하거나, 사용자 지정 필터를 작성하거나, 검색 결과를 수동으로 자르는 필요성을 줄이는 데 도움이 됩니다.
Azure AI Search의 문서 수준 권한은 조직 정책에 맞는 액세스 제어를 적용하기 위한 구조화된 프레임워크를 제공합니다. 조직은 Microsoft Entra 기반 ACL 및 RBAC 역할을 사용하여 강력한 규정 준수를 지원하고 사용자 간의 신뢰를 높이는 시스템을 만들 수 있습니다. 이러한 기본 제공 기능은 사용자 지정 코딩의 필요성을 줄여 문서 수준 보안에 대한 표준화된 접근 방식을 제공합니다.
자습서 및 샘플
더 많은 문서와 샘플을 사용하여 Azure AI Search의 문서 수준 액세스 제어를 자세히 살펴보세요.
- 자습서: 인덱서를 사용하여 ADLS Gen2 권한 메타데이터 인덱싱
- azure-search-rest-samples/acl
- azure-search-python-samples/Quickstart-Document-Permissions-Push-API
- azure-search-python-samples/Quickstart-Document-Permissions-Pull-API
- 데모 앱: 민감도 레이블 처리 및 적용