Azure - 如何将新 IP 附加到多个网络安全组的 SourceAddressPrefix
Posted
技术标签:
【中文标题】Azure - 如何将新 IP 附加到多个网络安全组的 SourceAddressPrefix【英文标题】:Azure - How to append new IP to SourceAddressPrefix for multiple Network Security Groups 【发布时间】:2022-01-15 05:26:36 【问题描述】:我遇到了一个试图用新 IP 更新现有 NSG 的 impas。 我发现的唯一方法是使用 Set-AzNetworkSecurityRuleConfig,但无法将 IP 附加到 SourceAddressPrefix 列表,只能用新列表覆盖。
例如:
$ruleip=$item| Select-Object -Property SourceAddressPrefix,name,Priority
foreach( $ip in $ruleip)
if( $ip.SourceAddressPrefix -eq $requiredIp)
$rec=Get-AzNetworkSecurityGroup -Name $ng.Name
Set-AzNetworkSecurityRuleConfig `
-Name $ip.Name `
-NetworkSecurityGroup $rec `
**-SourceAddressPrefix ("172.22.0.0/17","172.23.0.0/17") `**
-Protocol * `
-Access Allow `
-Direction Inbound `
-DestinationAddressPrefix * `
-SourcePortRange * `
-DestinationPortRange * `
-Priority $item.Priority
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $rec
我尝试使用 System.Object 输入,例如:
-SourceAddressPrefix ($($item.SourceAddressPrefix),"17x.xx.x.x/xx")
但是它会抛出一个错误:
Set-AzNetworkSecurityRuleConfig : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'SourceAddressPrefix'. Specified method is not supported.
有人知道替代方案吗? 谢谢!
【问题讨论】:
您正在创建一个包含 2 项的数组 - 第一项是数组(即数组对象$item SourceAddressPrefix
),第二项是字符串(您的新地址)。改用( @($item.SourceAddressPrefix) + "17x.xx.x.x/xx" )
- 这将创建一个数组,其中包含$item.SourceAddressPrefix
中的items,后跟您的新地址。
就是这样!非常感谢!
【参考方案1】:
谢谢mclayton。发布您的建议作为帮助其他社区成员的答案。
您正在创建一个包含 2 项的数组 - 第一项是数组(即数组对象
$item SourceAddressPrefix
),第二项是字符串(您的新地址)。
改用
( @($item.SourceAddressPrefix) + "17x.xx.x.x/xx" )
- 这将创建一个数组,其中包含$item.SourceAddressPrefix
中的项目,后跟您的新地址。
【讨论】:
以上是关于Azure - 如何将新 IP 附加到多个网络安全组的 SourceAddressPrefix的主要内容,如果未能解决你的问题,请参考以下文章
将新数据附加到窗口时如何重新加载 jQuery 插件。没有提供 reload() 方法
如何使用 terraform 将多个 IP 动态添加到 azure servicebus 防火墙