首页 > 解决方案 > 查询 ec2 实例中使用的 SSH 入站源 0.0.0.0/0

问题描述

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

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

那可能吗?我怎样才能控制它,可见性 = 治理?

谢谢!

标签: amazon-web-servicessecuritysshaws-cli

解决方案


您可以编写一个脚本:

  • 检索安全组列表
  • 遍历安全组并检查入站规则
  • 检查 SSH0.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 规则。


推荐阅读