- 我正在尝试获取安全组列表。 (成功 - 使用 Get-EC2SecurityGroup)
- 获取与每个安全组关联的特定 IP 权限的列表。 (成功 - 使用 (Get-EC2SecurityGroup).IpPermissions)
- 仅返回 FromPort = "xxx"的结果(不成功 - 不确定如何访问结果列表中返回的 FromPort 属性)
最终我想要完成的是:
获取现有安全组的列表,并遍历每个组。
在遍历每个组时,调用 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 : {}
最佳答案
这是一个按照您描述的方式执行的示例:
- 通过 FromPort 过滤安全组对象
- 在匹配的安全组中,输出 IpProtocol、IpRanges、ToPort 和 UserIdGroupPairs。
代码:
# 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 {}
... ... ... ...
关于powershell - 如何访问 Get-EC2SecurityGroup 的 IpPermissions 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538605/