2016-04-26 8 views
1

Ich bin hier irgendwie festgefahren.'NoneType' Objekt hat kein Attribut 'get_all_security_groups'

. 
regions = ['us-west-2','eu-central-1','ap-southeast-1'] ##Prod VPC 
data = [] 
header = ["Port","Open For","Security group","Instance Details"] 

for region in regions: 
    connection=ec2.connect_to_region(region) 
    print connection 
    sg=connection.get_all_security_groups() 
    print sg 
    try: 
     for securityGroup in sg: 
      for rule in securityGroup.rules: 
       if '0.0.0.0/0' in str(rule.grants): 
        for instanceid in securityGroup.instances(): 
         instanceId=str(instanceid) 
        # print instanceId 
         tag = getTag(connection, instanceId.split(':')[1]) 
         if tag is not None: 
         # print tab    
         tab =[str(rule.to_port),"0.0.0.0/0",str(securityGroup.name),str(getTag(connection, instanceId.split(':')[1]))] 
         data.append(tab) 
    except Exception,e: 
     pass 

Daraus ergibt sich die folgende

EC2Connection:ec2.us-west-2.amazonaws.com 
    [SecurityGroup: too many sec groups here.........] 
None 
Traceback (most recent call last): 
    File "aws_sec_scan.py", line 29, in <module> 
    sg=connection.get_all_security_groups() 
AttributeError: 'NoneType' object has no attribute 'get_all_security_groups' 

warum ich erhalte, dass "None"? Diese

+0

Was ist 'ec2.connect_to_region (Region)' Rückkehr? –

+0

Ihre Verbindung ist Keine. Es ist offensichtlich von den Protokollen. – alpert

+0

Es scheint, dass Sie die 'Connection' in der ersten Iteration der Schleife haben, aber Sie haben es in der zweiten Iteration verloren. – AKS

Antwort

0

die stacktrace Breaking up:

Im ersten Iteration Sie die connection haben, daher ist kein Fehler:

EC2Connection:ec2.us-west-2.amazonaws.com # this is your connection 
[SecurityGroup: too many sec groups here.........] # this being the security groups 

Im zweite Iteration:

None # this prints the connection you obtained for that 'region' 

So jetzt, wenn Sie sg=connection.get_all_security_groups() verwenden, erhalten Sie follo Flügel Fehler seit dem connection ist None:

Traceback (most recent call last): 
    File "aws_sec_scan.py", line 29, in <module> 
    sg=connection.get_all_security_groups() 
AttributeError: 'NoneType' object has no attribute 'get_all_security_groups' 
+0

okay ,, ich habe den Code aktualisiert, ich bin mir nicht sicher, wie man die Verbindung hier nicht bricht –

+0

Macht es Sinn? Warum ist die Verbindung "Keine"? Ich kann nicht herausfinden, –

+0

Es macht keinen Sinn, aber könnten Sie einfach versuchen, "ec2.connect_to_region (region)" in der Konsole für die bestimmte Region, wo Sie None bekommen. – AKS

0

ist, weil Verbindung keine ist und Sie versuchen, eine Funktion aus Keine Wert für Fragen prüfen

sg=connection.get_all_security_groups() 

So rufen in die Verbindung richtig hinzubekommen.

+1

Macht es Sinn? Warum ist die Verbindung "Keine"? Ich kann nicht herausfinden –

Verwandte Themen