powershell - 如何访问 Get-EC2SecurityGroup 的 IpPermissions 属性?

标签 powershell amazon-web-services amazon-ec2 aws-powershell

  1. 我正在尝试获取安全组列表。 (成功 - 使用 Get-EC2SecurityGroup)
  2. 获取与每个安全组关联的特定 IP 权限的列表。 (成功 - 使用 (Get-EC2SecurityGroup).IpPermissions)
  3. 仅返回 FromPort = "xxx"的结果(不成功 - 不确定如何访问结果列表中返回的 FromPort 属性)

最终我想要完成的是:

  1. 获取现有安全组的列表,并遍历每个组。

  2. 在遍历每个组时,调用 IpPermissions,并查找特定的 FromPort“xxx”。

  3. 如果 FromPort 匹配,则记录其他属性:(FromPort、IpProtocol、IpRanges、ToPort、UserIdGroupPairs)

我遇到的问题

  1. 我不确定如何使用亚马逊对象进行循环

  2. 我似乎无法访问属性,即使它们似乎已命名并具有值。

  3. 我尝试过多次使用 -Filter,但没有成功。

  4. 文档似乎是自引用的,我遇到的示例并没有深入到这种详细程度。

从 (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/

相关文章:

amazon-web-services - AWS SQS 始终返回 1 条消息(PHP SDK)

android - 在gradle构建期间检索AWS数据

networking - EC2 VPC 实例 - 端口被过滤

c++ - 在 VS Code 终端(即 Windows Powershell)中编译时遇到问题

powershell - PowerShell脚本可从服务器的多个文件夹中复制同一文件并粘贴到另一台服务器中

powershell - 通过NSIS静默运行Powershell

debugging - 清除 ISE Powershell 环境/调试方法

angular - 使用 AWS Amplify 构建 Angular 10 应用程序时出错

java - 使用 Apache Spark 将数据从一个数据库传输到另一个数据库的 ETL 过程

linux - 寻找在服务器机器启动时启动新 tmux 部分的方法