如何使用 python boto 获取给定安全组的资源?
How to get the resource for a given security group using python boto?
给定一个安全组,我可以使用以下方法找到安全组附加到的关联 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 的相同信息。
请注意,安全组是在 EC2 控制台中看到的通用 VPC SG window,但在我的情况下,也已在 RDS 和 ELB 上使用
以下可能不是最佳解决方案,但可以。我已经给出了 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
做类似的事情
给定一个安全组,我可以使用以下方法找到安全组附加到的关联 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 的相同信息。
请注意,安全组是在 EC2 控制台中看到的通用 VPC SG window,但在我的情况下,也已在 RDS 和 ELB 上使用
以下可能不是最佳解决方案,但可以。我已经给出了 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
做类似的事情