Azure AI 검색 인덱서를 사용하여 Microsoft Purview 민감도 레이블을 수집하고 문서 수준 보안 적용(미리 보기)

참고

Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.

중요

기능, 기능 또는 표시된 속성(미리 보기)은 서비스 수준 계약에 포함되지 않으며 프로덕션 워크로드에는 권장되지 않으며 일반적으로 사용 가능해지기 전에 변경되거나 제한될 수 있습니다. Azure AI 검색 미리 보기 용어는 독립 실행형 기능이든 일반 공급 기능의 일부이든 관계없이 모든 미리 보기 기능에 적용됩니다.

Azure AI 검색 Microsoft Purview 민감도 레이블 추출 및 쿼리 시간 적용(미리 보기)을 지원합니다. 인덱싱하는 동안 각 문서에 대한 민감도 레이블 메타데이터를 자동으로 추출하고 저장합니다. 쿼리 시 Microsoft Purview 기존 정보 보호 정책에 따라 레이블 기반 액세스 제어를 적용하여 권한 있는 사용자만 검색 결과에서 레이블이 지정된 콘텐츠를 검색할 수 있도록 합니다.

이 기능은 다음 데이터 원본에 사용할 수 있습니다.

 Microsoft Purview 민감도 레이블이 지정된 문서가 Azure AI 검색에 인덱싱되는 관리되는 RAG 솔루션을 보여주는 Architecture 다이어그램이며, RAG 오케스트레이터는 레이블에 따라 쿼리 결과를 필터링하므로 일반 사용자는 일반 콘텐츠만 볼 수 있고, 임원 사용자는 일반, 기밀 및 최고 기밀 콘텐츠를 볼 수 있습니다.

필수 구성 요소

중요

검색 서비스는 시스템 할당 관리 ID를 사용하여 Microsoft Purview 인증해야 합니다. 이 기능은 사용자 할당 관리 ID를 지원하지 않습니다.

제한

  • Azure 포털은 이 기능을 지원하지 않습니다.

  • 자동 완성 및 제안 API는 아직 레이블 기반 액세스 제어를 적용할 수 없으므로 Purview 사용 인덱스에 대해 지원되지 않습니다.

  • 게스트 계정 및 테넌트 간 쿼리는 지원되지 않습니다.

  • 사용자 할당 관리 ID는 Microsoft Purview 역할 할당에 대해 지원되지 않습니다. 서비스의 시스템 할당 관리 ID 만 레이블 추출에 Content.SuperUser 필요한 역할 및 UnifiedPolicy.Tenant.Read 역할을 보유할 수 있습니다. 이러한 역할을 서비스의 자체 ID에 직접 할당합니다. 인덱서 대신 권한 EXTRACT 있는 작업(암호화된 콘텐츠 및 보안 분류 읽기)을 수행합니다. 1단계 및 3단계를 참조하세요.

  • 다음 인덱서 기능은 민감도 레이블이 있는 문서를 지원하지 않습니다. 기술 세트 또는 인덱서에서 이러한 기능을 사용하는 경우 민감도 레이블이 있는 문서는 처리되지 않습니다.

정책 적용 작동 방식

민감도 레이블 지원에는 인덱싱 및 쿼리 시간 적용의 두 단계가 있습니다.

인덱싱

일정에 따라 인덱싱을 구성하면 인덱서가 데이터 원본에서 새 문서 및 업데이트를 가져옵니다. 각 문서에 대해 다음을 캡처합니다.

  • 문서 콘텐츠
  • 연결된 민감도 레이블
  • 마지막 인덱서 실행 이후 콘텐츠 또는 레이블 변경

참고

인덱스가 다음에 성공한 인덱서를 실행할 때까지 원본 문서의 레이블 변경 내용을 반영하지 않습니다.

쿼리 수행 시 강제

