鉴于安全组,我能够找到使用安全组附加的关联EC2实例:
sgs = conn.get_all_security_groups( filters = {'group-name':grouplist})
for sg in sgs:
for instance in sg.instances():
print sg.name,instance.id,i.ip_address
如何获得与安全组所附的RDS或ELB相同的信息。
请注意,安全组是一般的VPC SG,可以在EC2控制台窗口中看到,但在我的情况下也用于RDS和ELB的
答案 0 :(得分:1)
以下可能不是最佳解决方案,但这可行。我给了boto3例子。
对于ELB,您可以使用describe_load_balancers获取帐户中的所有负载均衡器,而无需在该方法的参数中指定任何负载均衡器。这也给出了与每个ELB相关联的安全组。您可以循环ELB列表。创建安全组名称和ELB列表的映射,例如:
{ 'sg1' : [elb1, elb2],
'sg2' : [elb3, elb5]
}
这可以通过循环ELB中的安全组来完成。
,如下所示(不是一个完美的工作代码,但你可以得到一个想法):
sgDict = {}
for elb in Elbs:
Sgs = elb['SecurityGroups']
for sg in Sgs:
elbName = elb['LoadBalancerName']
if sg in sgDict:
elbList = sgDict[sg];
elbList.append(elbName);
sgDict[sg] = elbList;
else:
sgDict[sg] = [elbName]
对于RDS,您可以使用describe_db_instances
执行类似的操作