Acceso del indizador a orígenes de datos mediante la seguridad de red de Azure

Si los recursos de Azure se implementan en una red virtual de Azure, en este artículo se explica cómo un indexador de búsqueda puede acceder al contenido protegido por la seguridad de red. Se describen los patrones de tráfico saliente y los entornos de ejecución del indizador. También trata de las protecciones de red compatibles con Azure AI Search y los factores que podrían influir en la estrategia de seguridad. Por último, dado que Azure Storage se usa para el acceso a datos y el almacenamiento persistente, en este artículo también se describen las consideraciones de red específicas de conectividad de búsqueda y almacenamiento.

¿Busca instrucciones detalladas en su lugar? Consulte Configuración de reglas de firewall para permitir el acceso del indizador o Establecimiento de conexiones salientes mediante un punto de conexión privado.

Recursos a los que acceden los indexadores

Los indexadores de la Búsqueda de Azure AI pueden realizar llamadas salientes a varios recursos de Azure en tres situaciones:

  • Conexiones a orígenes de datos externos durante la indexación
  • Conexiones con código externo encapsulado a través de un conjunto de aptitudes que incluye aptitudes personalizadas
  • Conexiones a Azure Storage durante la ejecución del conjunto de aptitudes para almacenar en caché enriquecimientos, guardar el estado de la sesión de depuración o escribir en un almacén de conocimiento

En la tabla siguiente se enumeran los posibles tipos de recursos de Azure a los que puede acceder un indizador en una ejecución habitual.

Recurso Propósito dentro de la ejecución del indexador
Azure Storage (blobs, ADLS Gen 2, archivos, tablas) Origen de datos
Azure Storage (blobs, tablas) Conjuntos de aptitudes (enriquecimientos en caché, sesiones de depuración, proyecciones del almacén de conocimiento)
Azure Cosmos DB (varias API) Origen de datos
Azure SQL Database Origen de datos
SQL Server en Azure Virtual Machines Origen de datos
Instancia administrada de SQL Origen de datos
Azure Functions Se asocia a un conjunto de aptitudes y se usa para hospedar aptitudes de API web personalizadas.

Nota:

Un indexador también se conecta a los servicios de Azure AI para obtener aptitudes integradas. Sin embargo, esa conexión se realiza a través de la red interna y no está sujeta a ninguna disposición de red bajo su control.

Los indexadores se conectan a los recursos mediante los métodos siguientes:

  • Un punto de conexión público con credenciales
  • Un punto de conexión privado mediante Azure Private Link
  • Conexión como un servicio de confianza
  • Conexión a través de direcciones IP

Si el recurso de Azure está en una red virtual, debe usar un punto de conexión privado o una dirección IP para admitir conexiones del indexador a los datos.

Protecciones de red admitidas

Los recursos de Azure se pueden proteger mediante cualquiera de los mecanismos de aislamiento de red que ofrece Azure. En función del recurso y la región, los indexadores de Azure AI Search pueden realizar conexiones salientes a través de firewalls IP y puntos de conexión privados, sujeto a las limitaciones que se indican en la tabla siguiente.

Recurso Restricción de IP Punto de conexión privado
Azure Storage para indexación basada en texto (blobs, ADLS Gen 2, archivos, tablas) Solo se admite si la cuenta de almacenamiento y el servicio de búsqueda se encuentran en regiones diferentes. Compatible
Azure Storage para el enriquecimiento con IA (almacenamiento en caché, sesiones de depuración, almacén de conocimiento) Solo se admite si la cuenta de almacenamiento y el servicio de búsqueda se encuentran en regiones diferentes. Compatible
Azure Cosmos DB para NoSQL Compatible Compatible
Azure Cosmos DB for MongoDB Compatible No admitidas
Azure Cosmos DB for Apache Gremlin Compatible No admitidas
Azure SQL Database Compatible Compatible
SQL Server en Azure Virtual Machines Compatible N/D
Instancia administrada de SQL Compatible N/D
Azure Functions Compatible Se admite solo con determinados niveles de funciones de Azure.

Entorno de ejecución de los indexadores

Azure AI Search tiene el concepto de un entorno de ejecución del indexador que optimiza el procesamiento en función de las características del trabajo. Hay dos entornos. Si usa un firewall de IP para controlar el acceso a los recursos de Azure, conocer los entornos de ejecución le ayudará a configurar un intervalo IP que sea inclusivo de ambos entornos.

