Compartir a través de

使用 SQL FQDN 配置Azure 防火墙应用程序规则

可以使用 SQL FQDN 配置Azure 防火墙应用程序规则。 此配置仅将虚拟网络的访问限制为指定的 SQL Server 实例。

通过使用 SQL FQDN,可以筛选流量:

  • 从虚拟网络到Azure SQL 数据库或Azure Synapse Analytics。 例如:仅允许访问 sql-server1.database.windows.NET
  • 从本地环境迁移到 Azure SQL 托管实例或在您的虚拟网络中运行的 SQL IaaS。
  • 从辐射到Azure SQL托管实例或虚拟网络中运行的 SQL IaaS。

仅在代理模式下支持 SQL FQDN 筛选(端口 1433)。 如果在默认重定向模式下使用 SQL,则可以使用 SQL 服务标记作为网络规则的一部分来筛选访问。 如果对 SQL IaaS 通信使用非默认端口,则可以在防火墙应用程序规则中配置这些端口。

使用 Azure CLI 进行配置

  1. 部署 Azure 防火墙 使用 Azure CLI。

  2. 如果将流量筛选到Azure SQL 数据库、Azure Synapse Analytics或SQL 托管实例,请将 SQL 连接模式设置为 Proxy。 若要了解如何切换 SQL 连接模式,请参阅 Azure SQL 连接设置

    注释

    与重定向相比,SQL 代理模式可能会导致更大的延迟。 如果要继续使用重定向模式(这是在 Azure 内连接的客户端的默认模式),可以使用防火墙 network 规则 中的 SQL service 标记来筛选访问。

  3. 使用 SQL FQDN 允许访问 SQL Server 的应用程序规则创建新的规则集合:

     az extension add -n azure-firewall
    
     az network firewall application-rule create \
         --resource-group Test-FW-RG \
         --firewall-name Test-FW01 \
         --collection-name sqlRuleCollection \
         --priority 1000 \
         --action Allow \
         --name sqlRule \
         --protocols mssql=1433 \
         --source-addresses 10.0.0.0/24 \
         --target-fqdns sql-serv1.database.chinacloudapi.cn
    

使用 Azure PowerShell 进行配置

  1. 使用 Azure PowerShell 部署 Azure 防火墙。

  2. 如果将流量筛选到Azure SQL 数据库、Azure Synapse Analytics或SQL 托管实例,请将 SQL 连接模式设置为 Proxy。 若要了解如何切换 SQL 连接模式,请参阅 Azure SQL 连接设置

    注释

    与重定向相比,SQL 代理模式可能会导致更大的延迟。 如果要继续使用重定向模式(这是在 Azure 内连接的客户端的默认模式),可以使用防火墙 network 规则 中的 SQL service 标记来筛选访问。

  3. 使用 SQL FQDN 允许访问 SQL Server 的应用程序规则创建新的规则集合:

    $AzFw = Get-AzFirewall -Name "Test-FW01" -ResourceGroupName "Test-FW-RG"
    
    $sqlRule = @{
       Name          = "sqlRule"
       Protocol      = "mssql:1433"
       TargetFqdn    = "sql-serv1.database.chinacloudapi.cn"
       SourceAddress = "10.0.0.0/24"
    }
    
    $rule = New-AzFirewallApplicationRule @sqlRule
    
    $sqlRuleCollection = @{
       Name       = "sqlRuleCollection"
       Priority   = 1000
       Rule       = $rule
       ActionType = "Allow"
    }
    
    $ruleCollection = New-AzFirewallApplicationRuleCollection @sqlRuleCollection
    
    $Azfw.ApplicationRuleCollections.Add($ruleCollection)
    Set-AzFirewall -AzureFirewall $AzFw
    

使用 Azure 门户进行配置

  1. 使用 Azure 门户部署 Azure 防火墙

  2. 如果将流量筛选到Azure SQL 数据库、Azure Synapse Analytics或SQL 托管实例,请将 SQL 连接模式设置为 Proxy。 若要了解如何切换 SQL 连接模式,请参阅 Azure SQL 连接设置

    注释

    与重定向相比,SQL 代理模式可能会导致更大的延迟。 如果要继续使用重定向模式(这是在 Azure 内连接的客户端的默认模式),可以使用防火墙 network 规则 中的 SQL service 标记来筛选访问。

  3. 使用相应的协议、端口和 SQL FQDN 添加应用程序规则,然后选择“ 保存”。

  4. 从虚拟网络中的虚拟机访问 SQL,该虚拟机通过防火墙筛选流量。

  5. 验证Azure 防火墙 日志显示流量已被允许。

后续步骤

若要了解 SQL 代理和重定向模式,请参阅 Azure SQL 数据库 连接体系结构