쿼리 시 Azure AI 검색 민감도 레이블을 평가하고 사용자의 Microsoft Entra ID 토큰 및 Microsoft Purview 레이블 정책에 따라 document 수준 액세스 제어를 적용합니다. 지정된 레이블에서 읽기 사용 권한 으로 콘텐츠에 액세스할 권한이 있는 사용자만 검색 결과에서 해당 문서를 검색할 수 있습니다.

권한이 있는 관리자는 권한 상승 읽기 요청을 발급할 수도 있으며, 이 요청은 호출하는 사용자가 일반적으로 볼 수 없는 레이블이 지정된 문서를 반환하고 반환되는 각 문서에 대해 Microsoft Purview 감사 로그 항목을 생성합니다. 상승된 읽기 권한을 사용하려면 검색 서비스에서 Search Index Data Contributor 역할과 API 버전 2026-05-01-preview 이상이 필요합니다.

엔드 투 엔드 예제

다음 이미지는 민감도 레이블이 작성에서 검색 환경으로 이동하는 방식을 보여 줍니다. 첫 번째 이미지에서 사용자는 Microsoft Word 문서에 Confidential 레이블을 적용합니다. 두 번째 이미지에서 엔터프라이즈 챗봇은 쿼리 시 해당 레이블을 적용하여 기밀 콘텐츠에 대한 복사 및 공유 작업을 차단합니다.

비즈니스 외, 공개, 일반, 기밀 레이블이 포함된 계층 구조를 보여주는 Microsoft Word 민감도 메뉴의 스크린샷으로, Project Obsidian 및 받는 사람 전용과 같은 하위 레이블과 현재 문서에 적용된 기밀 레이블을 포함한 높은 수준의 기밀성을 갖춘 레이블입니다

Contoso 엔터프라이즈 챗봇의 스크린샷으로, 정책 인식 응답과 함께 번호 매겨진 인용, 기밀 프로젝트 Obsidian의 민감도 레이블 배너, 차단된 복사 및 공유 작업, 참조 패널에 표시된 문서별 민감도 레이블이 포함되어 있습니다.

1. AI Search 관리 ID 사용

Azure AI 검색 서비스에 대해 시스템 할당 관리 ID를 사용하도록 설정합니다. 사용자 할당 관리 ID는 이 기능에 대해 지원되지 않습니다. 인덱서는 이 ID를 사용하여 Microsoft Purview 인증하고 민감도 레이블 메타데이터를 추출합니다. 또한 3단계에서 역할 할당을 받아야 합니다.

2. AI Search 서비스에서 RBAC 사용

Azure AI 검색 서비스에서 RBAC(역할 기반 액세스 제어)를 사용하도록 설정합니다. 콘텐츠 인덱싱 및 인덱스 쿼리와 같은 콘텐츠 관련 작업이 성공하려면 이 단계가 필요합니다. API 키를 사용하는 작업이 중단되지 않도록 RBAC 및 API 키를 모두 유지합니다.

3. 민감도 레이블 추출에 대한 액세스 권한 부여

Microsoft Purview 민감도 레이블 메타데이터에 액세스하려면 암호화된 콘텐츠 및 보안 분류를 읽는 등 권한이 높은 작업이 포함됩니다. Azure AI 검색 이 기능을 사용하도록 설정하려면 조직의 내부 거버넌스 및 승인 프로세스에 따라 서비스의 관리 ID에 특정 역할을 부여해야 합니다.

전역 또는 권한 있는 역할 관리자 식별

검색 서비스에 대한 사용 권한을 부여할 수 있는 사용자를 결정해야 하는 경우 Microsoft Entra 테넌트에서 활성 또는 적격 전역 관리자를 찾을 수 있습니다.

  1. Azure 포털에서 Microsoft Entra ID 검색합니다.

    Microsoft Entra 제품에 대한 검색 작업의 스크린샷입니다.

  2. 왼쪽 탐색 창에서 역할 및 관리자 관리를 >선택합니다.

    Entra 역할 및 관리자 페이지의 스크린샷.

  3. 전역 관리자 또는 권한 있는 역할 관리자 역할을 검색하여 선택합니다.

    전역 관리자 역할 선택 스크린샷

  4. 적격 할당 및 활성 할당에서 권한 설정 프로세스를 실행할 권한이 있는 관리자 목록을 검토합니다.

    역할 적격 및 활성 할당의 스크린샷

