Share via


使用 SQL FQDN 設定 Azure 防火牆應用程式規則

您現在可以使用 SQL FQDN 設定 Azure 防火牆應用程式規則。 這可讓您將虛擬網路的存取限制為僅限指定的 SQL Server 執行個體。

利用 SQL FQDN,您可以篩選流量:

  • 從 VNet 到 Azure SQL Database 或 Azure Synapse Analytics。 例如:僅允許存取 sql-server1.database.windows.net
  • 從內部部署到 Azure SQL 受控執行個體或在 VNet 中執行的 SQL IaaS。
  • 從支點對支點到 Azure SQL 受控執行個體或在 VNet 中執行的 SQL IaaS。

只有 Proxy 模式才支援 SQL FQDN 篩選 (連接埠 1433)。 如果您在預設的重新導向模式下使用 SQL,可以使用 SQL 服務標籤篩選存取,作為網路規則的一部分。 如果您針對 SQL IaaS 流量使用非預設的連接埠,可以在防火牆應用程式規則中設定那些連接埠。

使用 Azure CLI 進行設定

  1. 部署使用 Azure CLI 的 Azure 防火牆

  2. 如果您篩選到 Azure SQL Database、Azure Synapse Analytics 或 SQL 受控執行個體的流量,請確定 SQL 連線模式已設定為 [Proxy]。 若要了解如何切換 SQL 連線模式,請參閱 Azure SQL 連線能力設定 \(英文\)。

    注意

    相較於重新導向,SQL Proxy 模式可能會導致更多延遲。 如果您想要繼續使用重新導向模式 (這是用戶端在 Azure 內連線時的預設值),可以在防火牆網路規則中使用 SQL 服務標籤篩選存取。

  3. 使用 SQL FQDN 建立具有應用程式規則的新規則集合,以允許存取SQL伺服器:

     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.windows.net
    

使用 PowerShell 進行設定

  1. 部署使用 Azure PowerShell 的 Azure 防火牆

  2. 如果您篩選到 Azure SQL Database、Azure Synapse Analytics 或 SQL 受控執行個體的流量,請確定 SQL 連線模式已設定為 [Proxy]。 若要了解如何切換 SQL 連線模式,請參閱 Azure SQL 連線能力設定 \(英文\)。

    注意

    相較於重新導向,SQL Proxy 模式可能會導致更多延遲。 如果您想要繼續使用重新導向模式 (這是用戶端在 Azure 內連線時的預設值),可以在防火牆網路規則中使用 SQL 服務標籤篩選存取。

  3. 使用 SQL FQDN 建立具有應用程式規則的新規則集合,以允許存取SQL伺服器:

    $AzFw = Get-AzFirewall -Name "Test-FW01" -ResourceGroupName "Test-FW-RG"
    
    $sqlRule = @{
       Name          = "sqlRule"
       Protocol      = "mssql:1433" 
       TargetFqdn    = "sql-serv1.database.windows.net"
       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 CLI 的 Azure 防火牆

  2. 如果您篩選到 Azure SQL Database、Azure Synapse Analytics 或 SQL 受控執行個體的流量,請確定 SQL 連線模式已設定為 [Proxy]。 若要了解如何切換 SQL 連線模式,請參閱 Azure SQL 連線能力設定 \(英文\)。

    注意

    相較於重新導向,SQL Proxy 模式可能會導致更多延遲。 如果您想要繼續使用重新導向模式 (這是用戶端在 Azure 內連線時的預設值),可以在防火牆網路規則中使用 SQL 服務標籤篩選存取。

  3. 利用適當的通訊協定、連接埠和 SQL FQDN,新增應用程式規則,然後選取 [儲存]application rule with SQL FQDN

  4. 在 VNet 中,從透過防火牆篩選流量的虛擬機器存取 SQL。

  5. 驗證 Azure 防火牆記錄顯示允許流量。

下一步

若要瞭解 SQL Proxy 和重新導向模式,請參閱 Azure SQL Database 連線架構