Conexiones del indizador a SQL Server en una máquina virtual de Azure

Al configurar un indizador de Azure SQL para extraer contenido de una base de datos en una máquina virtual de Azure, se requieren pasos adicionales para las conexiones seguras.

Una conexión de Azure AI Search a una instancia de SQL Server en una máquina virtual es una conexión pública a Internet. Para que las conexiones seguras se realicen correctamente, deberá cumplir los siguientes requisitos:

  • Obtenga un certificado de una entidad de certificación para el nombre de dominio completo de la instancia de SQL Server de la máquina virtual.

  • Instale el certificado en la máquina virtual.

Después de instalar el certificado en la máquina virtual, está listo para completar los pasos siguientes de este artículo.

Nota:

Actualmente, los indexadores de Azure AI Search no admiten columnas Always Encrypted.

Habilitación de conexiones cifradas

Azure Search requiere un canal cifrado para todas las solicitudes que el indexador realiza a través una conexión pública a Internet. En esta sección se enumeran los pasos necesarios para realizar este trabajo.

  1. En las propiedades del certificado compruebe que el nombre de sujeto es el nombre de dominio completo (FQDN) de la máquina virtual de Azure.

    Para ver las propiedades, puede utilizar una herramienta como CertUtils o el complemento Certificados. El FQDN se puede obtener de la sección Essentials de la hoja del servicio VM, en el campo Etiqueta de dirección IP pública/nombre de DNS de Azure Portal.

    El FQDN normalmente tiene el formato <your-VM-name>.<region>.cloudapp.azure.com

  2. Configure SQL Server para que use el certificado mediante el Editor del registro (regedit).

    Aunque el Administrador de configuración de SQL Server se usa a menudo para esta tarea, no se puede utilizar para este escenario. No encontrará el certificado importado, ya que el FQDN de la VM de Azure no coincide con el FQDN que determina la VM (identifica el dominio como el equipo local o el dominio de red al que está conectado). Si los nombres no coinciden, utilice regedit para especificar el certificado.

    1. En regedit, vaya a esta clave del Registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[MSSQL13.MSSQLSERVER]\MSSQLServer\SuperSocketNetLib\Certificate.

      La parte [MSSQL13.MSSQLSERVER] varía en función de la versión y del nombre de la instancia.

    2. Establezca el valor de la clave del Certificado en la huella digital (sin espacios) del certificado TLS/SSL que ha importado a la VM.

    Hay varias maneras de obtener la huella digital, y algunas de ellas son mejores que otras. Si la copia desde el complemento Certificados de MMC, es probable que elija un carácter inicial invisible como se describe en este artículo de soporte técnico, lo que provoca un error al intentar establecer una conexión. Existen varias soluciones para corregir este problema. La más fácil es borrarlo y, luego, volver a escribir el primer carácter de la huella digital para quitar el carácter inicial del campo de valor de clave en regedit. Como alternativa, se puede utilizar otra herramienta para copiar la huella digital.

  3. Otorgue permisos a la cuenta de servicio.

    Asegúrese de que a la cuenta de servicio de SQL Server se le concede el permiso adecuado en la clave privada del certificado TLS/SSL. Si pasa por alto este paso, SQL Server no se iniciará. Puede usar el complemento Certificados o CertUtils para esta tarea.

  4. Reinicie el servicio SQL Server.

Conectar a SQL Server

Después de configurar la conexión cifrada requerida por Azure AI Search, se conectará a la instancia a través de su punto de conexión público. En el siguiente artículo se explican los requisitos de conexión y la sintaxis:

Configuración del grupo de seguridad de red

No es extraño configurar el grupo de seguridad de red y el correspondiente punto de conexión o lista de control de acceso (ACL) de Azure para que se pueda acceder a la máquina virtual de Azure desde otras partes. Lo más probable es que ya haya realizado esta operación para la lógica de su aplicación se conecte a la máquina virtual de SQL Azure. Lo mismo sucede con cualquier conexión de Azure AI Search con una máquina virtual de Azure SQL Database.

Los vínculos siguientes proporcionan instrucciones para la configuración de NSG en las implementaciones de VM. Siga estas instrucciones para incluir en la lista de control de acceso un punto de conexión de un servicio de búsqueda por su dirección IP.

  1. Obtenga la dirección IP del servicio de búsqueda. Para obtener instrucciones, consulte la siguiente sección.

  2. Agregue la dirección IP de búsqueda a la lista de filtros IP del grupo de seguridad. Uno de los siguientes artículos explica los pasos:

La dirección IP puede plantear ciertos problemas, que se solucionan fácilmente si se conoce el problema y las posibles soluciones. En las restantes secciones encontrará recomendaciones para el control de los problemas relacionados con las direcciones IP de la ACL.

Se recomienda encarecidamente restringir el acceso a la dirección IP del servicio de búsqueda y el intervalo de direcciones IP de la etiqueta de servicioAzureCognitiveSearch en la ACL en lugar de abrir las máquinas virtuales SQL de Azure a todas las solicitudes de conexión.

Puede averiguar la dirección IP haciendo ping en el FQDN (por ejemplo, <your-search-service-name>.search.windows.net) del servicio de búsqueda. Aunque la dirección IP del servicio de búsqueda podría cambiar, no es probable que lo haga. La dirección IP tiende a ser estática durante la vigencia del servicio.

Puede averiguar el intervalo de direcciones IP de la etiqueta de servicioAzureCognitiveSearch mediante archivos JSON descargables o por medio de la API de detección de etiquetas de servicio. El intervalo de direcciones IP se actualiza semanalmente.

Inclusión de las direcciones IP del portal de Azure AI Search

Si usa el Azure Portal para crear un indizador, debe conceder acceso de entrada del portal a la máquina virtual SQL Azure. Una regla de entrada en el Firewall requiere que proporcione la dirección IP del portal.

Para obtener la dirección IP del portal, haga ping stamp2.ext.search.windows.net, que es el dominio del administrador de tráfico. Se agotará el tiempo de espera de la solicitud, pero la dirección IP estará visible en el mensaje de estado. Por ejemplo, en el mensaje "Pinging azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48]" (Haciendo ping a azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48]), la dirección IP es "52.252.175.48".

Los clústeres de diferentes regiones se conectan a diferentes administradores de tráfico. Independientemente del nombre de dominio, la dirección IP devuelta por ping es la correcta que se va a usar al definir una regla de Firewall de entrada para el Azure Portal en su región.

Pasos siguientes

Dejando a un lado la configuración, ya puede especificar un servidor de SQL Server en una máquina virtual de Azure como origen de los datos de un indexador de Azure AI Search. Para más información, consulte Indexación de datos de Azure SQL.