Skip to content

Commit 517a132

Browse files
authored
Merge pull request #123319 from NiviShenker/main
Update migrate-to-policy.md
2 parents fa93e8e + 4ac5c82 commit 517a132

File tree

1 file changed

+35
-21
lines changed

1 file changed

+35
-21
lines changed

articles/firewall-manager/migrate-to-policy.md

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,22 @@ The beginning of the script defines the source firewall name and resource group
2525
Modify the following script to migrate your firewall configuration.
2626

2727
```azurepowershell
28-
#Input params to be modified as needed
29-
$FirewallResourceGroup = "AzFWMigrateRG"
28+
# Input params to be modified as needed
29+
$FirewallResourceGroup = "AzFWMigrateRG"
3030
$FirewallName = "azfw"
3131
$FirewallPolicyResourceGroup = "AzFWPolicyRG"
3232
$FirewallPolicyName = "fwpolicy"
3333
$FirewallPolicyLocation = "WestEurope"
34-
@@ -43,141 +44,186 @@ $InvalidCharsPattern = "[']"
35-
#Helper functions for translating ApplicationProtocol and ApplicationRule
34+
35+
$DefaultAppRuleCollectionGroupName = "ApplicationRuleCollectionGroup"
36+
$DefaultNetRuleCollectionGroupName = "NetworkRuleCollectionGroup"
37+
$DefaultNatRuleCollectionGroupName = "NatRuleCollectionGroup"
38+
$ApplicationRuleGroupPriority = 300
39+
$NetworkRuleGroupPriority = 200
40+
$NatRuleGroupPriority = 100
41+
$InvalidCharsPattern = "[']"
42+
43+
# Helper functions for translating ApplicationProtocol and ApplicationRule
3644
Function GetApplicationProtocolsString
3745
{
3846
Param([Object[]] $Protocols)
@@ -81,7 +89,7 @@ Function ParseRuleName
8189
Param([Object] $RuleName)
8290
if ($RuleName -match $InvalidCharsPattern) {
8391
$newRuleName = $RuleName -split $InvalidCharsPattern -join ""
84-
Write-Host "Rule $RuleName contains an invalid character. Invalid characters have been removed, rule new name is $newRuleName. " -ForegroundColor Cyan
92+
Write-Host "Rule $RuleName contains an invalid character. Invalid characters have been removed, rule new name is $newRuleName. " -ForegroundColor Yellow
8593
return $newRuleName
8694
}
8795
return $RuleName
@@ -100,8 +108,9 @@ else {
100108
$fwp = New-AzFirewallPolicy -Name $FirewallPolicyName -ResourceGroupName $FirewallPolicyResourceGroup -Location $FirewallPolicyLocation -ThreatIntelMode $azfw.ThreatIntelMode
101109
}
102110
Write-Host $fwp.Name "created"
111+
112+
# Translate ApplicationRuleCollection
103113
Write-Host "creating " $azfw.ApplicationRuleCollections.Count " application rule collections"
104-
#Translate ApplicationRuleCollection
105114
If ($azfw.ApplicationRuleCollections.Count -gt 0)
106115
{
107116
$firewallPolicyAppRuleCollections = @()
@@ -115,18 +124,19 @@ If ($azfw.ApplicationRuleCollections.Count -gt 0)
115124
{
116125
$cmd = GetApplicationRuleCmd($appRule)
117126
$firewallPolicyAppRule = Invoke-Expression $cmd
118-
Write-Host "Created appRule " $firewallPolicyAppRule.Name
127+
Write-Host "Created Application Rule: " $firewallPolicyAppRule.Name
119128
$firewallPolicyAppRules += $firewallPolicyAppRule
120129
}
121130
$fwpAppRuleCollection = New-AzFirewallPolicyFilterRuleCollection -Name $appRC.Name -Priority $appRC.Priority -ActionType $appRC.Action.Type -Rule $firewallPolicyAppRules
122-
Write-Host "Created appRuleCollection " $fwpAppRuleCollection.Name
131+
Write-Host "Created Application Rule Collection: " $fwpAppRuleCollection.Name
123132
}
124133
$firewallPolicyAppRuleCollections += $fwpAppRuleCollection
125134
}
126135
$appRuleGroup = New-AzFirewallPolicyRuleCollectionGroup -Name $DefaultAppRuleCollectionGroupName -Priority $ApplicationRuleGroupPriority -RuleCollection $firewallPolicyAppRuleCollections -FirewallPolicyObject $fwp
127-
Write-Host "Created ApplicationRuleCollectionGroup " $appRuleGroup.Name
136+
Write-Host "Created Application Rule Collection Group: " $appRuleGroup.Name
128137
}
129-
#Translate NetworkRuleCollection
138+
139+
# Translate NetworkRuleCollection
130140
Write-Host "creating " $azfw.NetworkRuleCollections.Count " network rule collections"
131141
If ($azfw.NetworkRuleCollections.Count -gt 0)
132142
{
@@ -170,18 +180,19 @@ If ($azfw.NetworkRuleCollections.Count -gt 0)
170180
$firewallPolicyNetRule = New-AzFirewallPolicyNetworkRule -Name $parsedName -SourceIpGroup $rule.SourceIpGroups -DestinationFqdn $rule.DestinationFqdns -DestinationPort $rule.DestinationPorts -Protocol $rule.Protocols
171181
}
172182
}
173-
Write-Host "Created network rule " $firewallPolicyNetRule.Name
183+
Write-Host "Created network rule: " $firewallPolicyNetRule.Name
174184
$firewallPolicyNetRules += $firewallPolicyNetRule
175185
}
176186
$fwpNetRuleCollection = New-AzFirewallPolicyFilterRuleCollection -Name $rc.Name -Priority $rc.Priority -ActionType $rc.Action.Type -Rule $firewallPolicyNetRules
177-
Write-Host "Created NetworkRuleCollection " $fwpNetRuleCollection.Name
187+
Write-Host "Created Network Rule Collection: " $fwpNetRuleCollection.Name
178188
}
179189
$firewallPolicyNetRuleCollections += $fwpNetRuleCollection
180190
}
181191
$netRuleGroup = New-AzFirewallPolicyRuleCollectionGroup -Name $DefaultNetRuleCollectionGroupName -Priority $NetworkRuleGroupPriority -RuleCollection $firewallPolicyNetRuleCollections -FirewallPolicyObject $fwp
182-
Write-Host "Created NetworkRuleCollectionGroup " $netRuleGroup.Name
192+
Write-Host "Created Network Rule Collection Group: " $netRuleGroup.Name
183193
}
184-
#Translate NatRuleCollection
194+
195+
# Translate NatRuleCollection
185196
# Hierarchy for NAT rule collection is different for AZFW and FirewallPolicy. In AZFW you can have a NatRuleCollection with multiple NatRules
186197
# where each NatRule will have its own set of source , dest, translated IPs and ports.
187198
# In FirewallPolicy a NatRuleCollection has a set of rules which has one condition (source and dest IPs and Ports) and the translated IP and ports
@@ -198,29 +209,32 @@ If ($azfw.NatRuleCollections.Count -gt 0)
198209
If ($rc.Rules.Count -gt 0)
199210
{
200211
Write-Host "creating " $rc.Rules.Count " nat rules for collection " $rc.Name
201-
202212
ForEach ($rule in $rc.Rules)
203213
{
204214
$parsedName = ParseRuleName($rule.Name)
205-
If ($rule.SourceAddresses)
206-
@@ -188,18 +234,19 @@ If ($azfw.NatRuleCollections.Count -gt 0) {
215+
If ($rule.SourceAddresses)
207216
{
208-
$firewallPolicyNatRule = New-AzFirewallPolicyNatRule -Name $parsedName -SourceIpGroup $rule.SourceIpGroups -TranslatedAddress $rule.TranslatedAddress -TranslatedPort $rule.TranslatedPort -DestinationAddress $rule.DestinationAddresses -DestinationPort $rule.DestinationPorts -Protocol $rule.Protocols
217+
$firewallPolicyNatRule = New-AzFirewallPolicyNatRule -Name $parsedName -SourceIpGroup $rule.SourceAddresses -TranslatedAddress $rule.TranslatedAddress -TranslatedPort $rule.TranslatedPort -DestinationAddress $rule.DestinationAddresses -DestinationPort $rule.DestinationPorts -Protocol $rule.Protocols
209218
}
219+
elseif ($rule.SourceIpGroups)
220+
{
221+
$firewallPolicyNatRule = New-AzFirewallPolicyNatRule -Name $parsedName -SourceIpGroup $rule.SourceIpGroups -TranslatedAddress $rule.TranslatedAddress -TranslatedPort $rule.TranslatedPort -DestinationAddress $rule.DestinationAddresses -DestinationPort $rule.DestinationPorts -Protocol $rule.Protocols
222+
}
210223
Write-Host "Created NAT rule: " $firewallPolicyNatRule.Name
211224
$firewallPolicyNatRules += $firewallPolicyNatRule
212225
}
213226
214227
$natRuleCollectionName = $rc.Name
215228
$fwpNatRuleCollection = New-AzFirewallPolicyNatRuleCollection -Name $natRuleCollectionName -Priority $priority -ActionType $rc.Action.Type -Rule $firewallPolicyNatRules
216229
$priority += 1
217-
Write-Host "Created NAT RuleCollection " $fwpNatRuleCollection.Name
230+
Write-Host "Created NAT Rule Collection: " $fwpNatRuleCollection.Name
218231
$firewallPolicyNatRuleCollections += $fwpNatRuleCollection
219232
}
220233
}
221-
$natRuleGroup = New-AzFirewallPolicyRuleCollectionGroup -Name $DefaultNatRuleCollectionGroupName -Priority $NatRuleGroupPriority -RuleCollection $firewallPolicyNatRuleCollections -FirewallPolicyObject $fwp
222-
Write-Host "Created NAT RuleCollectionGroup " $natRuleGroup.Name
234+
$natRuleCollectionGroup = New-AzFirewallPolicyRuleCollectionGroup -Name $DefaultNatRuleCollectionGroupName -Priority $NatRuleGroupPriority -RuleCollection $firewallPolicyNatRuleCollections -FirewallPolicyObject $fwp
235+
Write-Host "Created NAT Rule Collection Group: " $natRuleCollectionGroup.Name
223236
}
237+
224238
```
225239
## Next steps
226240

0 commit comments

Comments
 (0)