Share via


SQL FQDN を使用して Azure Firewall アプリケーション規則を構成する

SQL FQDN を使用して Azure Firewall アプリケーション規則を構成することができます。 これにより、仮想ネットワークからのアクセスを、指定された SQL サーバー インスタンスのみに制限することができます。

SQL FQDN では、以下のトラフィックをフィルター処理できます。

  • VNets から Azure SQL Database または Azure Synapse Analytics へのトラフィック。 次に例を示します。sql server1.database.windows.net へのアクセスのみ許可します。
  • オンプレミスから Vnet で実行されている Azure SQL Managed Instance または SQL IaaS へ。
  • スポーク間から Vnet で実行されている Azure SQL Managed Instance または SQL IaaS へ。

SQL の FQDN のフィルター処理は、プロキシ モードのみでサポートされます (ポート 1433)。 既定のリダイレクト モードで SQL を使用する場合、ネットワーク ルールの一部として SQL サービス タグを使用してアクセスをフィルター処理することができます。 SQL IaaS のトラフィックに既定以外のポートを使用する場合は、ファイアウォール アプリケーション規則でこれらのポートを構成できます。

Azure CLI を使用して構成する

  1. Azure CLI を使用して Azure Firewall をデプロイします。

  2. Azure SQL Database、Azure Synapse Analytics、または SQL マネージド インスタンスへのトラフィックをフィルター処理する場合は、SQL 接続のモードがプロキシに設定されていることを確認します。 SQL 接続モードを切り替える方法については、「Azure SQL の接続の設定」を参照してください。

    注意

    SQL プロキシ モードを使用すると、リダイレクトと比較して待機時間が増加する可能性があります。 リダイレクト モードを使用して構成する場合は (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
    

Azure PowerShell を使用して構成する

  1. Azure PowerShell を使用して Azure Firewall をデプロイします。

  2. Azure SQL Database、Azure Synapse Analytics、または SQL マネージド インスタンスへのトラフィックをフィルター処理する場合は、SQL 接続のモードがプロキシに設定されていることを確認します。 SQL 接続モードを切り替える方法については、「Azure SQL の接続の設定」を参照してください。

    注意

    SQL プロキシ モードを使用すると、リダイレクトと比較して待機時間が増加する可能性があります。 リダイレクト モードを使用して構成する場合は (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 portal を使用して構成する

  1. Azure CLI を使用して Azure Firewall をデプロイします。

  2. Azure SQL Database、Azure Synapse Analytics、または SQL マネージド インスタンスへのトラフィックをフィルター処理する場合は、SQL 接続のモードがプロキシに設定されていることを確認します。 SQL 接続モードを切り替える方法については、「Azure SQL の接続の設定」を参照してください。

    注意

    SQL プロキシ モードを使用すると、リダイレクトと比較して待機時間が増加する可能性があります。 リダイレクト モードを使用して構成する場合は (Azure 内から接続するクライアントの既定)、代わりに ファイアウォール ネットワーク ルールで SQL サービス タグを使ってアクセスをフィルター処理できます。

  3. 適切なプロトコル、ポート、および SQL FQDN をアプリケーション規則に追加し、 [保存] を選択します。 SQL FQDN を使用したアプリケーション規則

  4. ファイアウォールを通過するトラフィックをフィルター処理する VNet 内の仮想マシンから SQL にアクセスします。

  5. Azure Firewall ログを検証し、トラフィックが許可されていることを確認します。

次のステップ

SQL のプロキシ モードとリダイレクト モードの詳細については、「Azure SQL Database 接続アーキテクチャ」を参照してください。