보안 거버넌스 승인

내부 보안 또는 규정 준수 팀에 문의하여 요청을 검토합니다. Microsoft 역할 할당을 진행하기 전에 회사의 표준 거버넌스 및 보안 검토 프로세스를 따르는 것이 좋습니다.

승인되면 전역 관리자 또는 권한 있는 역할 관리자가 Azure AI 검색 시스템 할당 관리 ID에 다음 역할을 할당해야 합니다.

  • Content.SuperUser – 레이블 및 콘텐츠 추출용
  • UnifiedPolicy.Tenant.Read – Purview 정책 및 레이블 메타데이터 액세스

PowerShell을 통해 역할 할당

참고

이러한 역할은 사용자가 할당한 관리 ID, 서비스 주체 또는 개별 사용자 계정이 아닌 Azure AI 검색 서비스의 시스템 할당 관리 ID에만 할당합니다. PowerShell 스크립트는 서비스 리소스에서 관리 ID 개체 ID를 자동으로 검색합니다.

전역 관리자 또는 권한 있는 역할 관리자는 다음 PowerShell 스크립트를 사용하여 필요한 권한을 부여해야 합니다. 자리 표시자 값을 실제 구독, 리소스 그룹 및 검색 서비스 이름으로 바꿉니다.

Install-Module -Name Az -Scope CurrentUser
Install-Module -Name Microsoft.Entra -AllowClobber
Import-Module Az.Resources
Connect-Entra -Scopes 'Application.ReadWrite.All'

$resourceIdWithManagedIdentity = "subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Search/searchServices/<searchServiceName>"
$managedIdentityObjectId = (Get-AzResource -ResourceId $resourceIdWithManagedIdentity).Identity.PrincipalId

# Microsoft Information Protection (MIP)
$MIPResourceSP = Get-EntraServicePrincipal -Filter "appID eq '870c4f2e-85b6-4d43-bdda-6ed9a579b725'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MIPResourceSP.Id -Id "8b2071cd-015a-4025-8052-1c0dba2d3f64"

# Microsoft Rights Management Services (MRMS) - Service Principal for policy read
$MRMSResourceSP = Get-EntraServicePrincipal -Filter "appID eq '00000012-0000-0000-c000-000000000000'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MRMSResourceSP.Id -Id "7347eb49-7a1a-43c5-8eac-a5cd1d1c7cf0"

제공된 PowerShell 스크립트의 appID 역할은 다음 Azure 역할에 연결됩니다.

AppID 서비스 프린시펄
870c4f2e-85b6-4d43-bdda-6ed9a579b725 Microsoft 정보 보호 동기화 서비스
00000012-0000-0000-c000-000000000000 Microsoft 권한 관리 서비스

4. Purview 민감도 레이블을 사용하도록 인덱스 구성

민감도 레이블 지원이 필요한 경우 purviewEnabled에서 true 속성을 로 설정합니다.

중요

인덱스를 만들 때 purviewEnabled 속성을 true(으)로 설정해야 합니다. 이 설정은 영구적이며 나중에 수정할 수 없습니다.

purviewEnabled를 true로 설정하면 모든 문서 작업 API에 대해 RBAC 인증만 지원됩니다.

API 키 액세스는 인덱스 스키마 검색(목록 및 가져오기)으로 제한됩니다.

