참고
Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.
Important
기능, 기능 또는 표시된 속성(미리 보기)은 서비스 수준 계약에 포함되지 않으며 프로덕션 워크로드에는 권장되지 않으며 일반적으로 사용 가능해지기 전에 변경되거나 제한될 수 있습니다. Azure AI 검색 미리 보기 용어는 독립 실행형 기능이든 일반 공급 기능의 일부이든 관계없이 모든 미리 보기 기능에 적용됩니다.
Azure Storage blob Storage의 컨테이너에 대한 역할 기반 액세스를 허용합니다. 여기서 Storage Blob Data Reader 또는 Storage Blob Data Contributor 같은 역할은 다른 사용자가 콘텐츠에 액세스할 수 있는지 여부를 결정합니다. Azure AI 검색 문서 수집과 함께 사용자 권한(미리 보기) 수집을 지원하므로 이러한 사용 권한을 사용하여 검색 결과에 대한 액세스를 제어할 수 있습니다. 사용자가 Azure Storage의 특정 디렉토리 또는 파일에 대한 권한이 없는 경우, 귀하가 인덱스에 대해 Search Index Data Reader 할당을 가지고 있다 하더라도 그 사용자는 Azure AI 검색 결과에서 해당 문서에 액세스할 수 없습니다.
- 2025-05-01-preview 이상에서는 Blob 인덱서로 RBAC 범위 메타데이터를 수집할 수 있습니다.
- 2025-11-01-preview 버전 이상에서는 Azure Storage의 Blob 지식 원본도 동일한 수준으로 지원합니다.
RBAC 범위는 컨테이너 수준에서 설정되며 권한 상속을 통해 모든 Blob(문서)으로 흐릅니다. RBAC 범위는 권한 메타데이터로 인덱싱하는 동안 캡처됩니다. 푸시 API를 사용하여 콘텐츠 및 권한 메타데이터를 수동으로 업로드 및 인 덱싱하거나(푸시 REST API를 사용하여 인덱싱 권한 참조) 인덱서 또는 기술 자료 원본을 사용하여 데이터 수집을 자동화할 수 있습니다. 이 문서에서는 인덱싱 자동화에 중점을 둡니다.
쿼리 시 호출자의 ID는 매개 변수를 통해 요청 헤더에 x-ms-query-source-authorization 포함됩니다. 사용자가 검색 결과를 보려면 ID가 문서에 대한 권한 메타데이터와 일치해야 합니다.
이 문서에서는 이 기초를 기반으로 하는 인덱싱 자동화 접근 방식에 중점을 둡니다.
역할 기반 액세스 제어(Azure RBAC)를 사용하여 보호되는 Azure Storage blob입니다. 특성 기반 액세스 제어(Azure ABAC)는 지원되지 않습니다.
Azure Blob 인덱서 또는 권한 필터를 포함하여 데이터 및 메타데이터를 검색하고 수집하는 Blob 지식 원본. 권한 필터 지원을 받으려면 최신 미리 보기 REST API 또는 기능을 지원하는 Azure SDK 미리 보기 패키지를 사용합니다.
수집된 문서와 해당 권한이 포함된 Azure AI 검색 인덱스입니다. 권한 메타데이터는 인덱스 필드로 저장됩니다.
권한 필터를 사용하는 쿼리입니다. 권한 필터를 준수하는 쿼리를 설정하려면 최신 미리 보기 REST API 또는 기능을 지원하는 Azure SDK 미리 보기 패키지를 사용합니다.
필수 구성 요소
Microsoft Entra ID 인증 및 권한 부여. 서비스 및 앱은 동일한 테넌트에 있어야 합니다. 모든 테넌트가 Microsoft Entra ID인 경우, 사용자는 서로 다른 테넌트에 속할 수 있습니다. 역할 할당은 인증된 각 연결에 사용됩니다.
Azure AI 검색 모든 지역이지만 관리 ID 지원을 위한 청구 가능 계층(기본 이상)이 있어야 합니다. 역할 기반 액세스를 위해 검색 서비스를 구성해야 하며 관리 ID(시스템 또는 사용자)가 있어야 합니다.
Azure Storage, 표준 성능(범용 v2), 핫, 쿨, 콜드 액세스 계층, RBAC 보안 컨테이너 또는 Blob 포함.
인덱서 및 기술 자료 원본의 작동 방식과 인덱스를 만드는 방법을 이해해야 합니다. 이 문서에서는 데이터 원본 및 인덱서에 대한 구성 설정을 설명하지만 인덱스를 만들기 위한 단계는 제공하지 않습니다. 권한 필터용으로 설계된 인덱스에 대한 자세한 내용은 권한 필터 필드가 있는 인덱스 만들기를 참조하세요.
Limitations
Azure Portal은 이 기능을 지원하지 않습니다.
다음 인덱서 기능은 ADLS Gen2에서 시작된 인덱싱된 문서의 권한 상속을 지원하지 않습니다. 기술 세트 또는 인덱서에서 이러한 기능을 사용하는 경우 문서 수준 권한은 인덱싱된 콘텐츠에 포함되지 않습니다.
Blob Storage 구성
Blob 컨테이너가 역할 기반 액세스를 사용하는지 확인합니다.
Azure 포털에 로그인하고 스토리지 계정을 찾습니다.
컨테이너를 확장하고 인덱싱할 Blob이 있는 컨테이너를 선택합니다.
Access Control(IAM)을 선택하여 역할 할당을 확인합니다. Storage Blob 데이터 판독기 또는 Storage Blob 데이터 기여자가 있는 사용자 및 그룹은 컨테이너가 인덱싱된 후 인덱스 내의 문서를 검색할 수 있습니다.
권한 부여
인덱서 실행의 경우 검색 서비스 계정에 스토리지 Blob 데이터 읽기 권한이 있어야 합니다. 자세한 내용은 관리 ID를 사용하여 Azure Storage 연결 참조하세요.
Azure AI 검색 구성
검색 서비스에는 다음이 있어야 합니다.
권한 부여
인덱서 실행의 경우 API 호출을 실행하는 클라이언트에는 개체를 만들 수 있는 Search Service Contributor 권한이 있어야 합니다. Search Index Data Contributor 데이터 가져오기를 수행할 수 있는 권한 및 Search Index Data Reader를 쿼리하려면 역할을 사용하여 Azure AI 검색 연결 참조하세요.
지식 소스 구성
기술 원본을 사용하는 경우 기술 원본의 정의는 전체 인덱싱 파이프라인(인덱서, 데이터 원본 및 인덱스)을 생성하는 데 사용됩니다. RBAC 범위가 검색되고 생성된 인덱스로 자동으로 포함됩니다. 인덱싱된 콘텐츠에서 사용 권한 상속을 원하는 경우 생성된 개체를 수정할 필요가 없습니다.
이 시나리오에서 작동하게 하는 구성에 대한 핵심 사항은 다음과 같습니다.
-
isADLSGen2false로 설정됩니다. 즉, 데이터 원본이 Azure Blob Storage. -
ingestionPermissionOptions을 지정합니다rbacScope.
# Create / Update Azure Blob Knowledge Source
###
PUT {{url}}/knowledgesources/azure-blob-ks?api-version=2026-08-01-preview
api-key: {{key}}
Content-Type: application/json
{
"name": "azure-blob-ks",
"kind": "azureBlob",
"description": "A sample azure blob knowledge source",
"azureBlobParameters": {
"connectionString": "{{blob-connection-string}}",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"resourceUri": "{{aoai-endpoint}}",
"apiKey": "{{aoai-key}}"
}
},
"chatCompletionModel": null,
"disableImageVerbalization": true,
"ingestionSchedule": null,
"ingestionPermissionOptions": ["rbacScope"],
"contentExtractionMode": "minimal",
"aiServices": {
"uri": "{{ai-endpoint}}",
"apiKey": "{{ai-key}}"
}
}
}
}
참조:기술 자료 원본 만들기 또는 업데이트 (REST API)
인덱서 기반 인덱싱 구성
인덱서를 사용하는 경우 Blob에서 권한 메타데이터를 끌어오도록 인덱서, 데이터 원본 및 인덱스를 구성합니다.
데이터 원본 만들기
데이터 원본 형식은 .이어야
azureblob합니다.데이터 원본 구문 분석 모드가 기본값이어야 합니다.
데이터 원본에는
indexerPermissionOptions와rbacScope이(가) 있어야 합니다.rbacScope경우 관리 ID 형식으로 연결 문자열 구성합니다.사용자 할당 관리 ID를 사용하는 연결 문자열의 경우 속성도 지정
identity해야 합니다.
시스템 관리 ID 및 indexerPermissionOptions를 사용한 JSON 예제:
{
"name" : "my-blob-datasource",
"type": "azureblob",
"indexerPermissionOptions": ["rbacScope"],
"credentials": {
"connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
},
"container": {
"name": "<your-container-name>",
"query": "<optional-query-used-for-selecting-specific-blobs>"
}
}
연결 문자열에서 사용자 관리 식별자를 사용하는 JSON 스키마 예제:
{
"name" : "my-blob-datasource",
"type": "azureblob",
"indexerPermissionOptions": ["rbacScope"],
"credentials": {
"connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
},
"container": {
"name": "<your-container-name>",
"query": "<optional-query-used-for-selecting-specific-blobs>"
},
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
}
}
인덱스에서 권한 필드 만들기
Azure AI 검색 인덱스에 사용 권한 메타데이터에 대한 필드 정의가 포함되어 있는지 확인합니다. 사용 권한 메타데이터는 데이터 원본 정의에 지정된 경우 indexerPermissionOptions 인덱싱할 수 있습니다.
권장되는 스키마 특성 RBAC 범위:
-
rbacScope퍼미션 필터 값이 포함된 RBAC 범위 필드입니다. - 쿼리 시 필터링을 사용하도록 설정하는 속성
permissionFilterOption입니다. - 사용 권한 메타데이터에 문자열 필드 사용
- 모든 필드에서 true로 설정합니다
filterable.
retrievable이 false임을 주목하세요. 개발 중에 true로 설정하여 사용 권한이 있는지 확인할 수 있지만, 보안 주체 ID가 결과에 표시되지 않도록 프로덕션 환경에 배포하기 전에 false로 다시 설정해야 합니다.
JSON 스키마 예제:
{
...
"fields": [
...
{
"name": "RbacScope",
"type": "Edm.String",
"permissionFilter": "rbacScope",
"filterable": true,
"retrievable": false
}
],
"permissionFilterOption": "enabled"
}
인덱서 구성
인덱서 내의 필드 매핑은 데이터 경로를 인덱스의 필드로 설정합니다. 이름 또는 데이터 형식에 따라 달라지는 대상 및 대상 필드에는 명시적 필드 매핑이 필요합니다. 필드 이름을 변경하면 Azure Blob Storage 다음 메타데이터 필드에 필드 매핑이 필요할 수 있습니다.
-
metadata_rbac_scope (
Edm.String) - 컨테이너 RBAC 범위입니다.
인덱싱하는 동안 사용 권한 메타데이터를 대상 필드로 라우팅하도록 인덱서에서 지정 fieldMappings 합니다.
JSON 스키마 예제:
{
...
"fieldMappings": [
{ "sourceFieldName": "metadata_rbac_scope", "targetFieldName": "RbacScope" }
]
}
인덱서 실행
인덱서, 데이터 원본 및 인덱스가 구성된 후 인덱서를 실행하여 프로세스를 동작으로 설정합니다. 구성 또는 사용 권한에 문제가 있는 경우 이러한 문제가 이 단계에서 나타납니다.
기본적으로 인덱서는 검색 서비스에 게시하는 즉시 실행되지만 인덱서 구성 disabled 에 true로 설정된 경우 인덱서를 수동으로 실행할 수 있도록 인덱서가 비활성화된 상태로 게시됩니다.
상태 및 메시지를 모니터링할 수 있도록 Azure 포털에서 인덱서를 실행합니다.
오류가 없다고 가정하면 이제 인덱스가 채워지고 쿼리 및 테스트를 진행할 수 있습니다.
삭제 추적
Blob 삭제를 효과적으로 관리하려면 인덱서가 처음으로 실행되기 전에 삭제 추적 을 사용하도록 설정했는지 확인합니다. 이 기능을 사용하면 시스템에서 원본에서 삭제된 Blob을 검색하고 인덱스에서 해당 콘텐츠를 삭제할 수 있습니다.