Azure Firewall または Azure Firewall ポリシーに新しい規則を追加する場合は、次の手順を使用して、更新時間の合計を減らす必要があります。
- Azure Firewall または Azure Firewall ポリシー オブジェクトを取得します。
- すべての新しい規則を追加し、その他の必要な変更をローカル オブジェクトで実行します。 既存の規則コレクションに追加することも、必要に応じて新しい規則コレクションを作成することもできます。
- すべての変更が行われた場合にのみ、ファイアウォールまたはファイアウォール ポリシーの更新をプッシュします。
次の例では、Azure PowerShell を使用して、既存のファイアウォール ポリシーに複数の新しい DNAT 規則を追加する方法を示します。 次の場合も同じ原則に従う必要があります。
- アプリケーションまたはネットワーク規則を更新する。
- クラシック ルールで管理されているファイアウォールを更新する。
次の手順を慎重に確認してください。 まず、テスト ポリシーでそれを試し、ニーズに合わせて正常に動作することを確認する必要があります。
Azure アカウントに接続し、サブスクリプションにコンテキストを設定する
Connect-AzAccount
Set-AzContext -Subscription "<Subscription ID>"
ファイアウォール ポリシー、規則コレクション グループ、および規則コレクションのローカル オブジェクトを作成する
$policy = Get-AzFirewallPolicy -Name "<Policy Name>" -ResourceGroupName "<Resource Group Name>"
$natrulecollectiongroup = Get-AzFirewallPolicyRuleCollectionGroup -Name "<Rule Collection Group Name>" -ResourceGroupName "<Resource Group Name>" -AzureFirewallPolicyName "<Firewall Policy Name>"
$existingrulecollection = $natrulecollectiongroup.Properties.RuleCollection | where {$_.Name -eq "<rule collection name"}
追加する新しい規則を定義する
$newrule1 = New-AzFirewallPolicyNatRule -Name "dnat-rule1" -Protocol "TCP" -SourceAddress "<Source Address>" -DestinationAddress "<Destination>" -DestinationPort "<Destination Port>" -TranslatedAddress "<Translated Address>" -TranslatedPort "<Translated Port>"
$newrule2 = New-AzFirewallPolicyNatRule -Name "dnat-rule1" -Protocol "TCP" -SourceAddress "<Source Address>" -DestinationAddress "<Destination>" -DestinationPort "<Destination Port>" -TranslatedAddress "<Translated Address>" -TranslatedPort "<Translated Port>"
新しい規則をローカル規則コレクション オブジェクトに追加する
$existingrulecollection.Rules.Add($newrule1)
$existingrulecollection.Rules.Add($newrule2)
この手順を使用して、さらに規則を追加したり、同じ規則コレクション グループ内の既存の規則を変更したりします。
Azure で規則コレクションを更新する
Set-AzFirewallPolicyRuleCollectionGroup -Name " <Rule Collection Group Name> " -FirewallPolicyObject $policy -Priority 200 -RuleCollection $natrulecollectiongroup.Properties.rulecollection