Compartir por


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, realice los pasos siguientes:

  • 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 página 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 posible 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, conecte 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

Se recomienda configurar el grupo de seguridad de red (NSG) 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 siguientes pasos y vínculos proporcionan instrucciones sobre la configuración del grupo de seguridad de red para las implementaciones de máquinas virtuales. 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 rango de direcciones IP de la etiqueta de servicio AzureCognitiveSearch en la ACL en lugar de abrir las máquinas virtuales de SQL 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 servicio AzureCognitiveSearch mediante el uso de archivos JSON descargables o a través de la API de detección de etiquetas de servicio. El intervalo de direcciones IP se actualiza semanalmente.

Incluir las direcciones IP de Azure Portal

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 agota el tiempo de espera de la solicitud, pero la dirección IP está 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.

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.

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.