다음을 통해 공유


관리 ID를 사용하여 Azure Storage에 연결(Azure AI Search)

이 문서에서는 연결 문자열에 자격 증명을 제공하는 대신 관리 ID를 사용하여 Azure Storage 계정에 대한 검색 서비스 연결을 구성하는 방법을 설명합니다.

시스템 할당 관리 ID 또는 사용자 할당 관리 ID를 사용할 수 있습니다. 관리 ID는 Microsoft Entra 로그인이며 Azure Storage에 액세스하려면 역할 할당이 필요합니다.

필수 조건

  • Azure AI Search, 기본 계층 이상, 관리 ID 사용.

참고 항목

스토리지가 네트워크로 보호되고 검색 서비스와 동일한 지역에 있는 경우, 시스템이 할당한 관리 ID와 신뢰할 수 있는 서비스로 연결 또는 리소스 인스턴스 규칙을 사용하여 연결의 네트워크 옵션 중 하나를 사용해야 합니다.

Azure Storage에서 역할 할당 만들기

  1. Azure Portal에 로그인하여 스토리지 계정을 찾습니다.

  2. 액세스 제어(IAM) 를 선택합니다.

  3. 추가를 선택한 다음, 역할 할당을 선택합니다.

  4. 작업 함수 역할 목록에서 검색 서비스에 필요한 역할을 선택합니다.

    작업 역할 할당
    인덱서를 사용한 Blob 인덱싱 Storage Blob 데이터 읽기 권한자 추가
    인덱서를 사용한 ADLS Gen2 인덱싱 Storage Blob 데이터 읽기 권한자 추가
    인덱서를 사용한 테이블 인덱싱 읽기 권한자 및 데이터 액세스 추가
    인덱서를 사용한 파일 인덱싱 읽기 권한자 및 데이터 액세스 추가
    지식 저장소에 쓰기 개체 및 파일 프로젝션을 위한 Storage Blob DataContributor와 테이블 프로젝션을 위한 읽기 권한자 및 데이터 액세스를 추가합니다.
    보강 캐시에 쓰기 Storage Blob 데이터 기여자 추가
    디버그 세션 상태 저장 Storage Blob 데이터 기여자 추가
  5. 다음을 선택합니다.

  6. 관리 ID를 선택한 다음 멤버를 선택합니다.

  7. 시스템 할당 관리 ID 또는 사용자 할당 관리 ID별로 필터링합니다. 검색 서비스에 대해 이전에 만든 관리 ID가 표시됩니다. 없는 경우 관리 ID를 사용하도록 검색 구성을 참조하세요. 이미 설정했지만 사용할 수 없는 경우 몇 분 정도 주세요.

  8. ID를 선택하고 역할 할당을 저장합니다.

연결 문자열에서 관리 ID 지정

역할 할당이 있으면 해당 역할에서 작동하는 Azure Storage에 대한 연결을 설정할 수 있습니다.

인덱서는 외부 데이터 원본에 대한 연결에 데이터 원본 개체를 사용합니다. 이 섹션에서는 데이터 원본 연결 문자열에서 시스템 할당 관리 ID 또는 사용자 할당 관리 ID를 지정하는 방법을 설명합니다. 관리 ID 문서에서 더 많은 연결 문자열 예제를 찾을 수 있습니다.

Azure Portal에서 Azure Storage에 대한 데이터 원본 연결을 만들고 시스템 또는 사용자 할당 관리 ID를 지정한 다음 JSON 정의를 확인하여 연결 문자열이 어떻게 작성되는지 확인할 수 있습니다.

시스템 할당 관리 ID

시스템 할당 관리 ID가 이미 구성되어 있어야 하며 Azure Storage에 역할 할당이 있어야 합니다.

시스템 할당 관리 ID를 사용하여 만든 연결의 경우 데이터 원본 정의에 대한 유일한 변경 내용은 credentials 속성의 형식입니다.

계정 키 또는 암호가 없는 ResourceId을(를) 제공합니다. ResourceId은(는) 스토리지 계정의 구독 ID, 스토리지 계정의 리소스 그룹 및 스토리지 계정 이름을 포함해야 합니다.

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

사용자 할당 관리 ID

사용자가 할당한 관리 ID가 이미 구성되어 있고 검색 서비스와 연결되어 있어야 하며, ID에는 Azure Storage에 대한 역할 할당이 있어야 합니다.

사용자 할당 관리 ID를 통한 연결은 시스템 할당 관리 ID와 동일한 자격 증명과 사용자 할당 관리 ID 컬렉션을 포함하는 추가 ID 속성을 사용합니다. 데이터 원본을 만들 때는 사용자가 할당한 관리 ID를 하나만 제공해야 합니다. userAssignedIdentity을 사용자가 할당한 관리 ID로 설정합니다.

계정 키 또는 암호가 없는 ResourceId을(를) 제공합니다. ResourceId은(는) 스토리지 계정의 구독 ID, 스토리지 계정의 리소스 그룹 및 스토리지 계정 이름을 포함해야 합니다.

다음 예제에 표시된 구문을 사용하여 identity을 제공합니다.

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" 
    }
}   

원격 서비스에 대한 연결 정보 및 권한은 인덱서를 실행하는 동안 런타임에 유효성을 검사합니다. 인덱서가 성공하면 연결 구문과 역할 할당이 유효합니다. 자세한 내용은 인덱서, 기술 또는 문서 실행 또는 다시 설정을 참조하세요.

스토리지 계정에서 네트워크 보안 데이터에 액세스

Azure 스토리지 계정은 방화벽 및 가상 네트워크를 사용하여 추가로 보호할 수 있습니다. 방화벽 또는 가상 네트워크를 사용하여 보호되는 스토리지 계정의 콘텐츠를 인덱싱하려면 Azure Storage에 대한 인덱서 연결을 신뢰할 수 있는 서비스로 만들기를 참조하세요.

참고 항목