使用Powershell报告AWS安全组

问题描述 投票:1回答:1

我对PowerShell和AWS CLI并不陌生,已经寻找并寻找发布了此内容的其他人...

我想做的就是正确使用代码来创建每个AWS安全组的报告,以显示入站规则。

这样的东西我会成像输出。

SecurityGroupName GroupID, Type, Protcol, PortRange, Source, Description SSH & HTTP gs-1111 SSH TCP 22 0.0.0.0/0 Inbound SSH & HTTP SSH & HTTP gs-1111 HTTP TCP 80 1.2.34 Inbound SSH & HTTP HTTPS gs-2222 HTTPS TCP 443 0.0.0.0/0'

但是我不知道。

我可以使用$GroupID=Get-EC2SecurityGroup -Region us-east-1 |Select-Object -ExpandProperty GroupID

ForEach ($item in $GroupID) {
(Get-EC2SecurityGroup -Region us-east-1 -GroupId $item).IpPermissions | Select-Object IPProtocol,IpRange, FromPort,ToPort}

要获得基本规则,但似乎无法结合您需要的所有属性。这是我缺乏能力的地方真正困扰的地方。任何帮助都会很棒!

amazon-web-services powershell security
1个回答
0
投票

首先,您需要创建一个包含所有对象的新Powershell array。稍后,运行特定区域中的所有安全组并将相关数据添加到hash-table object。然后,只需将对象添加到我们先前创建的数组中即可。

代码段:

$region = 'YOUR_REGION'
$allSG = @()

Get-EC2SecurityGroup  -Region $region  | % {

    $obj = @{

    Description = $_.IpPermission.Ipv4Ranges.Description
    GroupId = $_.GroupId
    SecurityGroupName   = $_.GroupName
    Source = $_.IpPermission.Ipv4Ranges.CidrIp
    FromPort = $_.IpPermission.FromPort
    ToPort = $_.IpPermission.ToPort
    Protocol = $_.IpPermission.IpProtocol
    }

    $object = new-object psobject -Property $obj
    $allSG += $object 

}

输出:

enter image description here

见解:

  1. 某些描述可能会丢失。
  2. 从/到端口代表类型(例如-80 = HTTP,443 = HTTPS)
© www.soinside.com 2019 - 2024. All rights reserved.