Skip to content

Commit 80e8c80

Browse files
Save & Commit (#25376)
* wip * markdowns * markdown fix * breaking changes fix * markdown fixes * markdowns fixes 3 * markdown 4 --------- Co-authored-by: Lior Stauber <[email protected]>
1 parent 8c1d35d commit 80e8c80

File tree

33 files changed

+9411
-32
lines changed

33 files changed

+9411
-32
lines changed

src/Network/Network.Test/ScenarioTests/AzureFirewallPolicyTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,5 +212,21 @@ public void TestAzureFirewallPolicyIDPSProfiles()
212212
{
213213
TestRunner.RunTestScript("Test-AzureFirewallPolicyIDPSProfiles");
214214
}
215+
216+
[Fact]
217+
[Trait(Category.AcceptanceType, Category.CheckIn)]
218+
[Trait(Category.Owner, NrpTeamAlias.azurefirewall)]
219+
public void TestAzureFirewallPolicyDraft()
220+
{
221+
TestRunner.RunTestScript("Test-AzureFirewallPolicyDraft");
222+
}
223+
224+
[Fact]
225+
[Trait(Category.AcceptanceType, Category.CheckIn)]
226+
[Trait(Category.Owner, NrpTeamAlias.azurefirewall)]
227+
public void TestAzureFirewallPolicyRCGyDraft()
228+
{
229+
TestRunner.RunTestScript("Test-AzureFirewallPolicyRCGDraft");
230+
}
215231
}
216232
}

src/Network/Network.Test/ScenarioTests/AzureFirewallPolicyTests.ps1

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2095,4 +2095,177 @@ function Test-AzureFirewallPolicyIDPSProfiles {
20952095
# Cleanup
20962096
Clean-ResourceGroup $rgname
20972097
}
2098+
}
2099+
<#
2100+
.SYNOPSIS
2101+
Tests function Test-AzureFirewallPolicyDraft.
2102+
#>
2103+
function Test-AzureFirewallPolicyDraft {
2104+
# Setup
2105+
$rgname = Get-ResourceGroupName
2106+
$azureFirewallPolicyName = Get-ResourceName
2107+
$azureFirewallPolicyAsJobName = Get-ResourceName
2108+
$resourceTypeParent = "Microsoft.Network/FirewallPolicies"
2109+
$location = "westus2"
2110+
$tier = "Premium"
2111+
2112+
try {
2113+
# Create the resource group
2114+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "testval" }
2115+
# Intrusion Detection Settings
2116+
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Alert"
2117+
# Create AzureFirewallPolicy
2118+
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -SkuTier $tier -IntrusionDetection $intrusionDetection
2119+
# Create AzureFirewallPolicyDraft
2120+
$newAzureFirewallPolicyDraft = New-AzFirewallPolicyDraft -FirewallPolicyObject $azureFirewallPolicy
2121+
# Get AzureFirewallPolicyDraft
2122+
$getAzureFirewallPolicyDraft = Get-AzFirewallPolicyDraft -AzureFirewallPolicyName $azureFirewallPolicyName -ResourceGroupName $rgname
2123+
2124+
# verification
2125+
Assert-NotNull $getAzureFirewallPolicyDraft.IntrusionDetection
2126+
Assert-AreEqual "Alert" $getAzureFirewallPolicyDraft.IntrusionDetection.Mode
2127+
Assert-Null $getAzureFirewallPolicyDraft.Snat
2128+
2129+
# Updated Intrusion Detection Settings
2130+
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Deny"
2131+
$setAzureFirewallPolicy = Set-AzFirewallPolicyDraft -AzureFirewallPolicyName $azureFirewallPolicyName -ResourceGroupName $rgname -IntrusionDetection $intrusionDetection
2132+
# Get AzureFirewallPolicyDraft
2133+
$getAzureFirewallPolicyDraft = Get-AzFirewallPolicyDraft -AzureFirewallPolicyName $azureFirewallPolicyName -ResourceGroupName $rgname
2134+
2135+
# verification
2136+
Assert-AreEqual "Deny" $getAzureFirewallPolicyDraft.IntrusionDetection.Mode
2137+
2138+
# Deploy policy draft
2139+
Deploy-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
2140+
# Get AzureFirewallPolicy
2141+
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
2142+
# verification
2143+
Assert-NotNull $getAzureFirewallPolicyDraft.IntrusionDetection
2144+
Assert-AreEqual "Deny" $getAzureFirewallPolicyDraft.IntrusionDetection.Mode
2145+
}
2146+
2147+
finally {
2148+
# Cleanup
2149+
Clean-ResourceGroup $rgname
2150+
}
2151+
}
2152+
2153+
<#
2154+
.SYNOPSIS
2155+
Tests function Test-AzureFirewallPolicyRCGDraft.
2156+
#>
2157+
function Test-AzureFirewallPolicyRCGDraft {
2158+
# Setup
2159+
$rgname = Get-ResourceGroupName
2160+
$azureFirewallPolicyName = Get-ResourceName
2161+
$azureFirewallPolicyAsJobName = Get-ResourceName
2162+
$resourceTypeParent = "Microsoft.Network/FirewallPolicies"
2163+
$location = "canadacentral"
2164+
2165+
$ruleGroupName = Get-ResourceName
2166+
$ruleGroupDraftName = Get-ResourceName
2167+
2168+
# AzureFirewallPolicyNatRuleCollection
2169+
$natRcName = "natRc"
2170+
$natRcName2 = "natRc2"
2171+
$natRcPriority = 100
2172+
$natRcActionType = "Dnat"
2173+
2174+
# AzureFirewallPolicyNatRule 1
2175+
$natRule1Name = "natRule"
2176+
$natRule1Desc = "desc1"
2177+
$natRule1SourceAddress1 = "10.0.0.0"
2178+
$natRule1SourceAddress2 = "111.1.0.0/24"
2179+
$natRule1Protocol1 = "UDP"
2180+
$natRule1Protocol2 = "TCP"
2181+
$natRule1DestinationAddress1 = "10.10.10.1"
2182+
$natRule1DestinationPort1 = "90"
2183+
$natRule1TranslatedFqdn = "server1.internal.com"
2184+
$natRule1TranslatedPort = "91"
2185+
2186+
$pipelineRcPriority = 154
2187+
2188+
try
2189+
{
2190+
# Create the resource group
2191+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "testval" }
2192+
# Create AzureFirewallPolicy
2193+
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location
2194+
# Get AzureFirewallPolicy
2195+
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
2196+
# Create NAT rule
2197+
$natRule = New-AzFirewallPolicyNatRule -Name $natRule1Name -Description $natRule1Desc -Protocol $natRule1Protocol1, $natRule1Protocol2 -SourceAddress $natRule1SourceAddress1, $natRule1SourceAddress2 -DestinationAddress $natRule1DestinationAddress1 -DestinationPort $natRule1DestinationPort1 -TranslatedFqdn $natRule1TranslatedFqdn -TranslatedPort $natRule1TranslatedPort
2198+
# Create a NAT Rule Collection
2199+
$natRc = New-AzFirewallPolicyNatRuleCollection -Name $natRcName -ActionType $natRcActionType -Priority $natRcPriority -Rule $natRule
2200+
New-AzFirewallPolicyRuleCollectionGroup -Name $ruleGroupName -Priority 100 -RuleCollection $natRc -FirewallPolicyObject $azureFirewallPolicy
2201+
# Set AzureFirewallPolicy
2202+
Set-AzFirewallPolicy -InputObject $azureFirewallPolicy
2203+
2204+
# Create Policy Draft
2205+
New-AzFirewallPolicyDraft -AzureFirewallPolicyName $azureFirewallPolicyName -ResourceGroupName $rgname
2206+
# Create a NAT Rule Collection
2207+
$natRc2 = New-AzFirewallPolicyNatRuleCollection -Name $natRcName2 -ActionType $natRcActionType -Priority $natRcPriority -Rule $natRule
2208+
# Create RuleCollection Group Draft
2209+
New-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName $ruleGroupName -Priority 100 -RuleCollection $natRc2 -FirewallPolicyObject $azureFirewallPolicy
2210+
# Get AzureFirewallPolicy Rule Collection Group draft
2211+
$getAzureFirewallPolicyDraft = Get-AzFirewallPolicyDraft -AzureFirewallPolicyName $azureFirewallPolicyName -ResourceGroupName $rgName
2212+
$getAzureFirewallPolicyRuleCollectionGroupDraft = Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName $ruleGroupName -FirewallPolicyObject $azureFirewallPolicy
2213+
2214+
# Verification
2215+
Assert-AreEqual 1 @($getAzureFirewallPolicyRuleCollectionGroupDraft.properties.ruleCollection).Count
2216+
$natRuleCollection = $getAzureFirewallPolicyRuleCollectionGroupDraft.Properties.GetRuleCollectionByName($natRcName2)
2217+
2218+
# Verify NAT rule collection and NAT rule
2219+
$natRule = $natRuleCollection.GetRuleByName($natRule1Name)
2220+
2221+
Assert-AreEqual $natRcName2 $natRuleCollection.Name
2222+
Assert-AreEqual $natRcPriority $natRuleCollection.Priority
2223+
2224+
Assert-AreEqual $natRule1Name $natRule.Name
2225+
2226+
Assert-AreEqual 2 $natRule.SourceAddresses.Count
2227+
Assert-AreEqual $natRule1SourceAddress1 $natRule.SourceAddresses[0]
2228+
Assert-AreEqual $natRule1SourceAddress2 $natRule.SourceAddresses[1]
2229+
2230+
Assert-AreEqual 1 $natRule.DestinationAddresses.Count
2231+
2232+
Assert-AreEqual 2 $natRule.Protocols.Count
2233+
Assert-AreEqual $natRule1Protocol1 $natRule.Protocols[0]
2234+
Assert-AreEqual $natRule1Protocol2 $natRule.Protocols[1]
2235+
2236+
Assert-AreEqual 1 $natRule.DestinationPorts.Count
2237+
Assert-AreEqual $natRule1DestinationPort1 $natRule.DestinationPorts[0]
2238+
2239+
Assert-AreEqual $natRule1TranslatedFqdn $natRule.TranslatedFqdn
2240+
Assert-AreEqual $natRule1TranslatedPort $natRule.TranslatedPort
2241+
$testPipelineRg = Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName $ruleGroupName -AzureFirewallPolicyName $getAzureFirewallPolicy.Name -ResourceGroupName $rgname
2242+
$testPipelineRg|Set-AzFirewallPolicyRuleCollectionGroupDraft -Priority $pipelineRcPriority
2243+
2244+
$testPipelineRg = Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName $ruleGroupName -AzureFirewallPolicyName $getAzureFirewallPolicy.Name -ResourceGroupName $rgname
2245+
Assert-AreEqual $pipelineRcPriority $testPipelineRg.properties.Priority
2246+
2247+
$azureFirewallPolicyAsJob = New-AzFirewallPolicy -Name $azureFirewallPolicyAsJobName -ResourceGroupName $rgname -Location $location -AsJob
2248+
$result = $azureFirewallPolicyAsJob | Wait-Job
2249+
Assert-AreEqual "Completed" $result.State
2250+
2251+
# Deploy policy draft
2252+
Deploy-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
2253+
# Get AzureFirewallPolicy
2254+
$getAzureFirewallPolicyRuleCollectionGroup = Get-AzFirewallPolicyRuleCollectionGroup -Name $ruleGroupName -ResourceGroupName $rgname -AzureFirewallPolicyName $azureFirewallPolicyName
2255+
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgName
2256+
2257+
# verification
2258+
Assert-AreEqual $rgName $getAzureFirewallPolicy.ResourceGroupName
2259+
Assert-AreEqual $azureFirewallPolicyName $getAzureFirewallPolicy.Name
2260+
Assert-NotNull $getAzureFirewallPolicy.Location
2261+
Assert-AreEqual $location $getAzureFirewallPolicy.Location
2262+
2263+
# Check rule collection groups count
2264+
Assert-AreEqual 1 @($getAzureFirewallPolicy.RuleCollectionGroups).Count
2265+
Assert-AreEqual 1 @($getAzureFirewallPolicyRuleCollectionGroup.properties.ruleCollection).Count
2266+
}
2267+
finally {
2268+
# Cleanup
2269+
Clean-ResourceGroup $rgname
2270+
}
20982271
}

0 commit comments

Comments
 (0)