最终我要完成的是:
获取现有安全组的列表,并遍历每个组。
在循环浏览每个组时,调用IpPermissions,并查找特定的FromPort" xxx"。
如果FromPort匹配,请记录其他属性:(FromPort,IpProtocol,IpRanges,ToPort,UserIdGroupPairs)
我遇到的问题
我不确定如何使用亚马逊对象进行循环
我似乎无法访问属性,即使它们似乎已命名并具有值。
我尝试过使用-Filter进行多次不同的迭代,但没有成功。
文档似乎是自我引用的,我遇到的示例并没有达到这个详细程度。
从(Get-EC2SecurityGroup)返回的结果.IpPermissions
FromPort : 123
IpProtocol : tcp
IpRanges : {0.0.0.0/0}
ToPort : 123
UserIdGroupPairs : {}
答案 0 :(得分:1)
以下是您所描述的示例:
代码:
# Example using port 22
PS C:\> $port = 22
PS C:\> Get-EC2SecurityGroup |
? { $_.IpPermissions.FromPort -eq $port } |
% { $_.IpPermissions } |
Select -property IpProtocol, IpRanges, ToPort, UserIdGroupPairs
输出:
IpProtocol IpRanges ToPort UserIdGroupPairs
---------- -------- ------ ----------------
tcp {0.0.0.0/0} 22 {}
... ... ... ...