Azure 네트워크 보안으로 보호되는 콘텐츠에 대한 인덱서 액세스

검색 솔루션 요구 사항에 Azure 가상 네트워크가 포함된 경우 이 개념 문서에서는 검색 인덱서가 네트워크 보안으로 보호되는 콘텐츠에 액세스하는 방법을 설명합니다. 아웃바운드 트래픽 패턴 및 인덱서 실행 환경에 대해 설명합니다. 또한 Azure AI Search에서 지원하는 네트워크 보호 및 보안 전략에 영향을 줄 수 있는 요인에 대해서도 다룹니다. 마지막으로 Azure Storage는 데이터 액세스 및 영구 스토리지 모두에 사용되므로 이 문서에서는 검색 및 스토리지 연결과 관련된 네트워크 고려 사항도 다룹니다.

단계별 지침을 찾고 있나요? 인덱서 액세스를 허용하도록 방화벽 규칙을 구성하는 방법 또는 프라이빗 엔드포인트를 통해 아웃바운드 연결을 만드는 방법을 참조하세요.

인덱서에서 액세스하는 리소스

Azure AI Search 인덱서는 실행하는 동안 다양한 Azure 리소스에 대한 아웃바운드 호출을 수행할 수 있습니다. 인덱서는 다음 세 가지 상황에서 아웃바운드 호출을 수행합니다.

  • 인덱싱 중에 외부 데이터 원본에 연결
  • 사용자 지정 기술이 포함된 기술 세트를 통해 캡슐화된 외부 코드에 연결
  • 기술 세트 실행 중 Azure Storage에 연결하여 보강을 캐시하거나, 디버그 세션 상태를 저장하거나 지식 저장소에 쓰기

인덱서가 일반적인 실행에서 액세스할 수 있는 모든 가능한 Azure 리소스 종류 목록은 아래 표에 나와 있습니다.

리소스 인덱서 실행 내의 목적
Azure Storage(Blob, ADLS Gen 2, 파일, 테이블) 데이터 원본
Azure Storage(BLOB, 테이블) 기술 세트(보강 캐싱, 디버그 세션, 지식 저장소 프로젝션)
Azure Cosmos DB(다양한 API) 데이터 원본
Azure SQL Database 데이터 원본
Azure 가상 머신의 SQL Server 데이터 원본
SQL Managed Instance 데이터 원본
Azure 기능 기술 세트에 연결되어 사용자 지정 웹 API 기술을 호스트하는 데 사용됨

참고 항목

또한 인덱서는 기본 제공 기술을 위해 Azure AI 서비스에 연결합니다. 그러나 해당 연결은 내부 네트워크를 통해 이루어지며 사용자가 제어하는 네트워크 프로비전의 적용을 받지 않습니다.

지원되는 네트워크 보호

Azure 리소스는 Azure에서 제공하는 여러 네트워크 격리 메커니즘을 사용하여 보호할 수 있습니다. 리소스 및 지역에 따라 Azure AI Search 인덱서는 다음 표에 표시된 제한 사항에 따라 IP 방화벽 및 프라이빗 엔드포인트를 통해 아웃바운드 연결을 만들 수 있습니다.

리소스 IP 제한 프라이빗 엔드포인트
텍스트 기반 인덱싱을 위한 Azure Storage(Blob, ADLS Gen 2, 파일, 테이블) 스토리지 계정과 검색 서비스가 서로 다른 지역에 있는 경우에만 지원됨 지원됨
AI 보강을 위한 Azure Storage(캐싱, 디버그 세션, 지식 저장소) 스토리지 계정과 검색 서비스가 서로 다른 지역에 있는 경우에만 지원됨 지원됨
Azure Cosmos DB for NoSQL 지원됨 지원됨
Azure Cosmos DB for MongoDB 지원됨 지원되지 않음
Azure Cosmos DB for Apache Gremlin 지원됨 지원되지 않음
Azure SQL Database 지원됨 지원됨
Azure 가상 머신의 SQL Server 지원됨 해당 없음
SQL Managed Instance 지원됨 해당 없음
Azure Functions 지원됨 Azure Functions의 특정 계층에 대해서만 지원됨

인덱서 실행 환경

Azure AI Search에는 작업의 특성에 따라 처리를 최적화하는 인덱서 실행 환경이라는 개념이 있습니다. 두 가지 환경이 있습니다. IP 방화벽을 사용하여 Azure 리소스에 대한 액세스를 제어하는 경우 실행 환경에 대한 정보는 둘 모두를 포함하는 IP 범위를 설정하는 데 도움이 됩니다.

