[英]Azure NSG - Filter certain IPs from input csv
我正在使用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添加为任何规则中的源或目标。 如果.csv中存在IP 127.0.0.1,我可以进行任何检查以避免完全创建NSG?
在此先感谢大家!! 干杯。
这是修改后的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(),该函数可以封装所有条件并调用该函数以检查是否应添加规则。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.