查询ec2实例中使用的SSH入站源0.0.0.0/0

时间:2019-05-24 21:28:43

标签: amazon-web-services security ssh aws-cli

我想查询并列出所有具有规则的ec2实例,这些规则允许source = 0.0.0.0/0(入站)到端口22 / ssh上的ec2实例。

目标是获取包含所有规则的所有服务器的列表,该规则允许任何人在端口22 / ssh上访问服务器。在这种情况下,我需要查看并查看所有服务器以应用正确的强化。

有可能吗?我该如何控制,可见性=治理?

谢谢!

1 个答案:

答案 0 :(得分:-1)

您可以编写一个脚本,

  • 检索安全组列表
  • 浏览安全组并检查入站规则
  • 检查SSH 0.0.0.0/0

除非您特别擅长使用Shell脚本,否则使用Python之类的语言编写而不是使用AWS CLI可能更容易。

会是这样的:

import boto3

PORT = 22
ANYWHERE = '0.0.0.0/0'

ec2 = boto3.client('ec2', region_name='ap-southeast-2')

groups = ec2.describe_security_groups()

for group in groups['SecurityGroups']:
    for permission in group['IpPermissions']:
        if 'FromPort' in permission and PORT >= permission['FromPort'] and PORT <= permission['ToPort']:
            for range in permission['IpRanges']:
                if range['CidrIp'] == ANYWHERE:
                    print group['GroupName']

请参阅:describe_security_groups()

您还可以创建一个AWS Config rule,它可以连续检查配置是否违反。