PUT https://{service}.search.windows.net/indexes('{indexName}')?api-version=2026-08-01-preview
{
  "purviewEnabled": true,
  "fields": [
    {
      "name": "sensitivityLabel",
      "type": "Edm.String",
      "filterable": true,
      "sensitivityLabel": true,
      "retrievable": true
    }
  ]
}

5. 데이터 원본 구성

민감도 레이블 수집을 사용하도록 설정하려면 indexerPermissionOptions 속성이 ["sensitivityLabel"]로 설정된 데이터 원본 을 구성합니다.

{
  "name": "purview-sensitivity-datasource",
  "type": "azureblob", // < adjust type value according to the data source you are enabling this for: sharepoint, onelake, adlsgen2.
  "indexerPermissionOptions": [ "sensitivityLabel" ],
  "credentials": {
    "connectionString": <your-connection-string>;"
  },
  "container": {
    "name": "<container-name>"
  }
}

이 속성은 indexerPermissionOptions 수집 중에 민감도 레이블 메타데이터를 추출하여 인덱싱된 문서에 첨부하도록 인덱서에 지시합니다.

6. 기술 집합에서 인덱스 프로젝션 구성(해당하는 경우)

인덱서에 기술 세트 가 있고 통합 벡터화와 같은 텍스트 분할 기술을 통해 데이터 청크를 구현하는 경우 기술 세트의 인덱스 프로젝션을 통해 각 청크에 민감도 레이블을 프로젝션합니다.

사용 권한 및 ACL 필드가 인덱서 필드 매핑과 인덱스 프로젝션에 속하는 경우에 대한 더 광범위한 규칙은 ACL 필드를 채울 위치 선택을 참조하세요.

이 단계는 쿼리 시간 적용 및 에이전트 검색 응답이 각 청크에 대해 문서 sensitivityLabelInfo 별로 포함되도록 하는 데 필요합니다. 프로젝션 매핑이 없으면 자식 청크 행이 올바르게 필터링되지 않습니다.

PUT https://{service}.search.windows.net/skillsets/{skillset}?api-version=2026-08-01-preview
{
  "name": "my-skillset",
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
      "name": "#split",
      "context": "/document",
      "inputs": [{ "name": "text", "source": "/document/content" }],
      "outputs": [{ "name": "textItems", "targetName": "chunks" }]
    }
    // ... (other skills such as embeddings, entity recognition, etc.)
  ],
  "indexProjections": {
    "selectors": [
      {
        "targetIndexName": "chunks-index",
        "parentKeyFieldName": "parentId",          // must exist in target index
        "sourceContext": "/document/chunks/*",     // match your split output path
        "mappings": [
          { "name": "chunkId",           "source": "/document/chunks/*/id" },     // if you create an id per chunk
          { "name": "content",           "source": "/document/chunks/*/text" },   // chunk text
          { "name": "parentId",          "source": "/document/id" },              // parent doc id
          { "name": "sensitivityLabel",  "source": "/document/metadata_sensitivity_label" } // <-- parent → child
        ]
      }
    ],
    "parameters": {
      "projectionMode": "skipIndexingParentDocuments"
    }
  }
}

7. 인덱서 구성

  • 추출된 레이블 메타데이터를 인덱스 필드로 라우팅하도록 인덱서 정의 에서 필드 매핑을 정의합니다. 데이터 원본이 다른 필드 이름(예 metadata_sensitivity_label: )으로 레이블 메타데이터를 내보내는 경우 명시적으로 매핑합니다.
{
  "fieldMappings": [
    {
      "sourceFieldName": "metadata_sensitivity_label",
      "targetFieldName": "sensitivityLabel"
    }
  ]
}
  • 인덱서는 예약된 인덱서 실행 중에 문서의 레이블, 콘텐츠 또는 메타데이터에 대한 변경 내용을 검색할 때 민감도 레이블 업데이트를 자동으로 인덱싱합니다. 되풀이 일정에 따라 인덱서 구성 지원되는 최소 간격은 5분마다입니다.

다음 단계