지정된 인덱서 실행에 대해 Azure AI Search는 인덱서를 실행할 최상의 환경을 결정합니다. 할당된 작업의 수와 유형에 따라 인덱서는 다음 두 환경 중 하나에서 실행됩니다.

  • 검색 서비스 내부에 있는 프라이빗 실행 환경.

    프라이빗 환경에서 실행되는 인덱서는 동일한 검색 서비스의 다른 인덱싱 및 쿼리 워크로드와 컴퓨팅 리소스를 공유합니다. 일반적으로 기술 세트 없이 텍스트 기반 인덱싱을 수행하는 인덱서만 이 환경에서 실행됩니다.

  • 추가 비용 없이 Microsoft에서 관리하고 보호하는 다중 테넌트 환경. 제어하는 네트워크 프로비전의 적용을 받지 않습니다.

    이 환경은 계산 집약적 처리를 없애는 데 사용되며 서비스별 리소스는 일상적인 작업에 사용할 수 있게 남아 있습니다. 리소스 집약적 인덱서 작업의 예로는 기술 세트 연결, 대용량 문서 처리 또는 대량 문서 처리 등이 있습니다.

다음 섹션에서는 두 실행 환경의 요청을 허용하기 위한 IP 구성에 대해 설명합니다.

인덱서 실행을 위한 IP 범위 설정

원본 데이터를 제공하는 Azure 리소스가 방화벽 뒤에 있는 경우 인덱서 요청이 시작될 수 있는 모든 IP에 대해 인덱서 연결을 허용하는 인바운드 규칙이 필요합니다. IP에는 검색 서비스 및 다중 테넌트 환경에서 사용하는 IP가 포함됩니다.

  • 검색 서비스(및 프라이빗 실행 환경)의 IP 주소를 가져오려면 nslookup(또는 ping)을 사용하여 검색 서비스의 FQDN(정규화된 도메인 이름)을 찾습니다. 퍼블릭 클라우드에서 검색 서비스의 FQDN은 <service-name>.search.windows.net일 수 있습니다.

  • 인덱서가 실행될 수 있는 다중 테넌트 환경의 IP 주소를 얻으려면 AzureCognitiveSearch 서비스 태그를 사용합니다.

    Azure 서비스 태그에는 각 서비스에 대해 게시된 IP 주소 범위가 있습니다. 검색 API 또는 다운로드 가능한 JSON 파일을 사용하여 이러한 IP를 찾을 수 있습니다. IP 범위는 지역에 의해 할당되므로 시작하기 전에 검색 서비스 지역을 확인합니다.

다중 테넌트 환경에 대한 IP 규칙을 설정할 때 특정 SQL 데이터 원본은 IP 주소 사양에 대한 간단한 접근 방식을 지원합니다. 규칙의 모든 IP 주소를 열거하는 대신 AzureCognitiveSearch 서비스 태그를 지정하는 네트워크 보안 그룹 규칙을 만들 수 있습니다.

데이터 원본이 다음 중 하나이면 서비스 태그를 지정할 수 있습니다.

다중 테넌트 환경 IP 규칙에 대한 서비스 태그를 지정한 경우에도 nslookup를 통해 얻은 프라이빗 실행 환경(검색 서비스 자체를 의미)에 대한 명시적 인바운드 규칙이 필요합니다.

연결 방법 선택

가상 네트워크에서 실행되는 솔루션에 Azure AI Search를 통합할 때 다음 제약 조건을 고려합니다.

  • 인덱서는 가상 네트워크 서비스 엔드포인트에 직접 연결할 수 없습니다. 자격 증명, 프라이빗 엔드포인트, 신뢰할 수 있는 서비스, IP 주소 지정을 사용하는 퍼블릭 엔드포인트는 인덱서 연결을 위해 지원되는 유일한 방법입니다.

  • 검색 서비스는 항상 클라우드에서 실행되며, 가상 머신에서 기본적으로 실행되는 특정 가상 네트워크에 프로비전할 수 없습니다. 이 기능은 Azure AI Search에서 제공하지 않습니다.

위의 제약을 감안할 때 가상 네트워크에서 검색 통합을 달성하기 위한 선택은 다음과 같습니다.

  • 데이터에 대한 인덱서 요청을 허용하는 Azure PaaS 리소스에서 인바운드 방화벽 규칙을 구성합니다.

  • 프라이빗 엔드포인트를 사용하여 인덱서 연결을 만드는 검색에서 아웃바운드 연결을 구성합니다.

    프라이빗 엔드포인트의 경우 보호된 리소스에 대한 검색 서비스 연결은 공유 프라이빗 링크를 통해 연결됩니다. 공유 프라이빗 링크는 Azure AI Search 내에서 생성, 관리 및 사용되는 Azure Private Link 리소스입니다. 리소스가 완전히 잠긴 경우(보호된 가상 네트워크에서 실행 중이거나 공용 연결을 통해 사용할 수 없는 경우) 프라이빗 엔드포인트가 유일한 선택입니다.

    프라이빗 엔드포인트를 통한 연결은 검색 서비스의 프라이빗 실행 환경에서 시작되어야 합니다. 이 요구 사항을 충족하려면 다중 테넌트 실행을 사용하지 않도록 설정해야 합니다. 이 단계는 프라이빗 엔드포인트를 통해 아웃바운드 연결 만들기에 설명되어 있습니다.

IP 방화벽 구성은 무료입니다. Azure Private Link 기반으로 하는 프라이빗 엔드포인트는 청구에 영향을 미칩니다.

프라이빗 엔드포인트 작업

