[英]Azure updating multiple NSG rules with powershell
我想根據不斷變化的 IP 地址列表一次更新多個 NSG 規則。 例如,我想更新名為 ftp、ssh、https(以及其他幾個)的規則。 這是我到目前為止所擁有的:
$ips = @("10.1.1.2", "10.1.1.3", "192.168.0.0/16")
$nsgName = "Dev1-nsg"
$resourceGroupName = "myResourceGrp1"
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
Set-AzNetworkSecurityRuleConfig -Name "ftp" -NetworkSecurityGroup $nsg -SourceAddressPrefix $ips
Set-AzNetworkSecurityRuleConfig -Name "ssh" -NetworkSecurityGroup $nsg -SourceAddressPrefix $ips
Set-AzNetworkSecurityRuleConfig -Name "https" -NetworkSecurityGroup $nsg -SourceAddressPrefix $ips
Get-AzNetworkSecurityRuleConfig -Name "ftp" -NetworkSecurityGroup $nsg
Get-AzNetworkSecurityRuleConfig -Name "ssh" -NetworkSecurityGroup $nsg
Get-AzNetworkSecurityRuleConfig -Name "https" -NetworkSecurityGroup $nsg
我的問題:
我們無法更新 Azure 中的 NSG 規則,但需要修改本地 PowerShell 腳本,然后將更改推送到 Azure,請參閱此答案。
要遍歷規則名稱列表以更新每個 IP 列表,您可以這樣做。
$ips = @("10.1.1.2", "10.1.1.3", "192.168.0.0/16") $nsgName = "ubun-a-nsg" $resourceGroupName = "nancy" $rule_names = @("NRMS-Rule-103","NRMS-Rule-104","NRMS-Rule-105") foreach($rule_name in $rule_names) { $nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName $rule= $nsg | Get-AzNetworkSecurityRuleConfig -Name $rule_name Set-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg ` -Name $rule_name ` -Access $rule.Access ` -Protocol $rule.Protocol ` -Direction $rule.Direction ` -Priority $rule.Priority ` -SourceAddressPrefix $ips ` -SourcePortRange $rule.SourcePortRange ` -DestinationAddressPrefix $rule.DestinationAddressPrefix ` -DestinationPortRange $rule.DestinationPortRange ` -Description $rule.Description $nsg | Set-AzNetworkSecurityGroup }
測試結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.