Con cada ejecución de un indexador dado, Azure AI Search determina el mejor entorno en el que ejecutarlo. Según el número y los tipos de tareas asignadas, el indexador se ejecutará en uno de los dos entornos.

Entorno de ejecución Descripción
Privada Interno de un servicio de búsqueda. Los indizadores que se ejecutan en el entorno privado comparten recursos informáticos con otras cargas de trabajo de indexación y consulta del mismo servicio de búsqueda. Normalmente, solo los indexadores que hacen la indexación basada en texto (sin conjuntos de aptitudes) se ejecutan en este entorno. Si configura una conexión privada entre un indexador y los datos, esta es la única ejecución que puede usar.
multiinquilino Administrado y protegido por Microsoft sin coste adicional. No está sujeto a disposiciones de red bajo su control. Este entorno se usa para descargar el procesamiento intensivo a nivel computacional, lo que permite que los recursos específicos del servicio estén disponibles para las operaciones rutinarias. Algunos ejemplos de trabajos del indizador que consumen muchos recursos incluyen adjuntar conjuntos de aptitudes, procesar documentos grandes o procesar un gran volumen de documentos.

Configuración de intervalos IP para la ejecución del indizador

Esta sección explica la configuración del firewall de IP para admitir solicitudes desde cualquiera de los entornos de ejecución.

Si el recurso de Azure está detrás de un firewall, configure las reglas de entrada que admitan conexiones de indexador para todas las direcciones IP desde las que puede originarse una solicitud de indexador. Esto incluye la dirección IP que usa el servicio de búsqueda y las direcciones IP usadas por el entorno multiinquilino.

  • Para obtener la dirección IP del servicio de búsqueda (y del entorno de ejecución privado), usa nslookup (o ping) con el nombre de dominio completo (FQDN) del servicio de búsqueda. El nombre de dominio completo de un servicio de búsqueda en la nube pública sería <service-name>.search.windows.net.

  • Para obtener las direcciones IP de los entornos multiinquilino en los que se puede ejecutar un indizador, use la etiqueta de servicio AzureCognitiveSearch.

    Las etiquetas de servicio de Azure tienen un rango publicado de direcciones IP de los entornos multiinquilino para cada región. Puede encontrar estas direcciones IP mediante la API de detección o un archivo JSON descargable. Los intervalos IP se asignan por región, por lo tanto, compruebe la región del servicio de búsqueda antes de empezar.

Configuración de reglas de IP para Azure SQL

Al establecer la regla de IP para el entorno multiinquilino, determinados orígenes de datos SQL admiten un enfoque sencillo para la especificación de direcciones IP. En lugar de enumerar todas las direcciones IP de la regla, puede crear una regla de grupo de seguridad de red que especifique la etiqueta de servicio AzureCognitiveSearch.

Puede especificar la etiqueta de servicio si el origen de datos es uno de los siguientes:

Tenga en cuenta que si especificó la etiqueta de servicio para la regla de IP del entorno multiinquilino, aún necesitará una regla de entrada explícita para el entorno de ejecución privada (es decir, el servicio de búsqueda en sí), tal como se obtiene a través de nslookup.

Elegir un enfoque de conectividad

Un servicio de búsqueda no se puede aprovisionar en una red virtual específica, ejecutándose de forma nativa en una máquina virtual. Aunque algunos recursos de Azure ofrecen puntos de conexión de servicio de red virtual, la Búsqueda de Azure AI no ofrecerá esta funcionalidad. Debe planear la implementación de uno de los enfoques siguientes.

Enfoque Detalles
Protección contra conexión entrante al recurso de Azure Configure una regla de firewall de entrada en el recurso de Azure que admita solicitudes de indexador para los datos. La configuración del firewall debe incluir la etiqueta de servicio para la ejecución multiinquilino y la dirección IP del servicio de búsqueda. Consulte Configuración de reglas de firewall para permitir el acceso del indexador.
Conexión privada entre la Búsqueda de Azure AI y el recurso de Azure Configure un vínculo privado compartido usado exclusivamente por el servicio de búsqueda para las conexiones al recurso. Las conexiones viajan a través de la red interna y omiten la red pública de Internet. Si los recursos están totalmente bloqueados (en ejecución en una red virtual protegida o, de lo contrario, no están disponibles a través de una conexión pública), un punto de conexión privado es la única opción. Consulte Establecer conexiones salientes a través de un punto de conexión privado.

Las conexiones mediante un punto de conexión privado deben originarse en el entorno de ejecución privado del servicio de búsqueda.

