참고
Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.
네트워크 보안 경계는 가상 네트워크 외부에서 배포하는 PaaS(Platform as a Service) 리소스를 둘러싼 논리적 네트워크 경계입니다. Microsoft Foundry 모델에서 Azure AI 검색, Azure Storage 및 Azure OpenAI와 같은 리소스에 대한 공용 네트워크 액세스를 제어하기 위한 경계를 설정합니다.
이 문서에서는 Azure AI 검색 서비스를 네트워크 보안 경계에 가입하여 검색 서비스에 대한 네트워크 액세스를 제어하는 방법을 설명합니다. 네트워크 보안 경계에 조인하면 다음과 같은 이점이 있습니다.
- 동일한 경계에 있는 다른 Azure 리소스와 관련하여 검색 서비스에 대한 모든 액세스를 기록합니다.
- 경계 외부의 다른 서비스로 검색 서비스에서 데이터가 반출되는 것을 차단합니다.
- 네트워크 보안 경계의 인바운드 및 아웃바운드 액세스 기능을 사용하여 검색 서비스에 대한 액세스를 허용합니다.
이 문서에 설명된 대로 Azure Portal에서 네트워크 보안 경계에 검색 서비스를 추가할 수 있습니다. 또는 검색 관리 REST API 를 사용하여 구성 설정을 보고 동기화합니다.
필수 구성 요소
기존 네트워크 보안 경계. 검색 서비스와 연결할 하나를 만들 수 있습니다.
Azure AI 검색, 모든 지역의 모든 청구 가능 계층.
Azure 역할 할당: 경계, 프로필, 액세스 규칙 및 연결 관계를 만들고 관리하려면 경계(또는 해당 리소스 그룹이나 구독)에 대해 네트워크 보안 경계 기여자 역할이 필요합니다. 검색 서비스에서 이를 경계와 연결하려면 Search Service 기여자(또는 기여자) 역할이 필요합니다. 자세한 내용은 네트워크 보안 경계란?을 참조하세요.
인덱서를 사용하려는 경우 시스템 또는 사용자 할당 관리 ID 를 사용하여 검색 서비스를 구성하고 ID에 각 데이터 원본에 적절한 데이터 평면 역할을 할당합니다.
제한점
지원되는 인덱서 데이터 원본은 현재 Azure Blob Storage, Azure Cosmos DB for NoSQL 및 Azure SQL Database로 제한됩니다.
데이터 검색을 위해 Azure PaaS에 대한 인덱서 연결은 기본 경계 내 사용 사례입니다. 다른 트래픽의 경우 인바운드 및 아웃바운드 규칙을 구성합니다. Microsoft Foundry 리소스에 대한 아웃바운드 호출은 Microsoft Foundry 리소스에 대한 아웃바운드 액세스 참조하세요. 공유 프라이빗 링크 는 특정 리소스 종류에 대한 대안입니다.
Microsoft Foundry 리소스에 대한 아웃바운드 액세스
검색 서비스와 Microsoft Foundry 리소스를 모두 포함하는 네트워크 보안 경계는 이들 간의 아웃바운드 호출에 대한 프라이빗 채널을 제공합니다. 경계는 리소스 및 네트워크 계층에서 작동하므로 Foundry 리소스를 호출하는 모든 검색 서비스 기능은 다음을 비롯한 동일한 허용 경로를 사용합니다.
Azure OpenAI 임베딩 기술, GenAI 프롬프트 기술, 콘텐츠 이해 기술 및 AI 보강 및 청구를 위한 기타 Foundry 리소스 기술과 같이 Foundry 리소스를 호출하는 모든 기술.
통합된 벡터화 동안 쿼리 시 Azure OpenAI 벡터화입니다.
에이전트 검색은 지식 에이전트에서 Foundry 모델 배포로 호출합니다.
프라이빗 채널을 사용하도록 설정하려면 다음을 수행합니다.
검색 서비스와 Foundry 리소스를 모두 동일한 네트워크 보안 경계 또는 둘 사이의 통신을 허용하는 경계에 추가합니다.
두 리소스가 동일한 경계에 있고 검색 서비스가 관리 ID를 사용하여 Foundry 리소스에 인증하는 경우 아웃바운드 규칙을 추가할 필요가 없습니다. 경계 내 트래픽은 암시적으로 허용됩니다. 리소스가 서로 다른 경계에 있거나 검색 서비스가 API 키를 사용하여 인증하는 경우 Foundry 리소스의 호스트 이름을 대상으로 하는 검색 서비스와 연결된 경계에 아웃바운드 FQDN 액세스 규칙을 추가합니다. 구성의 Foundry 쪽에 대한 지침은 네트워크 보안 경계에 Microsoft Foundry 추가 참조하세요.
다음 두 단계로 액세스 유효성을 검사합니다.
학습 모드의 경계를 사용하여 Foundry 리소스를 호출하는 기술 세트, 벡터라이저 쿼리 또는 에이전트 검색 호출을 실행합니다. 경계 로그를 검토하여 예상 액세스 경로를 확인합니다.
적용 모드로 전환하고 동일한 작업을 다시 실행합니다. 인덱서 실행 기록 및 경계의 아웃바운드 허용 로그에서 성공을 확인합니다.
Microsoft.CognitiveServices 종류의 AIServices(Microsoft Foundry) 리소스에 대한 NSP(네트워크 보안 경계) 지원을 일반적으로 사용할 수 있습니다.
OpenAI(Azure OpenAI Service) 종류의 리소스에 대한 NSP 지원은 공개 미리 보기로 제공됩니다. 현재 지원 목록은 온보딩된 프라이빗 링크 리소스를 참조하세요.
Foundry 리소스에 대한 공유 프라이빗 링크는 대안으로 계속 지원됩니다.
네트워크 보안 경계에 검색 서비스 할당
모든 인덱싱 및 쿼리 트래픽이 경계 규칙에 따라 관리되도록 검색 서비스를 경계와 연결합니다.
Tip
자동화의 경우 포털 대신 검색 관리 REST API 를 사용합니다. 자세한 내용은 REST API를 사용하여 Azure AI 검색 서비스 관리를 참조하세요.
Azure Portal에서 구독에 맞는 네트워크 보안 경계 서비스를 찾습니다.
왼쪽 창에서연결된 리소스> 선택합니다.
추가>기존 프로필과 리소스 연결을 선택합니다.
프로필에 대해 네트워크 보안 경계를 만들 때 만든 프로필을 선택합니다.
추가를 선택한 다음 검색 서비스를 선택합니다.
왼쪽 아래 코너에서 연관을 선택하여 연관을 만듭니다.
네트워크 보안 경계에서 검색 서비스 제거
경계에서 검색 서비스를 연결 해제하려면 다음을 수행합니다.
Azure Portal에서 네트워크 보안 경계 리소스로 이동합니다.
왼쪽 창에서연결된 리소스> 선택합니다.
테이블에서 검색 서비스를 찾고 행 끝에 있는 세 개의 점을 선택한 다음 연결 제거를 선택합니다.
제거를 확인합니다. 연결이 제거되면 경계 규칙이 검색 서비스에 더 이상 적용되지 않으며
publicNetworkAccess검색 서비스의 설정이 인바운드 트래픽을 다시 제어합니다.
네트워크 보안 경계 액세스 모드
네트워크 보안 경계는 연관된 리소스에 대해 두 가지 액세스 모드를 지원합니다.
| Mode | Description |
|---|---|
| 학습 모드 | 이는 기본 액세스 모드입니다. 학습 모드에서 네트워크 보안 경계는 경계가 강제 모드인 경우 거부될 검색 서비스에 대한 모든 트래픽을 기록합니다. 이 액세스 모드를 사용하면 네트워크 관리자가 액세스 규칙 적용을 구현하기 전에 검색 서비스의 기존 액세스 패턴을 이해할 수 있습니다. |
| 강제 적용 모드 | 강제 모드에서 네트워크 보안 경계는 액세스 규칙에 의해 명시적으로 허용되지 않는 모든 트래픽을 기록하고 거부합니다. |
네트워크 보안 경계 및 검색 서비스 네트워킹 설정
publicNetworkAccess 설정은 네트워크 보안 경계와 검색 서비스 연결을 결정합니다.
학습 모드에서 설정은
publicNetworkAccess리소스에 대한 공용 액세스를 제어합니다.강제 모드에서 네트워크 보안 경계 규칙이
publicNetworkAccess설정을 우선합니다. 예를 들어 설정이 있는publicNetworkAccess검색 서비스가 강제 모드의enabled네트워크 보안 경계와 연결된 경우 검색 서비스에 대한 액세스는 여전히 네트워크 보안 경계 액세스 규칙에 의해 제어됩니다.
네트워크 보안 경계 액세스 모드 변경
Azure Portal에서 네트워크 보안 경계 리소스로 이동합니다.
왼쪽 창에서연결된 리소스> 선택합니다.
표에서 검색 서비스를 찾습니다.
행 끝에 있는 세 개의 점을 선택한 다음 액세스 모드 변경을 선택합니다.
원하는 액세스 모드를 선택한 다음 적용을 선택합니다.
네트워크 액세스 로깅 활성화
Azure Portal에서 네트워크 보안 경계 리소스로 이동합니다.
왼쪽 창에서진단 설정> 선택합니다.
진단 설정 추가를 선택합니다.
diagnostic이름에 대한 이름(예: )을 입력합니다.로그에서 allLogs를 선택합니다. allLogs는 네트워크 보안 경계 내 리소스에 대한 모든 인바운드 및 아웃바운드 네트워크 액세스가 기록되도록 보장합니다.
대상 세부 정보에서 스토리지 계정에 보관 또는 Log Analytics 작업 영역으로 보내기를 선택합니다. 스토리지 계정은 네트워크 보안 경계와 동일한 지역에 있어야 합니다. 기존 스토리지 계정을 사용하거나 새 계정을 만들 수 있습니다. Log Analytics 작업 영역은 네트워크 보안 경계에서 사용하는 지역과 다른 지역에 있을 수 있습니다. 또한, 해당되는 다른 대상을 선택할 수도 있습니다.
저장을 선택하여 진단 설정을 만들고 네트워크 액세스 로깅을 시작합니다.
로깅이 활성 상태인지 확인하려면 검색 서비스에 대한 트래픽을 생성합니다(예: 쿼리 실행). 약 10분 이내에 Log Analytics
NSPAccessLogs테이블을 쿼리하거나 스토리지 계정에서 해당insights-logs-*컨테이너를 확인합니다.
네트워크 액세스 로그 읽기
네트워크 보안 경계 로그는 진단 설정에서 선택한 대상으로 전달됩니다. 가장 일반적인 대상은 Log Analytics 작업 영역 및 스토리지 계정입니다.
Log Analytics 작업 영역
테이블에는 NSPAccessLogs 모든 로그 범주(예: NspPublicInboundPerimeterRulesAllowed.)에 대한 모든 로그가 포함됩니다. 각 로그에는 로그 범주와 일치하는 네트워크 보안 경계 네트워크 액세스 레코드가 포함됩니다.
NspPublicInboundPerimeterRulesAllowed 로그 형식의 예는 다음과 같습니다.
| 열 이름 | 의미 | 예제 값 |
|---|---|---|
| 결과설명 | 네트워크 액세스 작업의 이름입니다. | POST /indexes/my-index/docs/search (인덱스 "my-index"에서 문서를 검색하는 POST 요청) |
| 프로필 | 어떤 네트워크 보안 경계와 검색 서비스가 연관되었는지. | 기본 프로필 |
| ServiceResourceId | 검색 서비스의 리소스 ID입니다. | search-service-resource-id |
| 일치 규칙 | 로그가 일치하는 규칙에 대한 JSON 설명입니다. | { "accessRule": "IP firewall" } |
| 출처 IP 주소 | 해당하는 경우 인바운드 네트워크 액세스의 원본 IP입니다. | 192.0.2.1 |
| AccessRuleVersion | 네트워크 액세스 규칙을 적용하는 데 사용되는 네트워크 보안 경계 액세스 규칙의 버전입니다. | 0 |
스토리지 계정
스토리지 계정에는 모든 로그 범주(예: insights-logs-nsppublicinboundperimeterrulesallowed.)에 대한 컨테이너가 있습니다. 컨테이너 내부의 폴더 구조는 네트워크 보안 경계의 리소스 ID와 로그가 수집된 시간과 일치합니다. JSON 로그 파일의 각 줄에는 로그 범주와 일치하는 네트워크 보안 경계 네트워크 액세스에 대한 기록이 포함되어 있습니다.
예를 들어, 인바운드 경계 규칙 허용 범주 로그는 다음 형식을 사용합니다.
"properties": {
"ServiceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/network-security-perimeter/providers/Microsoft.Search/searchServices/network-security-perimeter-search",
"Profile": "defaultProfile",
"MatchedRule": {
"AccessRule": "myaccessrule"
},
"Source": {
"IpAddress": "192.0.2.1",
}
}
검색 서비스에 대한 액세스 규칙 추가
네트워크 보안 경계 프로필은 경계를 통한 액세스를 허용하거나 거부하는 규칙을 지정합니다.
경계 내에서는 모든 리소스가 네트워크 수준에서 상호 액세스할 수 있습니다. 여전히 인증 및 권한 부여를 설정해야 하지만 네트워크 수준에서는 경계 내부의 연결 요청이 수락됩니다.
네트워크 보안 경계 외부의 리소스에 대해서는 인바운드 및 아웃바운드 액세스 규칙을 지정해야 합니다. 인바운드 규칙은 어떤 연결이 들어올지 지정하고, 아웃바운드 규칙은 어떤 요청이 나갈지 지정합니다.
검색 서비스는 Microsoft Foundry 포털 및 인덱싱 또는 쿼리 요청을 보내는 앱과 같은 앱의 인바운드 요청을 수락합니다. 검색 서비스는 인덱서 기반 인덱싱 및 기술 세트 실행 중에 아웃바운드 요청을 보냅니다. 이 섹션에서는 Azure AI 검색 시나리오에 대한 인바운드 및 아웃바운드 액세스 규칙을 설정하는 방법을 설명합니다.
참고
검색 서비스가 관리 ID 및 Microsoft Entra 기반 role 할당을 사용하여 인증하는 경우 동일한 네트워크 보안 경계의 리소스 간 트래픽은 네트워크 수준에서 암시적으로 허용됩니다. 검색 서비스가 API 키를 사용하여 인증하는 경우 경계는 트래픽을 경계 내로 식별할 수 없으므로 두 리소스가 동일한 경계에 있는 경우에도 명시적 인바운드 및 아웃바운드 액세스 규칙을 추가해야 합니다.
인바운드 액세스 규칙 추가
인바운드 액세스 규칙을 사용하면 경계 외부의 인터넷과 리소스가 경계 내부의 리소스에 연결할 수 있습니다.
네트워크 보안 경계는 두 가지 형식의 인바운드 액세스 규칙을 지원합니다.
IP 주소 범위. IP 주소 또는 범위는 CIDR(Classless Inter-Domain Routing) 형식이어야 합니다. CIDR 표기법의 예로는 192.0.2.0/24가 있습니다. 이는 192.0.2.0에서 192.0.2.255까지 범위의 IP를 나타냅니다. 이 형식의 규칙은 범위 내의 모든 IP 주소에서 들어오는 요청을 허용합니다.
구독. 이 유형의 규칙은 구독의 관리 ID를 사용하여 인증된 인바운드 액세스를 허용합니다. 규칙은 네트워크 경로만 제어합니다. 호출자는 여전히 검색 서비스에 Azure RBAC 역할 할당이 필요합니다.
Azure Portal에서 인바운드 액세스 규칙을 추가하려면:
Azure Portal에서 네트워크 보안 경계 리소스로 이동합니다.
왼쪽 창에서 설정>프로필을 선택합니다.
네트워크 보안 경계에서 사용 중인 프로필을 선택합니다.
왼쪽 창에서인바운드 액세스 규칙> 선택합니다.
추가를 선택합니다.
다음 값을 입력하거나 선택합니다.
설정 값 규칙 이름 인바운드 액세스 규칙의 이름(예: MyInboundAccessRule.)원본 유형 유효한 값은 IP 주소 범위 또는 구독입니다. 허용되는 원본 IP 주소 범위를 선택한 경우 인바운드 액세스를 허용하려는 CIDR 형식으로 IP 주소 범위를 입력합니다. Azure IP 범위 및 서비스 태그 파일 다운로드합니다. 구독을 선택한 경우 인바운드 액세스를 허용하려는 구독을 사용합니다. 추가를 선택하여 인바운드 액세스 규칙을 만듭니다.
규칙을 확인하려면 연결을 테스트 프로필의 적용 모드로 전환합니다. 일치하는 요청이 로그 범주에
NspPublicInboundPerimeterRulesAllowed표시되고 일치하지 않는 요청이 범주에NspPublicInboundPerimeterRulesDenied표시되는지 확인합니다.
아웃바운드 액세스 규칙 추가
검색 서비스는 인덱서 기반 인덱싱 및 기술 세트 실행 중에 아웃바운드 호출을 수행합니다. 인덱서 데이터 원본, Foundry 도구 청구 기술용 연결된 Microsoft Foundry 리소스 또는 사용자 지정 기술 논리가 네트워크 보안 경계 외부에 있는 경우 검색 서비스에서 연결을 만들 수 있는 아웃바운드 액세스 규칙을 만듭니다.
보안 경계 내에서 인덱서는 Azure Blob Storage, NoSQL Azure Cosmos DB 및 Azure SQL Database 연결할 수 있습니다. 인덱서가 다른 데이터 원본을 사용하는 경우 해당 연결을 지원하는 아웃바운드 액세스 규칙이 필요합니다.
네트워크 보안 경계는 대상의 FQDN(정규화된 도메인 이름)을 기반으로 하는 아웃바운드 액세스 규칙을 지원합니다. 예를 들어, mystorageaccount.blob.core.windows.net과 같은 FQDN에 대한 네트워크 보안 경계와 연결된 모든 서비스에서의 아웃바운드 액세스를 허용할 수 있습니다.
Azure Portal에서 아웃바운드 액세스 규칙을 추가하려면:
Azure Portal에서 네트워크 보안 경계 리소스로 이동합니다.
왼쪽 창에서 설정>프로필을 선택합니다.
네트워크 보안 경계에서 사용 중인 프로필을 선택합니다.
왼쪽 창에서아웃바운드 액세스 규칙> 선택합니다.
추가를 선택합니다.
다음 값을 입력하거나 선택합니다.
설정 값 규칙 이름 아웃바운드 액세스 규칙의 이름(예: MyOutboundAccessRule.)대상 유형 FQDN으로 둡니다. 허용된 목적지 아웃바운드 액세스를 허용하려는 FQDN의 쉼표로 구분된 목록을 입력합니다. 추가를 선택하여 아웃바운드 액세스 규칙을 만듭니다.
규칙을 확인하려면 연결을 테스트 프로필의 적용 모드로 전환합니다. 일치하는 아웃바운드 요청이 로그 범주에 표시되는지
NspPublicOutboundPerimeterRulesAllowed확인합니다.
네트워크 보안 경계를 통해 연결 테스트
네트워크 보안 경계를 통해 연결을 테스트하려면 인터넷 연결이 있는 로컬 컴퓨터 또는 Azure VM에서 웹 브라우저에 액세스해야 합니다.
검색 서비스에 대한 네트워크 액세스에 대한 네트워크 보안 경계 요구 사항을 적용하려면 네트워크 보안 경계 연결을 강제 모드로 변경합니다.
클라이언트 선택:
로컬 컴퓨터의 경우 공용 IP 주소를 가져옵니다.
Azure VM의 경우 Private Link를 사용하거나 Azure 포털에서 IP 주소를 찾으세요.
액세스를 허용하도록 해당 IP 주소에 대한 인바운드 액세스 규칙을 만듭니다.
Azure 포털에서 검색 서비스를 열고 해당 인덱스를 봅니다.
예상 성공: 인덱스 목록이 로드되고 테스트 쿼리를 실행할 수 있습니다. 인바운드 IP 규칙이 작동합니다.
403 또는 "공용 네트워크 액세스가 비활성화되었습니다" 오류가 표시되는 경우: 클라이언트 IP 또는 Azure 포털이 인바운드 규칙에 포함되지 않습니다. 인바운드 액세스 규칙을 확인합니다.
일반적인 문제 해결
| 증상 | 가능한 원인 | 완화 방법 |
|---|---|---|
| 적용 모드로 전환한 후 인덱서가 실패합니다. | 검색 서비스 ID에 데이터 원본에 대한 데이터 평면 역할이 없거나 데이터 원본이 경계 내에서 지원되지 않습니다. | 검색 서비스가 관리 ID 를 사용하고 데이터 원본에 필요한 역할을 했는지 확인합니다. 지원되지 않는 데이터 원본의 경우 아웃바운드 액세스 규칙을 추가합니다. |
| Foundry 리소스에 대한 스킬, 벡터라이저 또는 에이전트형 검색 호출이 거부됩니다. | Foundry 리소스가 다른 경계에 있거나 검색 서비스가 API 키를 사용하여 인증하므로 채널이 암시적이지 않습니다. | 동일한 경계에 두 리소스를 추가하고 관리 ID를 사용하거나 Foundry 리소스의 호스트 이름을 대상으로 하는 아웃바운드 FQDN 규칙을 추가합니다. 자세한 내용은 Microsoft Foundry 리소스에 대한 아웃바운드 액세스 참조하세요. |
| 진단 로그는 Log Analytics 또는 Storage에 표시되지 않습니다. | 수집 지연 시간 또는 스토리지 계정이 보안 경계와 동일한 지역에 있지 않음. | 트래픽을 생성한 후 최대 10분 정도 기다린 다음 테이블을 쿼리 NSPAccessLogs 하거나 일치하는 insights-logs-* 스토리지 컨테이너를 확인합니다. 스토리지 계정 지역을 확인합니다. |
| 적용 후 검색 서비스에 대한 포털 액세스가 거부됩니다. | 클라이언트 IP는 어떤 인바운드 규칙에도 포함되지 않습니다. | 클라이언트 IP에 대한 인바운드 액세스 규칙을 추가하거나 구성을 완료하는 동안 학습 모드로 되돌려 줍니다. |
네트워크 보안 경계 구성 보기 및 관리
네트워크 보안 경계 구성 REST API를 사용하여 검색 서비스에서 경계 구성을 검토하고 조정합니다.
예를 들어 검색 서비스의 현재 경계 구성을 나열합니다.
az rest --method get \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service-name>/networkSecurityPerimeterConfigurations?api-version=2025-05-01"
구성이 perimeter와 동기화되지 않은 경우 재조정을 실행합니다:
az rest --method post \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service-name>/networkSecurityPerimeterConfigurations/<association-name>/reconcile?api-version=2025-05-01"
안정적인 최신 버전의 Search Management REST API를 사용합니다. 자세한 내용은 REST API를 사용하여 Azure AI 검색 서비스 관리를 참조하세요.