Firewall


The presented resiliency recommendations in this guidance include Firewall and associated Firewall settings.

Summary of Recommendations

Recommendations Details

AFW-1 - 複数の可用性ゾーンに Azure Firewall をデプロイします

Category: Availability

Impact: High

Guidance

Azure Firewall は、1 つの可用性ゾーンにデプロイする場合と、2 つ以上の可用性ゾーンにデプロイする場合で、異なる SLA を提供します。

Resources

Resource Graph Query

// Azure Resource Graph Query
// List all Azure Firewalls that are not configured with multiple availability zones or deployed without a zone
resources
| where type == 'microsoft.network/azurefirewalls'
| where array_length(zones) <= 1 or isnull(zones)
| project recommendationId = "afw-1", name, id, tags, param1="multipleZones:false"



AFW-2 - Azure Firewall メトリックを監視します

Category: Monitoring

Impact: Medium

Guidance

可用性とパフォーマンスの問題に関連するメトリックを監視します。具体的には、次のようになります。

  • FirewallHealth: ファイアウォールの全体的な正常性を示します。
  • Throughput: ファイアウォールによって処理されたスループット。スループットが文書化された制限に近づくと、アラートがトリガーされます。
  • SNATPortUtilization: 現在使用されている送信 SNAT ポートの割合。このメトリックが 100% に近づくと、アラートがトリガーされます (その時点で、送信インターネット接続などのソース NAT 接続は失敗し始めます)。512,000 を超える SNAT ポートが必要な場合は、Azure Firewall を使用して NAT ゲートウェイをデプロイすることを検討できます。ただし、NAT ゲートウェイは現時点ではゾーン展開をサポートしていないため、ゾーン冗長ファイアウォールを使用した NAT ゲートウェイの展開は推奨されません。Azure Firewall で NAT ゲートウェイを使用するには、ゾーン ファイアウォールのデプロイが必要です。また、Azure Virtual Network NAT 統合は、セキュリティ保護付き仮想ハブ ネットワーク アーキテクチャでは現在サポートされていません。

Resources

Resource Graph Query

// Azure Resource Graph Query
// List all Azure Firewalls resources in-scope, along with any metrics associated to Azure Monitor alert rules, that are not fully configured.
resources
| where type == "microsoft.network/azurefirewalls"
| project firewallId = tolower(id), name, tags
| join kind = leftouter (
    resources
    | where type == "microsoft.insights/metricalerts"
    | mv-expand properties.scopes
    | mv-expand properties.criteria.allOf
    | where properties_scopes contains "azureFirewalls"
    | project metricId = tolower(properties_scopes), monitoredMetric = properties_criteria_allOf.metricName, tags
    | summarize monitoredMetrics = make_list(monitoredMetric) by tostring(metricId)
    | project
        metricId,
        monitoredMetrics,
        allAlertsConfigured = monitoredMetrics contains("FirewallHealth") and monitoredMetrics contains ("Throughput") and monitoredMetrics contains ("SNATPortUtilization")
) on $left.firewallId == $right.metricId
| extend alertsNotFullyConfigured = isnull(allAlertsConfigured) or not(allAlertsConfigured)
| where alertsNotFullyConfigured
| project recommendationId = "afw-3", name, id = firewallId, tags, param1 = strcat("MetricsAlerts:", monitoredMetrics)



AFW-3 - Azure Firewall VNet で DDoS Protection を構成します

Category: Access & Security

Impact: High

Guidance

DDoS 保護プランを Azure Firewall をホストしている仮想ネットワークに関連付けます。DDoS 保護プランは、DDoS 攻撃からファイアウォールを保護するための強化された軽減機能を提供します。Azure Firewall Manager は、ファイアウォール インフラストラクチャと DDoS 保護プランを作成するための統合ツールです。

Resources

Resource Graph Query

// Azure Resource Graph Query
// List all in-scope Azure Firewall resources, where the VNet is not associated to a DDoS Protection Plan
resources
| where type == "microsoft.network/azurefirewalls"
| mv-expand properties.ipConfigurations
| project name, firewallId = id, vNet = substring(properties_ipConfigurations.properties.subnet.id, 0, indexof(properties_ipConfigurations.properties.subnet, "/subnet") - 7), tags
| join kind=fullouter (
    resources
    | where type == "microsoft.network/ddosprotectionplans"
    | mv-expand properties.virtualNetworks
    | extend vNet = tostring(properties_virtualNetworks.id)
    | project ddosProtectionPlan = id, vNet
    )
    on $left.vNet == $right.vNet
| where ddosProtectionPlan == ''
| project recommendationId = "afw-5", name, id = firewallId, tags, param1 = "ddosProtectionPlan:false"



AFW-4 - Azure Policy 継承モデルを活用します

Category: Governance

Impact: Medium

Guidance

Azure Firewall ポリシーを使用すると、ルール階層を定義し、コンプライアンスを適用できます。これは、子アプリケーション・チーム・ポリシーの上に中央の基本ポリシーをオーバーレイする階層構造を提供します。基本ポリシーの優先度が高く、子ポリシーの前に実行されます。Azure カスタム ロール定義を使用して、基本ポリシーの不注意による削除を防ぎ、サブスクリプションまたはリソース グループ内のルール コレクション グループへの選択的なアクセスを提供します。

Resources

Resource Graph Query

// under-development



AFW-5 - SNAT ポート利用のため 2 から 4 個の PIP を構成します

Category: Availability

Impact: Medium

Guidance

SNAT の枯渇を回避するために、Azure Firewall ごとに少なくとも 2 つから 4 つのパブリック IP アドレスを構成します。Azure Firewall には、パブリック IP アドレスへのすべての送信トラフィック トラフィックに対して SNAT 機能が用意されています。Azure Firewall では、追加の PIP ごとに 2,496 個の SNAT ポートが提供されます。

Resources

Resource Graphy Query/Scripts

// under development



AFW-6 - AZFW Latency Probes メトリックを監視します

Category: Monitoring

Impact: Medium

Guidance

長期間(> 30 分)にわたって 20 ミリ秒のレイテンシープローブを監視するメトリクスを作成します。レイテンシープローブが長期間にわたっている場合は、ファイアウォールインスタンスのCPUに負荷がかかり、問題が発生している可能性があることを意味します。

Resources

Resource Graphy Query/Scripts

// under development