다음을 통해 공유


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

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

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

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

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

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

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

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

참고 항목

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

인덱서는 다음 방식을 사용하여 리소스에 연결합니다.

  • 자격 증명이 있는 공용 엔드포인트
  • Azure Private Link를 사용하는 프라이빗 엔드포인트
  • 신뢰할 수 있는 서비스로 연결
  • IP 주소 지정을 통해 연결

Azure 리소스가 가상 네트워크에 있는 경우 프라이빗 엔드포인트 또는 IP 주소 지정을 사용하여 데이터에 대한 인덱서 연결을 허용해야 합니다.

지원되는 네트워크 보호

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에서 관리하고 보호합니다. 제어하는 네트워크 프로비전의 적용을 받지 않습니다. 이 환경은 계산 집약적 처리를 없애는 데 사용되며 서비스별 리소스는 일상적인 작업에 사용할 수 있게 남아 있습니다. 리소스 집약적 인덱서 작업의 예로는 기술 세트, 대용량 문서 처리 또는 대량 문서 처리 등이 있습니다.

Standard2 서비스 이상의 경우 항상 프라이빗 환경을 사용하도록 인덱서를 구성할 수 있습니다. 자세한 내용은 인덱서 만들기를 참조하세요.

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

이 섹션에서는 두 실행 환경의 요청을 인정하기 위한 IP 방화벽 구성에 대해 설명합니다.

Azure 리소스가 방화벽 뒤에 있는 경우 인덱서 요청이 발생할 수 있는 모든 IP에 대해 인덱서 연결을 허용하는 인바운드 규칙을 설정합니다. 여기에는 검색 서비스에서 사용하는 IP 주소와 다중 테넌트 환경에서 사용하는 IP 주소가 포함됩니다.

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

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

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

Azure SQL에 대한 IP 규칙 설정

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

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

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

연결 방식 선택

검색 서비스는 가상 머신에서 기본적으로 실행되는 특정 가상 네트워크에 프로비전할 수 없습니다. 일부 Azure 리소스는 가상 네트워크 서비스 엔드포인트를 제공하지만 Azure AI 검색에서는 이 기능을 제공하지 않습니다. 다음 방식 중 하나를 구현하도록 계획해야 합니다.

접근 방식 세부 정보
Azure 리소스에 대한 인바운드 연결 보호 데이터에 대한 인덱서 요청을 허용하는 인바운드 방화벽 규칙을 Azure 리소스에 구성합니다. 방화벽 구성에는 다중 테넌트 실행을 위한 서비스 태그와 검색 서비스의 IP 주소가 포함되어야 합니다. 인덱서 액세스를 허용하도록 방화벽 규칙 구성을 참조하세요.
Azure AI 검색과 Azure 리소스 간의 프라이빗 연결 리소스 연결을 위해 검색 서비스에서만 사용되는 공유 프라이빗 링크를 구성합니다. 연결은 내부 네트워크를 통해 이동하며 공용 인터넷을 무시합니다. 리소스가 완전히 잠긴 경우(보호된 가상 네트워크에서 실행 중이거나 공용 연결을 통해 사용할 수 없는 경우) 프라이빗 엔드포인트가 유일한 선택입니다. 프라이빗 엔드포인트를 통해 아웃바운드 연결 만들기를 참조하세요.

프라이빗 엔드포인트를 통한 연결은 검색 서비스의 프라이빗 실행 환경에서 시작되어야 합니다.

IP 방화벽 구성은 무료입니다. Azure Private Link 기반으로 하는 프라이빗 엔드포인트는 청구에 영향을 미칩니다. 자세한 내용은 Azure Private Link 가격 책정을 참조하세요.

네트워크 보안을 구성한 후 데이터 및 작업에 대한 읽기 및 쓰기 권한을 가진 사용자와 그룹을 할당하는 역할 할당을 수행합니다.

프라이빗 엔드포인트 사용에 대한 고려 사항

이 섹션에서는 프라이빗 연결 옵션의 범위를 좁힙니다.

  • 공유 프라이빗 링크에는 청구 가능한 검색 서비스가 필요하며, 최소 계층은 텍스트 기반 인덱싱의 경우 기본이며 기술 기반 인덱싱의 경우 표준 2(S2)입니다. 자세한 내용은 프라이빗 엔드포인트 수에 대한 계층 제한을 참조하세요.
  • 공유 프라이빗 링크가 만들어지면 검색 서비스는 해당 특정 Azure 리소스에 대한 모든 인덱서 연결에 항상 이를 사용합니다. 프라이빗 연결은 잠겨 있으며 내부적으로 적용됩니다. 공용 연결에 대해서는 프라이빗 연결을 무시할 수 없습니다.

  • 청구 가능한 Azure Private Link 리소스가 필요합니다.

  • 구독 소유자가 프라이빗 엔드포인트 연결을 승인해야 합니다.

  • 인덱서에 대한 다중 테넌트 실행 환경을 꺼야 합니다.

    인덱서의 executionEnvironment"Private"으로 설정하면 됩니다. 이 단계에서는 모든 인덱서 실행이 검색 서비스 내에서 프로비전된 프라이빗 환경에 국한되도록 합니다. 이 설정은 검색 서비스가 아닌 인덱서로 범위가 지정됩니다. 모든 인덱서가 프라이빗 엔드포인트를 통해 연결되도록 하려면 각 인덱서에 다음 구성이 있어야 합니다.

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

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

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

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

토큰 인증으로 네트워크 보안 강화

방화벽과 네트워크 보안은 데이터 및 운영에 대한 무단 액세스를 방지하는 첫 번째 단계입니다. 권한 부여는 다음 단계입니다.

Microsoft Entra ID 사용자 및 그룹이 서비스에 대한 읽기 및 쓰기 권한을 결정하는 역할에 할당되는 역할 기반 액세스를 권장합니다. 기본 제공 역할에 대한 설명과 사용자 지정 역할 만들기에 대한 지침은 역할 기반 액세스 제어를 사용하여 Azure AI 검색에 연결을 참조하세요.

키 기반 인증이 필요하지 않은 경우 API 키를 사용하지 않도록 설정하고 역할 할당만 사용하는 것이 좋습니다.

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

검색 서비스는 인덱스 및 동의어 목록을 저장합니다. 스토리지가 필요한 다른 기능의 경우 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 가상 네트워크에 배포된 솔루션에 대한 인덱서 데이터 액세스 옵션을 잘 알고 있으므로 다음 단계로 다음 방법 문서 중 하나를 검토합니다.