Always-Try(정보보안 및 일상)

파이썬 이용한 AWS Security Group 보안 (ANY ANY 열린 그룹 조회) 본문

AWS

파이썬 이용한 AWS Security Group 보안 (ANY ANY 열린 그룹 조회)

Always-Try 2021. 11. 22. 02:11

파이썬 boto3 활용하여 ANY ANY 열린 시큐리티 그룹 조회

import boto3
from botocore.exceptions import ClientError

ec2 = boto3.client('ec2')

def get_sg_list():
    response = ec2.describe_security_groups()['SecurityGroups']
    for i in response:
        sg_id = i['GroupId']
        check_inbound_rule(sg_id)
        check_outbound_rule(sg_id)

def check_inbound_rule(sg_id):
    try:
        data = ec2.describe_security_groups(GroupIds=[sg_id])['SecurityGroups'][0]['IpPermissions']
        for i in data:
            get_port = i['IpProtocol']
            if get_port == '-1':
                   get_ip = i['IpRanges'][0]['CidrIp']
                   print(f"인바운드 ANY ANY 열린 Security Group은 {sg_id}")
    except KeyError:
        pass
    except IndexError:
        pass

def check_outbound_rule(sg_id):
    try:
        data = ec2.describe_security_groups(GroupIds=[sg_id])['SecurityGroups'][0]['IpPermissionsEgress']
        for i in data:
            get_port = i['IpProtocol']
            if get_port == '-1':
                   get_ip = i['IpRanges'][0]['CidrIp']
                   print(f"아웃바운드 ANY ANY 열린 Security Group은 {sg_id}")
    except KeyError:
        pass
    except IndexError:
        pass


if __name__ == "__main__":
    get_sg_list()
Comments