이 섹션에서는 아웃바운드 인덱서 연결을 위한 프라이빗 엔드포인트를 설정하는 주요 단계를 요약합니다. 이 요약은 프라이빗 엔드포인트가 시나리오에 가장 적합한지 여부를 결정하는 데 도움이 될 수 있습니다. 자세한 단계는 프라이빗 엔드포인트를 통해 아웃바운드 연결을 만드는 방법에 설명되어 있습니다.

1단계: 보안 리소스에 대한 프라이빗 엔드포인트 만들기

검색 서비스의 포털 페이지 또는 관리 API를 통해 공유 프라이빗 링크를 만듭니다.

Azure AI Search에서 검색 서비스는 텍스트 기반 인덱서의 기본 계층 이상이어야 하고 기술 세트가 있는 인덱서의 경우 S2 이상이어야 합니다.

프라이빗 엔드포인트 연결은 프라이빗 인덱서 실행 환경의 요청을 수락하지만 다중 테넌트 환경은 수락하지 않습니다. 이 요구 사항을 충족하려면 3단계에서 설명한 대로 다중 테넌트 실행을 사용하지 않도록 설정해야 합니다.

2단계: 프라이빗 엔드포인트 연결 승인

공유 프라이빗 링크 리소스를 만드는 (비동기) 작업이 완료되면 프라이빗 엔드포인트 연결이 “보류 중” 상태로 생성됩니다. 아직 이 연결을 통해 트래픽이 흐르지 않습니다.

보안 리소스에서 이 요청을 찾아 승인해야 합니다. 리소스에 따라 Azure Portal을 사용하여 이 작업을 완료할 수 있습니다. 그렇지 않으면 Private Link Service REST API를 사용합니다.

3단계: “프라이빗” 환경에서 강제로 인덱서 실행

프라이빗 엔드포인트 연결의 경우 인덱서의 executionEnvironment"Private"으로 설정해야 합니다. 이 단계에서는 모든 인덱서 실행이 검색 서비스 내에서 프로비전된 프라이빗 환경에 국한되도록 합니다.

이 설정은 검색 서비스가 아닌 인덱서로 범위가 지정됩니다. 모든 인덱서가 프라이빗 엔드포인트를 통해 연결되도록 하려면 각 인덱서에 다음 구성이 있어야 합니다.

    {
      "name" : "myindexer",
      ... other indexer properties
      "parameters" : {
          ... other parameters
          "configuration" : {
            ... other configuration properties
            "executionEnvironment": "Private"
          }
        }
    }

리소스에 대해 승인된 프라이빗 엔드포인트를 승인하면 프라이빗으로 설정된 인덱서가 Azure 리소스에 대해 생성 및 승인된 프라이빗 링크를 통해 액세스 권한을 얻으려고 시도합니다.

Azure AI Search는 프라이빗 엔드포인트의 호출자에게 적절한 Azure RBAC 역할 권한이 있는지 확인합니다. 예를 들어 읽기 전용 권한을 사용하여 스토리지 계정에 대한 프라이빗 엔드포인트 연결을 요청하면 이 호출이 거부됩니다.

프라이빗 엔드포인트가 승인되지 않았거나 인덱서가 프라이빗 엔드포인트 연결을 사용하지 않은 경우 인덱서 실행 기록에 transientFailure 오류 메시지가 표시됩니다.

네트워크로 보호되는 스토리지 계정에 대한 액세스

검색 서비스는 인덱스 및 동의어 목록을 저장합니다. 스토리지가 필요한 다른 기능의 경우 Azure AI Search는 Azure Storage에 종속됩니다. 보강 캐싱, 디버그 세션 및 지식 저장소는 이 범주에 속합니다. 각 서비스의 위치와 스토리지에 대한 모든 네트워크 보호는 데이터 액세스 전략을 결정합니다.

동일한 지역 서비스

Azure Storage에서 방화벽을 통해 액세스하려면 요청이 다른 지역에서 시작되어야 합니다. Azure Storage 및 Azure AI Search가 동일한 지역에 있는 경우 검색 서비스의 시스템 ID 아래 데이터에 액세스하여 스토리지 계정에 대한 IP 제한을 무시할 수 있습니다.

시스템 ID를 사용하여 데이터 액세스를 지원하기 위한 두 가지 옵션이 있습니다.

위의 옵션은 인증을 위해 Microsoft Entra ID 따라 달라지므로 Microsoft Entra 로그인을 사용하여 연결해야 합니다. 현재 방화벽을 통한 동일 지역 연결에는 Azure AI Search 시스템 할당 관리 ID만 지원됩니다.

다른 지역의 서비스

검색 및 스토리지가 다른 지역에 있는 경우 앞에서 언급한 옵션을 사용하거나 서비스의 요청을 인정하는 IP 규칙을 설정할 수 있습니다. 워크로드에 따라 다음 섹션에 설명된 대로 여러 실행 환경에 대한 규칙을 설정해야 할 수 있습니다.

다음 단계

이제 Azure 가상 네트워크에 배포된 솔루션에 대한 인덱서 데이터 액세스 옵션을 잘 알고 있으므로 다음 단계로 다음 방법 문서 중 하나를 검토합니다.