2015-04-02 3 views
0

Я пытаюсь получить группу безопасности, прикрепленную к RDS в AWS. Он не возвращает ничего, кроме имени RDS. Нужен способ подключения группы безопасности к RDS.Доступ к группе безопасности RDS с использованием Boto

Мой текущий код->

rds_sg = conn2.get_all_dbinstances() 

for r in rds_sg: 
    sec = [] 
    sec = r.security_groups 
    for s in sec: 
     print s 

Это ничего не печатает.

+0

Не могли бы вы пост код, который вы используете в настоящее время, а также ответ, который вы получаете от RDS? – garnaat

+0

Выполнено ... извините, fr поздно ответ :) –

+1

Вы используете VPC? Если это так, вы найдете группы безопасности с атрибутом '' vpc_security_groups'', а не атрибутом '' security_groups''. – garnaat

ответ

1

Следующие работы для меня (принимает на себя один RDS Instance, но вы можете изменить это):

def get_db_info(): 

    rds_conn = boto.connect_rds2(profile_name=AWS_PROFILE) 
    if not rds_conn: 
     print(_red('Cannot connect to AWS.RDS')) 
     return 

    instances = rds_conn.describe_db_instances() 
    if not instances: 
     print(_red('No instances found')) 
     return 

    inst = instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances'][0] 

    dbinfo = {} 
    endpoint = inst['Endpoint'] 
    dbinfo['VPCSecurityGroupId'] = inst['VpcSecurityGroups'][0]['VpcSecurityGroupId'] 
    dbinfo['dbSecurityGroupName'] = inst['DBSecurityGroups'][0]['DBSecurityGroupName'] 

    print('') 
    print(_blue('db Info ===========>\n')) 
    for item in dbinfo: 
     print(_green('%20s : %s' % (item, dbinfo[item]))) 

Вместо PROFILE_NAME, вы можете использовать AWS ключ/Секретные аргументы

Смежные вопросы