La configuración de un firewall de IP es gratuita. Un punto de conexión privado, que se basa en Azure Private Link, tiene un impacto en la facturación. Consulte Precios de Azure Private Link para obtener más información.

Después de configurar la seguridad de red, realice un seguimiento de las asignaciones de roles que especifiquen qué usuarios y grupos tienen acceso de lectura y escritura a los datos y las operaciones.

Consideraciones al usar puntos de conexión privado

Esta sección se limita en la opción de conexión privada.

  • Una vez creado un vínculo privado compartido, el servicio de búsqueda siempre lo usa para cada conexión de indexador a ese recurso de Azure específico. La conexión privada está bloqueada y aplicada internamente. No se puede omitir la conexión privada para una conexión pública.

  • Requiere un recurso de Azure Private Link facturable.

  • Requiere que un propietario de la suscripción apruebe la conexión de punto de conexión privado.

  • Requiere que desactive el entorno de ejecución multiinquilino para el indizador.

    Para ello, establezca executionEnvironment del indizador en "Private". Con este paso se garantiza que toda la ejecución del indizador esté limitada al entorno privado aprovisionado en el servicio de búsqueda. Esta configuración tiene como ámbito un indizador y no el servicio de búsqueda. Si quiere que todos los indizadores se conecten mediante puntos de conexión privados, cada uno debe tener la siguiente configuración:

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

Una vez que tenga un punto de conexión privado aprobado a un recurso, los indexadores establecidos como privados intentarán acceder a través del vínculo privado creado y aprobado para el recurso de Azure.

La Búsqueda de Azure AI validará que los autores de llamadas del punto de conexión privado tienen asignaciones de roles adecuadas. Por ejemplo, si solicita una conexión de punto de conexión privado a una cuenta de almacenamiento con permisos de solo lectura, se rechazará esta llamada.

Si el punto de conexión privado no está aprobado o si el indizador no usó la conexión del punto de conexión privado, encontrará un mensaje de error transientFailure en el historial de ejecución del indizador.

Complementar la seguridad de red con la autenticación de tokens

Los firewalls y la seguridad de red son un primer paso para evitar el acceso no autorizado a los datos y las operaciones. La autorización debe ser el siguiente paso.

Se recomienda el acceso basado en roles, en el que los usuarios y grupos de Microsoft Entra ID se asignan a roles que determinan el acceso de lectura y escritura al servicio. Consulte Conectar a Búsqueda de Azure AI mediante controles de acceso basados en roles para obtener una descripción de los roles integrados e instrucciones para crear roles personalizados.

Si no necesita autenticación basada en claves, se recomienda deshabilitar las claves de API y usar asignaciones de roles exclusivamente.

Acceso a una cuenta de almacenamiento protegida por red

Un servicio de búsqueda almacena índices y listas de sinónimos. Para otras características que requieren almacenamiento, Azure AI Search depende de Azure Storage. El almacenamiento en caché de enriquecimiento, las sesiones de depuración y los almacenes de conocimiento se dividen en esta categoría. La ubicación de cada servicio y las protecciones de red implementadas para el almacenamiento determinarán la estrategia de acceso a los datos.

Servicios de la misma región

En Azure Storage, el acceso a través de un firewall requiere que la solicitud se origine en otra región. Si Azure Storage y Azure AI Search están en la misma región, puedes omitir las restricciones de IP en la cuenta de almacenamiento accediendo a los datos bajo la identidad del sistema del servicio de búsqueda.

Hay dos opciones para admitir el acceso a datos mediante la identidad del sistema:

Las opciones anteriores dependen de Microsoft Entra ID para la autenticación, lo que significa que la conexión debe realizarse con un inicio de sesión de Microsoft Entra. Actualmente, Azure AI solo admite una identidad administrada asignada por el sistema para las conexiones de la misma región a través de un firewall.

Servicios en diferentes regiones

Cuando la búsqueda y el almacenamiento están en regiones diferentes, puede usar las opciones mencionadas anteriormente o configurar reglas IP que admitan solicitudes del servicio. En función de la carga de trabajo, es posible que tenga que configurar reglas para varios entornos de ejecución, como se describe en la sección siguiente.

Pasos siguientes

Ahora que se ha familiarizado con las opciones de acceso a los datos del indizador para las soluciones implementadas en una red virtual de Azure, el paso siguiente es revisar cualquiera de estos artículos de procedimientos: