Set-AzFirewallPolicyRuleCollectionGroup 保存多个Rule Collection

发布时间:2024年01月03日

使用Azure Powershell?设置?Rule Collection Group,?首先需要创建?Firewall policy。

在创建完firewall policy后,通过Azure Portal页面添加?Rule Collection Group。

然后就可以使用?Set-AzFirewallPolicyRuleCollectionGroup命令在Firewall policy中添加Rule Collection Group了。

以下是一个简单例子,通过Azure Powershell在Rule Collection Group中添加Rule Collection和Rules。

$resourceGroup = "test_rg"

$fprg = $resourceGroup

$targetfp = Get-AzFirewallPolicy -Name "testFWpolicy"?? -ResourceGroupName $fprg?? //获取Firewall Policy对象

$targetrcg = Get-AzFirewallPolicyRuleCollectionGroup -AzureFirewallPolicyName "vincentFWpolicy" -Name "network-segmentation-local"? -ResourceGroupName $resourceGroup?? //获取Rule Collection Group对象

$rules = @()

$RuleParameter = @{

??????? Name = "net-pde-to-external-prod-allowasdfajsdlflklkajlkfd"

??????? Protocol = "Any"

??????? sourceAddress = "*"

??????? DestinationAddress = "*"

??????? DestinationPort = "*"

}??

$rule = New-AzFirewallPolicyNetworkRule @RuleParameter

$NetworkRuleCollection = @{

??????? Name = "src-azure-network-rules-segmentation-allow"

??????? Priority = "666"

??????? ActionType = "Allow"

??????? Rule?????? = $rules += $rule

??? }? //在第一个Rule Collection中添加Rule

$NetworkRuleCategoryCollection = New-AzFirewallPolicyFilterRuleCollection @NetworkRuleCollection

$rules = @()

$RuleParameter = @{

??????? Name = "net-pde-to-external-prod-allow-all2"

??????? Protocol = "Any"

??????? sourceAddress = "*"

??????? DestinationAddress = "*"

??????? DestinationPort = "*"

}

$rule = New-AzFirewallPolicyNetworkRule @RuleParameter

$NetworkRuleCollection2 = @{

??????? Name = "src-azure-network-rules-segmentation-allowasdfasdf2"

??????? Priority = "888"

??????? ActionType = "Allow"

??????? Rule?????? = $rules += $rule

??? }?? //在第二个Rule Collection中添加Rule

$NetworkRuleCategoryCollection2 = New-AzFirewallPolicyFilterRuleCollection @NetworkRuleCollection2

//将以上创建的两个Rule Collection加入Rule Collection Group对象

$targetrcg.Properties.RuleCollection.Add($NetworkRuleCategoryCollection)

$targetrcg.Properties.RuleCollection.Add($NetworkRuleCategoryCollection2)

//设置保存Rule Collection Group并使其生效

Set-AzFirewallPolicyRuleCollectionGroup -FirewallPolicyName testFWpolicy -Name $targetrcg.Name? -Priority 112 -ResourceGroupName test_rg -RuleCollection? $targetrcg.Properties.RuleCollection

需要注意的问题:

Set-AzFirewallPolicyRuleCollectionGroup这个命令执行的是Overwrite操作,它会保存命令中的多个Rule Collection。同时会覆盖掉之前的配置,如果保存之前在Rule Collection Group中存在其他的Rule Collection,那么这些没有在命令中被写入的Rule Collection就会被擦除。所以如果想一次在Rule Collection Group中设置多个Rule Collection。需要在参数中指定多个Rule Collection的数组。

参考文档:

Set-AzFirewallPolicyRuleCollectionGroup (Az.Network) | Microsoft Learn

文章来源:https://blog.csdn.net/qq_17130945/article/details/135314615
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。