組織通常需要基於各種原因更新其 Azure 防火牆原則,例如將新的應用程式或工作負載上線、解決安全性弱點、執行維護,或藉由合併或移除未使用的規則來優化原則。 這些更新可能會牽涉到多個參與者,而且每個變更可能需要幾分鐘的時間才能部署。
使用 Azure 防火牆原則草稿 + 部署,您可以使用兩個階段方法來簡化此程式:
支援的案例和限制
草稿和部署功能是針對特定使用案例所設計,並具有特定條件約束:
支援的案例
- 此功能僅供 Azure 防火牆原則使用。 它不支援以傳統規則設定的防火牆。
局限性
- 草稿會作為目前套用之原則的複製品。 除非手動更新,否則在建立草稿之後對套用原則所做的任何變更不會反映在草稿中。
- 部署草稿會取代整個套用的原則。 建立草稿之後對套用原則所做的變更不會保留,除非它們也會新增至草稿。
- 在原則草稿內,不直接支援建立新的規則集合群組 (RCG)。
- 在任何時刻,一項政策僅能存在一個草稿。
先決條件
- 如果您沒有 Azure 訂用帳戶,您可以建立 免費帳戶 以開始使用。
- 若要搭配 Azure CLI 使用此功能,請確定您已安裝 Azure 防火牆延伸模組,並將其更新為 1.2.3 版或更新版本。
備註
透過 Azure PowerShell 或 Azure REST API 使用這項功能時,您必須先下載目前的原則,並根據它手動建立草稿。 相反地,使用 Azure 入口網站或 CLI 會自動從現有原則產生草稿。
使用草稿 + 部署
Azure 防火牆草稿 + 部署可讓您在將防火牆原則套用至生產環境之前,對防火牆原則進行大量更新。
在 Azure 入口網站中,流覽至現有的防火牆原則,或建立新的防火牆原則。
在 [Azure 防火牆原則] 頁面的 [ 管理 ] 區段底下,選取 [草稿和部署],然後選取 [ 建立新的草稿]。 這會建立一個草稿副本,這是目前您所套用的政策的完整複製品。
在草稿頁面上,對規則或設定進行變更或新增。 這些頁面與已部署政策中的頁面相同。 變更只會在您部署草稿時生效。
若要確認變更,請返回 [ 部署] 畫面,以檢閱更新的規則或設定。 若要套用變更,請選取 [部署草稿]。 部署之後,草稿會取代目前的原則,並成為最新版本。 部署之後會刪除草稿。
視需要重複此過程,以更新防火牆原則。
執行 az login 命令以登入您的 Azure 帳戶:
az login
使用 az network firewall policy draft create 命令建立草稿 。 此命令會建立目前套用原則的草稿。 您可以使用 --policy-name 與 --resource-group 參數來指定防火牆原則的名稱和資源群組:
az network firewall policy draft create --policy-name fw-policy --resource-group test-rg
使用 az network firewall policy draft update 命令來更新草稿中的設定。 此命令可讓您修改草稿的威脅情報模式和IDPS模式。
--threat-intel-mode使用 參數來設定所需的威脅情報模式,並使用 --idps-mode 參數來設定入侵檢測和預防系統 (IDPS) 模式:
az network firewall policy draft update --policy-name fw-policy --resource-group test-rg --threat-intel-mode Off --idps-mode Deny
更新草稿規則
使用 az network firewall policy rule-collection-group draft create 命令建立新的規則集合群組 (RCG):
az network firewall policy rule-collection-group draft create --rule-collection-group-name rcg-b --policy-name fw-policy --resource-group test-rg --priority 303
將 NAT 規則集合新增至草稿中的現有 RCG
az network firewall policy rule-collection-group draft collection add-nat-collection \
--name nat_collection_1 \
--collection-priority 10003 \
--policy-name fw-policy \
--resource-group test-rg \
--rule-collection-group-name rcg-c \
--action DNAT \
--rule-name network_rule_21 \
--description "test" \
--destination-addresses "202.120.36.15" \
--source-addresses "202.120.36.13" "202.120.36.14" \
--translated-address 128.1.1.1 \
--translated-port 1234 \
--destination-ports 12000 12001 \
--ip-protocols TCP UDP
使用 az network firewall policy draft show 命令檢視草稿的詳細數據:
az network firewall policy draft show --policy-name fw-policy --resource-group test-rg
使用 az network firewall policy deploy 命令部署草稿來套用變更:
az network firewall policy deploy --name fw-policy --resource-group test-rg
如果您不再需要使用 az network firewall policy draft delete 命令,請捨棄草稿:
az network firewall policy draft delete --policy-name fw-policy --resource-group test-rg
使用 New-AzFirewallPolicyDraft Cmdlet 來建立目前套用原則的草稿。 指定原則名稱與資源群組名稱:
New-AzFirewallPolicyDraft -AzureFirewallPolicyName fw-policy -ResourceGroupName test-rg
使用 Set-AzFirewallPolicyDraft Cmdlet 來更新草稿中的設定。 例如,您可以更新威脅情報模式和 IDPS 模式:
Set-AzFirewallPolicyDraft -AzureFirewallPolicyName fw-policy -ResourceGroupName test-rg -ThreatIntelWhitelist $threatIntelWhitelist
使用下列 Cmdlet 更新草稿規則:
New-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName rcg-a -ResourceGroupName test-rg -AzureFirewallPolicyName fw-policy -Priority 200
$rule1 = New-AzFirewallPolicyApplicationRule -Name "Allow-HTTP" -Protocol "Http:80" -SourceAddress "10.0.0.0/24" -TargetFqdn www.example.com
$rule2 = New-AzFirewallPolicyApplicationRule -Name "Allow-HTTPS-2" -Protocol "Https:443" -SourceAddress "10.0.0.0/24" -TargetFqdn "www.secureexample.com"
$ruleCollection = New-AzFirewallPolicyFilterRuleCollection -Name "Allow-Rules" -Priority 100 -Rule $rule1, $rule2 -ActionType Allow
Set-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName rcg-b -ResourceGroupName test-rg -AzureFirewallPolicyName fw-policy -Priority 400 -RuleCollection $ruleCollection
使用 Get-AzFirewallPolicyDraft Cmdlet 來檢視草稿的詳細數據:
Get-AzFirewallPolicyDraft -AzureFirewallPolicyName fw-policy -ResourceGroupName test-rg
使用 Deploy-AzFirewallPolicy Cmdlet,將草稿中的變更套用至實時原則:
Deploy-AzFirewallPolicy -Name fw-policy -ResourceGroupName test-rg
如果您想要捨棄草稿而不套用變更,請使用 Remove-AzFirewallPolicyDraft Cmdlet:
Remove-AzFirewallPolicyDraft -AzureFirewallPolicyName fw-policy -ResourceGroupName test-rg
後續步驟