список всех SG, разрешающих 0.0.0.0/0 - AWS Lambda с использованием Python - PullRequest
0 голосов
/ 17 октября 2019

Я относительно плохо знаком с лямбда-функциями и питоном. Попытка выполнить лямбда-функцию, которая перечисляет все группы безопасности в моей учетной записи AWS, которые разрешают 0.0.0.0/0. Спасибо, если кто-нибудь может помочь

Я пытался сделать это, но он дает экземпляры, которые открыты для 0.0.0.0/0, вместо этого мне нужен список всех SG, которые имеют правило

import sys
import boto
from boto import ec2
from boto import sns
connection=ec2.connect_to_region("region-name")
connSNS = boto.sns.connect_to_region("region-name")
sg=connection.get_all_security_groups()

listOfInstances=""
messages="Following Instances have port open to all"

def getTag(instanceId):
    reservations=connection.get_all_instances(filters={'instance_id':instanceId})
    for r in reservations:
        for i in r.instances:
            return i.tags['Name']

try:
    for securityGroup in sg:
        for rule in securityGroup.rules:
            global instanceId;
            if (rule.from_port=='0' and rule.to_port == '65535') and '0.0.0.0/0' in str(rule.grants):
                for instanceid in securityGroup.instances():
                    instanceId=str(instanceid)
                    listOfInstances += "Instance Name : " + getTag(instanceId.split(':')[1]) + "\t State:" + instanceid.state + "\t SecurityGroup:" +securityGroup.name + "\n"
                    connSNS.publish(topic='SNS-topic-arn-endpoint',message = messages + "\n" + listOfInstances, subject='ProjectName : Server List with Port Open to all')

except :
    print 'Some Error occurred : '
    print sys.exc_info()
    connSNS.publish(topic='SNS-topic-arn-endpoint',message = sys.exc_info(), subject='script ended with error')

1 Ответ

1 голос
/ 18 октября 2019

Эти строки специально находят экземпляры для указанных групп безопасности:

            for instanceid in securityGroup.instances():
                instanceId=str(instanceid)
                listOfInstances += "Instance Name : " + getTag(instanceId.split(':')[1]) + "\t State:" + instanceid.state + "\t SecurityGroup:" +securityGroup.name + "\n"

Если вам не нужны экземпляры, удалите эти строки и вместо этого верните сами группы безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...