2015-04-02 60 views
0

我正尝试访问附加到AWS中RDS的安全组。它不会返回除RDS名称之外的任何内容。 需要一种方法将安全组连接到RDS。使用Boto访问RDS安全组

我现在的代码 - >

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 2015-04-02 13:06:46

+0

完成...对不起fr晚回复:) – 2015-04-04 10:42:06

+1

你使用VPC吗?如果是这样,你会发现具有属性“vpc_security_groups”属性而不是“security_groups”属性的安全组。 – garnaat 2015-04-07 00:19:04

回答

1

下对我的作品(假设一个RDS实例,但你可以改变):

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密钥/秘密参数