Controles de acceso a la red de Azure SQL Database y Azure Synapse Analytics

Se aplica a:Azure SQL DatabaseAzure Synapse Analytics (solo grupos de SQL dedicados)

Al crear un servidor lógico en Azure Portal para Azure SQL Database y Azure Synapse Analytics, el resultado es un punto de conexión público con el formato nombreDelServidor.database.windows.net.

Puede usar los siguientes controles de acceso a la red para permitir el acceso a una base de datos de forma selectiva mediante el punto de conexión público:

  • Permitir que los servicios y recursos de Azure accedan a este servidor: cuando se habilita, otros recursos dentro de los límites de Azure, por ejemplo, una máquina virtual de Azure, pueden acceder a SQL Database
  • Reglas de firewall de IP: use esta característica para permitir explícitamente las conexiones desde una dirección IP específica, por ejemplo, desde máquinas locales.

También puede permitir el acceso privado a la base de datos desde redes virtuales a través de:

  • Reglas de firewall de la red virtual: Use esta característica para permitir el tráfico desde una red virtual específica dentro de los límites de Azure
  • Private Link: use esta característica para crear un punto de conexión privado para un servidor lógico en Azure dentro de una red virtual específica

Importante

Este artículo no se aplica a Instancia administrada de SQL. Para obtener más información sobre la configuración de red, consulte Conexión a Instancia administrada de Azure SQL.

Vea el vídeo siguiente para obtener una explicación de alto nivel sobre estos controles de acceso y lo que hacen:

Allow Azure Services (Permitir servicios de Azure)

De forma predeterminada, durante la creación de un servidor lógico desde Azure Portal, la opción Permitir que los servicios y recursos de Azure accedan a este servidor está desactivada y sin habilitar. Esta opción aparece cuando se permite la conectividad con el punto de conexión de servicio público.

También puede cambiar esta opción desde el valor Redes después de crear el servidor lógico, como se indica a continuación:

Screenshot of manage server firewall

Al habilitar Permitir que los servicios y recursos de Azure accedan a este servidor, el servidor permite las comunicaciones de todos los recursos dentro del límite de Azure, formen o no parte de la suscripción.

En muchos casos, la habilitación del valor es más permisiva de lo que desea la mayoría de los clientes. Es posible que quiera desactivar este valor y reemplazarlo por reglas de firewall de IP más restrictivas o reglas de firewall de red virtual.

Sin embargo, esto afecta a las siguientes características que se ejecutan en máquinas virtuales de Azure que no forman parte de la red virtual y, por tanto, se conectan a la base de datos a través de una dirección IP de Azure:

Import Export Service

El servicio de importación y exportación no funciona cuando la opción Permitir que los servicios y recursos de Azure accedan a este servidor no está habilitada. Sin embargo, puede solucionar el problema con la ejecución manual de SqlPackage desde una máquina virtual de Azure o realizando la exportación directamente en el código mediante la API de DACFx.

Sincronización de datos

Para usar la característica de sincronización de datos con Permitir que los servicios y recursos de Azure accedan a este servidor sin habilitar, debe crear entradas de reglas de firewall individuales para agregar direcciones IP de la etiqueta de servicio SQL para la región en la que se hospeda la base de datos Hub. Agregue estas reglas de firewall de nivel de servidor a los servidores que hospedan las bases de datos central y miembro (que pueden estar en regiones diferentes)

Use el siguiente script de PowerShell para generar las direcciones IP correspondientes a la etiqueta de servicio de SQL para la región Oeste de EE. UU.

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Sugerencia

Get-AzNetworkServiceTag devuelve el intervalo global de la etiqueta de servicio SQL a pesar de que se especificó el parámetro Location. Asegúrese de filtrar para usarlo en la región que hospeda la base de datos central que usa el grupo de sincronización.

Tenga en cuenta que la salida del script de PowerShell está en notación de enrutamiento de interdominios sin clases (CIDR). Esto se debe convertir a un formato de dirección IP inicial y final mediante Get-IPrangeStartEnd.ps1 similar al siguiente:

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

Puede utilizar este script de PowerShell adicional para convertir todas las direcciones IP de CIDR al formato de dirección IP inicial y final.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

Ahora puede agregarlas como reglas de firewall distintas y, después, deshabilitar el valor Permitir que los servicios y recursos de Azure accedan a este servidor.

Reglas de firewall de IP

El firewall basado en IP es una característica del servidor lógico en Azure, que impide todo acceso al servidor hasta que agregue direcciones IP explícitamente de las máquinas cliente.

Reglas de firewall de red virtual

Además de las reglas de IP, el firewall del servidor permite definir reglas de red virtual. Para obtener más información, vea Uso de reglas y puntos de conexión de servicio de red virtual para Azure SQL Database y SQL Data Warehouse.

Terminología de redes en Azure

Tenga en cuenta los siguientes términos de redes en Azure a medida que explora las reglas de firewall de red virtual

Red virtual: puede tener redes virtuales asociadas a la suscripción de Azure.

Subred: una red virtual contiene subredes. Cualquier máquina virtual (VM) de Azure que tenga se asignará a las subredes. Una subred puede contener varias máquinas virtuales u otros nodos de proceso. Los nodos de proceso que se encuentran fuera de la red virtual no pueden tener acceso a su red virtual a menos que configure la seguridad para que permita el acceso.

Punto de conexión de servicio de red virtual: Un punto de conexión de servicio de red virtual es una subred cuyos valores de propiedad incluyen uno o más nombres formales de tipo de servicio de Azure. En este artículo nos interesa el nombre de tipo de Microsoft.Sql, que hace referencia al servicio de Azure denominado SQL Database.

Regla de red virtual: Una regla de red virtual para el servidor es una subred que se muestra en la lista de control de acceso (ACL) del servidor. Para estar en la ACL de su base de datos en SQL Database, la subred debe contener el nombre de tipo Microsoft.Sql. Una regla de red virtual indica al servidor que acepte las comunicaciones procedentes de todos los nodos que están en la subred.

Reglas de IP frente a Reglas de firewall de red virtual

El firewall de Azure SQL Database le permite especificar intervalos de direcciones IP desde los que se aceptan las comunicaciones en SQL Database. Este enfoque es preciso para las direcciones IP estables que están fuera de la red privada de Azure. Sin embargo, las máquinas virtuales de la red privada de Azure se configuran con direcciones IP dinámicas. Las direcciones IP dinámicas pueden cambiar cuando se reinicia la máquina virtual y, a su vez, invalidar la regla de firewall basada en IP. Sería una locura especificar una dirección IP dinámica en una regla de firewall, en un entorno de producción.

Para superar esta limitación, puede obtener una dirección IP estática para la máquina virtual. Para obtener más información, consulte Creación de una máquina virtual con una dirección IP pública estática mediante Azure Portal. Sin embargo, el enfoque de IP estática puede resultar difícil de administrar, y es costoso si se realiza a escala.

Las reglas de red virtual son alternativas más fáciles de establecer y su acceso, de administrar desde una subred específica que contenga las máquinas virtuales.

Nota:

Aún no se puede disponer de SQL Database en una subred. Si su servidor fuera un nodo de una subred de la red virtual, todos los nodos de la red virtual podrían comunicarse con su instancia de SQL Database. En este caso, las máquinas virtuales podrían comunicarse con SQL Database sin necesitar ninguna regla IP ni regla de red virtual.

Private Link le permite conectarse a un servidor mediante un punto de conexión privado. Un punto de conexión privado es una dirección IP privada dentro de una red virtual y una subred específicas.

Pasos siguientes