이 문서에서는 Azure 가상 네트워크 내에서 실행되는 Azure 리소스에 대한 Azure AI 검색의 프라이빗 아웃바운드 호출을 구성하는 방법을 설명합니다.
프라이빗 연결을 설정하면 검색 서비스는 인터넷에 개방된 포트가 아니라 가상 네트워크 IP 주소에 연결할 수 있습니다. 연결에 대해 만든 개체를 공유 프라이빗 링크라고 합니다. 연결 시, 검색 서비스는 공유 프라이빗 링크를 내부적으로 사용하여 네트워크 경계 내의 Azure 리소스에 도달합니다.
공유 프라이빗 링크는 사용량에 따라 청구되는 프리미엄 기능입니다. 공유 프라이빗 링크를 설정하면 프라이빗 엔드포인트에 대한 요금이 Azure 청구서에 추가됩니다. 공유 프라이빗 링크를 사용하면 인바운드 및 아웃바운드 액세스에 대한 데이터 전송 속도도 청구 대상입니다. 자세한 내용은 Azure Private Link 가격 책정을 참조하세요.
참고
SQL Managed Instance에 대한 프라이빗 인덱서 연결을 설정하는 경우 해당 리소스 종류와 관련된 단계는 대신 이 문서를 참조하세요.
공유 프라이빗 링크를 사용하는 경우
Azure AI 검색은 다음 시나리오에서 다른 Azure 리소스에 대한 아웃바운드 호출을 수행합니다.
- 에이전트 검색 워크플로를 위한 Azure OpenAI에 대한 기술 자료 연결
- 벡터화를 위해 Foundry Tools의 Azure OpenAI 또는 Azure Vision에 대한 인덱서 또는 쿼리 연결
- 지원되는 데이터 원본에 대한 인덱서 연결
- 보강을 캐싱하거나, 세션 상태를 디버그하거나, 지식 저장소에 쓰기 위해 Azure Storage에 대한 인덱서(기술 세트) 연결
- 청구 목적으로 Foundry Tools에 대한 인덱서(기술 세트) 연결
- Azure Key Vault에 대한 암호화 키 요청
- Azure Functions 또는 유사한 리소스에 대한 사용자 지정 기술 요청
공유 프라이빗 링크는 Azure 간 연결에서만 작동합니다. OpenAI 또는 다른 외부 모델 공급자에 연결하는 경우 공용 인터넷을 통해 연결해야 합니다.
공유 프라이빗 링크는 Azure Virtual Network에서 실행되는 Azure 리소스 또는 클라이언트에 대한 프라이빗 엔드포인트를 통해 액세스되는 작업 및 데이터를 위한 것입니다.
공유 프라이빗 링크는 다음과 같습니다.
- Azure AI 검색 도구, API 또는 SDK를 사용하여 만들어짐
- Azure 리소스 소유자가 승인함
- Azure AI 검색에서 특정 Azure 리소스에 대한 프라이빗 연결 시 내부적으로 사용됨
검색 서비스는 검색 서비스에서 만든 프라이빗 링크만 사용할 수 있으며 각 리소스 및 하위 리소스 조합의 경우 서비스에 만들어진 공유 프라이빗 링크는 하나만 있을 수 있습니다.
프라이빗 링크를 설정하면 검색 서비스가 해당 리소스에 연결할 때마다 자동으로 사용됩니다. 연결에 사용되는 디바이스는 Azure 리소스의 방화벽에서 권한이 있는 IP를 사용하여 연결해야 하지만, 연결 문자열을 수정하거나 요청을 발급하는 데 사용하는 클라이언트를 변경할 필요는 없습니다.
Azure Private Link와 Azure AI 검색을 함께 사용하는 두 가지 시나리오가 있습니다.
시나리오 1: Azure에 대한 아웃바운드 (인덱서 또는 기술 자료) 연결에 프라이빗 연결이 필요한 경우 공유 프라이빗 링크를 만듭니다.
시나리오 2: 가상 네트워크에서 실행되는 클라이언트에서 프라이빗 인바운드 연결에 대한 검색을 구성합니다.
이 문서에서는 시나리오 1을 다룹니다.
두 시나리오 모두 Azure Private Link에 종속성이 있지만 독립적입니다. 프라이빗 엔드포인트에 대한 자체 검색 서비스를 구성하지 않고도 공유 프라이빗 링크를 만들 수 있습니다.
제한 사항
시나리오에 대한 공유 프라이빗 링크를 평가할 때는 이러한 제약 조건을 기억하세요.
공유 프라이빗 링크에 사용되는 몇 가지 리소스 종류는 미리 보기로 제공됩니다. 미리 보기 리소스(Azure Database for MySQL 또는 Azure SQL Managed Instance)에 연결하는 경우 Management REST API의 미리 보기 버전을 사용하여 공유 프라이빗 링크를 만듭니다. 이러한 버전에는
2020-08-01-preview,2021-04-01-preview,2024-03-01-preview2024-06-01-preview및2025-02-01-preview. 최신 미리 보기 API를 사용하는 것이 좋습니다.인덱서 실행은 검색 서비스와 관련된 프라이빗 실행 환경을 사용해야 합니다. 다중 테넌트 콘텐츠 처리 환경에서는 프라이빗 엔드포인트 연결이 지원되지 않습니다. 이 요구 사항에 대한 구성 설정은 이 문서에서 다룹니다.
각 계층의 공유 프라이빗 링크 리소스 제한을 검토합니다.
종류
Microsoft.CognitiveServices/accounts에 대한 리소스 종류AIServices는 현재 지원되지 않습니다. 즉, 이러한 종류의 Foundry 리소스에 대한 공유 프라이빗 링크를 현재 만들 수 없습니다. 기술 또는 벡터화 도구에 Azure OpenAI 포함 모델을 사용해야 하고 프라이빗 통신이 필요한 경우, Azure OpenAI 리소스와 하위 형식openai_account의 공유 프라이빗 링크Microsoft.CognitiveServices/accounts를 생성하여 우회 해결책으로 사용하십시오.
필수 구성 요소
가상 네트워크에서 실행되도록 구성된 지원되는 Azure 리소스입니다.
워크로드별 계층 및 지역 요구 사항이 있는 Azure AI 검색 서비스:
워크로드 계층 요구 사항 지역 요구 사항 서비스 만들기 요구 사항 기술 세트가 없는 인덱서 기본 및 상위 없음 없음 포함 기술이 포함된 기술 세트(통합 벡터화) 기본 및 상위 고용량 지역 2024년 4월 3일 이후 다른 기본 제공 또는 사용자 지정 기술을 사용하는 기술 세트 표준 1(S1) 이상 없음 2024년 4월 3일 이후 쿼리 계획 또는 검색 결과 전달을 위해 Azure OpenAI를 호출하는 기술 자료 기본 및 상위 없음 없음 Azure AI 검색과 Azure 리소스에 대한 권한:
리소스 사용 권한 Azure AI 검색 Microsoft.Search/searchServices/sharedPrivateLinkResources/write
Microsoft.Search/searchServices/sharedPrivateLinkResources/read
Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read다른 Azure 리소스 프라이빗 엔드포인트 연결을 승인할 수 있는 권한입니다. 예를 들어, Azure Storage에서는 Microsoft.Storage/storageAccounts/privateEndpointConnectionsApproval/action이 필요합니다.
지원되는 리소스 유형
다음 리소스에 대한 공유 프라이빗 링크를 만들 수 있습니다.
| 리소스 유형 | 하위 리소스(또는 그룹 ID) |
|---|---|
| Microsoft.Storage/storageAccounts 1 |
blob, table, dfsfile |
| Microsoft.DocumentDB/databaseAccounts 2 | Sql |
| Microsoft.Sql/servers 3 | sqlServer |
| Microsoft.KeyVault/vaults | vault |
| Microsoft.DBforMySQL/servers(미리 보기) | mysqlServer |
| Microsoft.Web/sites 4 | sites |
| Microsoft.Sql/managedInstances(미리 보기) 5 | managedInstance |
| Microsoft.CognitiveServices/accounts 67 | openai_account |
| Microsoft.CognitiveServices/accounts 8 | cognitiveservices_account |
| Microsoft.Fabric/privateLinkServicesForFabric 9 | workspace |
1 Azure Storage 및 Azure AI 검색이 동일한 지역에 있는 경우 스토리지에 대한 연결은 Microsoft 백본 네트워크를 통해 이루어집니다. 즉, 공유 프라이빗 링크가 이 구성에 중복됩니다. 그러나 Azure Storage에 대한 프라이빗 엔드포인트를 이미 설정한 경우 공유 프라이빗 링크도 설정해야 합니다. 그렇지 않으면 스토리지 쪽에서 연결이 거부됩니다. 또한 검색 시 다양한 시나리오에 여러 스토리지 형식을 사용하는 경우 각 하위 리소스에 대해 별도의 공유 프라이빗 링크를 만들어야 합니다.
2Microsoft.DocumentDB/databaseAccounts 리소스 종류는 Azure Cosmos DB for NoSQL에 대한 인덱서 연결에 사용됩니다. 공급자 이름 및 그룹 ID는 대/소문자를 구분합니다.
3Microsoft.Sql/servers 리소스 종류는 Azure SQL Database 연결에 사용됩니다. 현재 Azure Synapse SQL에 대한 공유 프라이빗 링크는 지원되지 않습니다.
4Microsoft.Web/sites 리소스 종류는 App Service 및 Azure 함수에 사용됩니다. Azure AI 검색의 컨텍스트에서 Azure 함수는 가능성이 높은 시나리오입니다. Azure 함수는 일반적으로 사용자 지정 기술의 논리를 호스팅하는 데 사용됩니다. Azure Function에는 사용량, 프리미엄, 전용 App Service 호스팅 계획이 있습니다. 현재 ASE(App Service Environment), AKS(Azure Kubernetes Service) 및 Azure API Management는 지원되지 않습니다.
5 지침은 SQL Managed Instance에 대한 공유 프라이빗 링크 만들기를 참조하세요.
6Microsoft.CognitiveServices/accounts 통합 벡터화를 구현할 때 Azure OpenAI 포함 모델에 대한 벡터라이저 및 인덱서 연결에 리소스 종류 가 사용됩니다.
Microsoft Foundry 리소스를 통해 Azure Vision 멀티모달 포함을 지원하기 위한 공유 프라이빗 링크가 지원됩니다.
7 Azure OpenAI의 공유 프라이빗 링크는 퍼블릭 클라우드 및 Microsoft Azure Government에서만 지원됩니다. 다른 클라우드 서비스에서는 openai_account 그룹 ID에 대한 공유 프라이빗 링크를 지원하지 않습니다.
8 공유 프라이빗 링크는 Foundry 리소스에 대한 연결에 대해 지원됩니다. AI 보강을 위해 Azure AI Search는 청구를 위해 Foundry 리소스에 연결합니다. 이러한 연결은 공유 프라이빗 링크를 통해 비공개일 수 있으며, 기술 세트 정의에서 관리 ID(키 없는 구성) 를 구성할 때만 지원됩니다.
9 OneLake 작업 영역에 대한 연결에는 공유 프라이빗 링크가 지원됩니다. 작업 영역에 맞는 privateLinkServicesForFabric 리소스를 만들려면 구독에 네임스페이스를 등록Microsoft.Fabric하고 Azure에서 프라이빗 링크 서비스 만들기에 설명된 대로 2단계를 참조하세요. 공유 프라이빗 링크를 사용하는 경우 OneLake 데이터 원본 구성은 OneLake 인덱서 설명서에 설명된 대로 특정 연결 문자열로 정의되어야 합니다.
1 - 공유 프라이빗 링크 만들기
Azure Portal, 관리 REST API, Azure CLI 또는 Azure PowerShell을 사용하여 공유 프라이빗 링크를 만듭니다.
몇 가지 팁은 다음과 같습니다.
- 의미 있는 이름을 프라이빗 링크에 지정합니다. Azure PaaS 리소스에서 공유 프라이빗 링크는 다른 프라이빗 엔드포인트와 함께 표시됩니다. “shared-private-link-for-search”와 같은 이름은 사용 방법을 상기시킬 수 있습니다.
이 섹션에서 이러한 단계를 완료하면 보류 중인 상태로 프로비전되는 공유 프라이빗 링크가 생깁니다. 링크를 만드는 데 몇 분이 걸립니다. 만들어진 후에는 리소스 소유자가 요청을 승인해야 작동 가능합니다.
Azure Portal에 로그인하고 검색 서비스를 찾습니다.
왼쪽 창의 설정 에서 네트워킹을 선택합니다.
공유 프라이빗 액세스 페이지에서 + 공유 프라이빗 액세스 추가를 선택합니다.
내 디렉터리에서 Azure 리소스에 연결 또는 리소스 ID로 Azure 리소스에 연결을 선택합니다.
첫 번째 옵션(권장)을 선택하면 Azure Portal에서 적절한 Azure 리소스를 선택할 수 있도록 도와주고 리소스의 그룹 ID, 리소스 종류 등의 다른 속성을 채워줍니다.
두 번째 옵션을 선택하는 경우 Azure 리소스 ID를 수동으로 입력하고 이 문서의 시작 부분에 있는 목록에서 적절한 그룹 ID를 선택합니다.
프로비전 상태가 “업데이트 중”인지 확인합니다.
리소스가 만들어지면 리소스의 프로비전 상태가 “성공”으로 변경됩니다.
공유 프라이빗 링크 만들기 워크플로
성공 시 202 Accepted 응답이 반환됩니다. 아웃바운드 프라이빗 엔드포인트를 만드는 프로세스는 장기 실행(비동기) 작업입니다. 여기에는 다음 리소스 배포가 포함됩니다.
"Pending"상태의 개인 IP 주소로 할당된 프라이빗 엔드포인트입니다. 개인 IP 주소는 검색 서비스별 프라이빗 인덱서에 대한 실행 환경의 가상 네트워크에 할당된 주소 공간에서 가져옵니다. 프라이빗 엔드포인트 승인 시 Azure AI 검색에서 Azure 리소스로의 통신은 개인 IP 주소와 보안 프라이빗 링크 채널에서 시작됩니다.그룹 ID를 기반으로 하는 리소스 유형에 대한 프라이빗 DNS 영역입니다. 이 리소스를 배포하여 프라이빗 리소스에 대한 DNS 조회가 프라이빗 엔드포인트와 연결된 IP 주소를 활용하는지 확인합니다.
2 - 프라이빗 엔드포인트 연결 승인
프라이빗 엔드포인트 연결 승인은 Azure PaaS 쪽에서 부여됩니다. 리소스 소유자의 명시적인 승인이 필요합니다. 다음 단계에서는 Azure Portal을 사용한 승인을 다루지만, Azure PaaS 쪽에서 프로그래밍 방식으로 연결을 승인하는 몇 가지 링크는 다음과 같습니다.
- Azure Storage에서 프라이빗 엔드포인트 연결 - 배치 사용
- Azure Cosmos DB에서 프라이빗 엔드포인트 연결 - 만들기 또는 업데이트 사용
- Azure OpenAI에서는 프라이빗 엔드포인트 연결 - 만들기 또는 업데이트 사용
- Microsoft Onelake에서 프라이빗 엔드포인트 - CLI를 통한 승인 또는 프라이빗 엔드포인트 - 포털을 통한 승인
Azure Portal을 사용하여 다음 단계를 수행합니다.
Azure PaaS 리소스의 네트워킹 페이지를 엽니다.text
프라이빗 엔드포인트 연결을 나열하는 섹션을 찾습니다. 다음 예는 스토리지 계정에 대한 것입니다.
연결을 선택한 다음, 승인을 선택합니다. Azure Portal에서 상태가 업데이트되는 데 몇 분이 걸릴 수 있습니다.
프라이빗 엔드포인트가 승인되면 Azure AI Search는 생성된 DNS 영역에 필요한 DNS 영역 매핑을 만듭니다.
네트워킹 페이지의 프라이빗 엔드포인트 링크가 활성화되어 있어도 확인되지 않습니다.
링크를 선택하면 오류가 발생합니다. 백 엔드 프라이빗 엔드포인트 리소스는 Microsoft 관리 테넌트에서 Microsoft에 의해 프로비전되고 연결된 리소스(Azure AI 검색)는 테넌트에 있기 때문에 "The access token is from the wrong issuer" 및 must match the tenant associated with this subscription 상태 메시지가 나타납니다. 프라이빗 엔드포인트 연결 링크를 선택하여 프라이빗 엔드포인트 리소스에 액세스할 수 없도록 설계되었습니다.
공유 프라이빗 링크의 상태를 확인하려면 다음 섹션의 지침을 따릅니다.
3 - 공유 프라이빗 링크 상태 확인
Azure AI 검색 쪽에서 검색 서비스 네트워킹 페이지의 공유 프라이빗 액세스 페이지를 다시 방문하여 요청 승인을 확인할 수 있습니다. 연결 상태는 승인됨이어야 합니다.
또는 공유 프라이빗 링크 리소스 - 가져오기를 사용하여 연결 상태를 가져올 수도 있습니다.
az rest --method get --uri https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2025-09-01
그러면 연결 상태가 “속성” 섹션 아래에 “상태”로 표시되는 JSON이 반환됩니다. 다음은 스토리지 계정에 대한 예입니다.
{
"name": "blob-pe",
"properties": {
"privateLinkResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Storage/storageAccounts/contoso-storage",
"groupId": "blob",
"requestMessage": "please approve",
"status": "Approved",
"resourceRegion": null,
"provisioningState": "Succeeded"
}
}
리소스의 프로비전 상태(properties.provisioningState)가 이고 “성공함”이고 연결 상태(properties.status)가 “승인됨”이면 공유 프라이빗 링크 리소스가 작동하고 프라이빗 엔드포인트를 통해 통신하도록 인덱서를 구성할 수 있음을 의미합니다.
4 - 프라이빗 환경에서 실행되도록 인덱서 구성
인덱서 실행은 검색 서비스와 관련된 프라이빗 환경 또는 비용이 많이 드는 여러 고객의 기술 세트 처리를 오프로드하기 위해 내부적으로 사용되는 다중 테넌트 환경에서 발생합니다.
실행 환경은 투명하지만 일단 방화벽 규칙을 빌드하거나 프라이빗 연결을 설정하기 시작하면 인덱서 실행을 고려해야 합니다. 프라이빗 연결의 경우 항상 프라이빗 환경에서 실행되도록 인덱서 실행을 구성합니다.
이 단계에서는 REST API를 사용하여 프라이빗 환경에서 실행할 인덱서를 구성하는 방법을 보여 줍니다. Azure Portal의 JSON 편집기를 사용하여 실행 환경을 설정할 수도 있습니다.
참고
프라이빗 엔드포인트 연결이 승인되기 전에 이 단계를 수행할 수 있습니다. 그러나 프라이빗 엔드포인트 연결이 승인된 것으로 표시될 때까지 보안 리소스(예: 스토리지 계정)와 커뮤니케이션하려는 기존 인덱서는 일시적인 오류 상태가 되고 새 인덱서는 생성되지 않습니다.
평소와 같이 데이터 원본 정의, 인덱스 및 기술 세트(사용하는 경우)를 만듭니다. 공유 프라이빗 엔드포인트를 사용하는 경우에 따라 달라지는 이러한 정의에는 속성이 없습니다.
이전 단계에서 만든 데이터 원본, 인덱스 및 기술 세트를 가리키는 인덱서를 만듭니다. 또한 인덱서
executionEnvironment구성 속성을private으로 설정하여 인덱서가 프라이빗 실행 환경에서 실행되도록 합니다.{ "name": "indexer", "dataSourceName": "blob-datasource", "targetIndexName": "index", "parameters": { "configuration": { "executionEnvironment": "private" } }, "fieldMappings": [] }
인덱서가 성공적으로 만들어지면 프라이빗 엔드포인트 연결을 통해 Azure 리소스에 연결해야 합니다. 인덱서 상태 API를 사용하여 인덱서의 상태를 모니터링할 수 있습니다.
참고
기존 인덱서가 이미 있는 경우 PUT API를 통해 executionEnvironment를 private으로 설정하거나 Azure Portal의 JSON 편집기를 사용하여 인덱서를 업데이트할 수 있습니다.
5 - 공유 프라이빗 링크 테스트
아직 수행하지 않은 경우 Azure PaaS 리소스가 공용 인터넷에서 연결을 거부하는지 확인합니다. 연결이 수락되면 Azure PaaS 리소스의 네트워킹 페이지에서 DNS 설정을 검토합니다.
프라이빗 엔드포인트에 대한 인덱서 연결과 같은 아웃바운드 요청 시나리오를 호출할 수 있는 도구를 선택합니다. 가져오기 마법사를 사용하는 것이 쉽지만 REST 클라이언트 및 REST API를 사용해도 정밀도를 높일 수 있습니다. 프라이빗 연결에 검색 서비스가 구성되지 않은 경우 Search에 대한 REST 클라이언트 연결은 공용 인터넷을 통해 수행할 수 있습니다.
연결 문자열을 프라이빗 Azure PaaS 리소스로 설정합니다. 공유 프라이빗 링크에서 연결 문자열의 형식은 변경되지 않습니다. 검색 서비스는 내부적으로 공유 프라이빗 링크를 호출합니다.
인덱서 워크로드의 경우 연결 문자열은 데이터 원본 정의에 있습니다. 데이터 원본의 예는 다음과 같습니다.
{ "name": "my-blob-ds", "type": "azureblob", "subtype": null, "credentials": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=..." }인덱서 워크로드의 경우 인덱서 정의에서 실행 환경을 설정해야 합니다. 인덱서 정의의 예는 다음과 같습니다.
"name": "indexer", "dataSourceName": "my-blob-ds", "targetIndexName": "my-index", "parameters": { "configuration": { "executionEnvironment": "private" } }, "fieldMappings": [] }인덱서를 실행합니다. 인덱서 실행에 성공하고 검색 인덱스가 채워지면 공유 프라이빗 링크가 작동합니다.
문제 해결
“데이터 원본 자격 증명이 유효하지 않음”과 함께 인덱서 만들기에 실패하는 경우 연결을 디버그하기 전에 공유 프라이빗 링크의 승인 상태를 확인합니다. 상태가
Approved이면properties.provisioningState속성을 확인합니다.Incomplete이면 기본 종속성에 문제가 있는 것일 수 있습니다. 이 경우PUT요청을 다시 실행하여 공유 프라이빗 링크를 다시 만듭니다. 승인 단계를 반복해야 할 수도 있습니다.인덱서가 일관적으로 또는 간헐적으로 실패하는 경우 인덱서에서
executionEnvironment속성을 확인합니다. 값은private로 설정해야 합니다. 이 속성을 설정하지 않았고 인덱서 실행이 과거에 성공했다면 검색 서비스가 저절로 프라이빗 환경을 사용했기 때문에 문제가 발생한 것입니다. 시스템에 부하가 걸리면 검색 서비스는 다중 테넌트 환경에서 처리를 옮깁니다.공유 프라이빗 링크를 만들 때 오류가 발생하는 경우 서비스 한도를 확인하여 계층의 할당량을 초과하지 않았는지 확인합니다.
다음 단계
프라이빗 엔드포인트 및 기타 보안 연결 방법에 대해 자세히 알아보기: