AWS-CLIを利用して、セキュリティグループの一覧を表示します。
aws ec2 describe-security-groups --output=table --query 'sort_by(SecurityGroups[].{A_GroupName: GroupName, B_Name: Tags[?Key==`Name`].Value|[0], C_GroupID: GroupId}, &A_GroupName)'
---------------------------------------------------------------------- | DescribeSecurityGroups | +--------------------+----------------------+------------------------+ | A_GroupName | B_Name | C_GroupID | +--------------------+----------------------+------------------------+ | default | None | sg-XXXXXXXX | | private-sg | private-sg | sg-XXXXXXXXXXXXXXXXX | | public-sg | public-sg | sg-XXXXXXXXXXXXXXXXX | +--------------------+----------------------+------------------------+
このコマンドだとセキュリティグループの一覧は取得できますが、詳細なルールは表示されません。
aws ec2 describe-security-groups --group-ids security-group-id --output=table --query 'sort_by(SecurityGroups[].IpPermissions[].{A_Protocol: IpProtocol, B_SourcePort: FromPort, C_SourceIP: join(`, `, IpRanges[].CidrIp), D_SourceId: join(`, `, UserIdGroupPairs[].GroupId), E_SourcePrefix: join(`, `, PrefixListIds[].PrefixListId)}, &A_Protocol)'
------------------------------------------------------------------------------------------------------------------ | DescribeSecurityGroups | +------------+---------------+----------------------------------------+-----------------------+------------------+ | A_Protocol | B_SourcePort | C_SourceIP | D_SourceId | E_SourcePrefix | +------------+---------------+----------------------------------------+-----------------------+------------------+ | tcp | 80 | 192.168.1.0/24 | | | | tcp | 22 | 192.168.1.0/24, 192.168.2.0/24 | sg-XXXXXXXXXXXXXXXXX | | | tcp | 3389 | 192.168.1.0/24 | | | +------------+---------------+----------------------------------------+-----------------------+------------------+
セキュリティグループのIDを個別に指定する必要がありますが、こちらのコマンドでインバウンドルールの一覧が表示されます。セキュリティグループを指定している場合はSourceIdの列に表示されます。
aws ec2 describe-security-groups --group-ids security-group-id --output=table --query 'sort_by(SecurityGroups[].IpPermissionsEgress[].{A_Protocol: IpProtocol, B_DestPort: ToPort, C_DestIP: join(`, `, IpRanges[].CidrIp), D_DestId: join(`, `, UserIdGroupPairs[].GroupId), E_DestPrefix: join(`, `, PrefixListIds[].PrefixListId)}, &A_Protocol)'
---------------------------------------------------------------------------- | DescribeSecurityGroups | +------------+-------------+-----------------+------------+----------------+ | A_Protocol | B_DestPort | C_DestIP | D_DestId | E_DestPrefix | +------------+-------------+-----------------+------------+----------------+ | -1 | None | 0.0.0.0/0 | | | | tcp | 80 | 192.168.5.0/24 | | | | tcp | 443 | | | pl-XXXXXXXX | +------------+-------------+-----------------+------------+----------------+
こちらはアウトバウンドルールの一覧が表示されます。「-1」はすべてのトラフィックを許可している場合に表示されるようです。PrefixListを指定している場合は、DestPrefixに表示されます。