Azure NSG-从输入csv筛选某些IP

时间:2018-10-18 16:51:54

标签: azure csv azure-powershell azure-virtual-network azure-nsg

我正在使用PowerShell创建Azure NSG,它将使用具有安全规则的.csv文件中的输入。我正在使用下面的脚本。

$NSG = Get-AzureRmNetworkSecurityGroup -Name test -ResourceGroupName RG-VM-QTY

foreach($rule in import-csv "SystemPath\inputfile.csv") 
{ 
$NSG | Add-AzureRmNetworkSecurityRuleConfig -Name $rule.name -Access Allow -Protocol $rule.protocol -Direction $rule.direction -Priority $rule.priority 
-SourceAddressPrefix $rule.source -SourcePortRange * 
-DestinationAddressPrefix $rule.destination -DestinationPortRange $rule.port 
}

$NSG | Set-AzureRmNetworkSecurityGroup

想检查是否存在限制添加特定IP的方法,可以说将127.0.0.1添加为任何规则中的源或目标。 如果IP 127.0.0.1存在于.csv中,我可以进行哪些检查以避免完全创建NSG?

先谢谢大家!! 干杯。

1 个答案:

答案 0 :(得分:2)

这是经过修改的PowerShell脚本,其中添加了一个简单的 if条件,以检查SourceAddressPrefix和DestinationAddressPrefix是否不应该完全是127.0.0.1

$NSG = Get-AzureRmNetworkSecurityGroup -Name test -ResourceGroupName RG-VM-QTY 

foreach($rule in import-csv "SystemPath\inputfile.csv") 
{
   # additional if condition to check that source or destination address prefix should not be 127.0.0.1
   if($rule.SourceAddressPrefix -ne "127.0.0.1" -And $rule.DestinationAddressPrefix -ne "127.0.0.1")
   { 
          $NSG | Add-AzureRmNetworkSecurityRuleConfig -Name $rule.name -Access Allow -Protocol $rule.protocol -Direction $rule.direction -Priority $rule.priority 
             -SourceAddressPrefix $rule.source -SourcePortRange * -DestinationAddressPrefix $rule.destination -DestinationPortRange $rule.port 
   }
} 

$NSG | Set-AzureRmNetworkSecurityGroup

您的状况现在很容易检查127.0.0.1,因此状况是否足够好。

如果您遇到更复杂的逻辑,请考虑创建一个单独的函数,例如ValidateRule(),该函数可以封装所有条件并调用该函数以检查是否应添加规则。