python - 如何使用 python boto 获取给定安全组的资源?

标签 python amazon-web-services boto aws-sdk boto3

给定一个安全组,我可以使用以下方法找到该安全组附加到的关联 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 上使用

最佳答案

下面的方法可能不是最好的解决方案,但这是可行的。我已经给出了 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 执行类似的操作

关于python - 如何使用 python boto 获取给定安全组的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34731797/

相关文章:

python - 输出指定为整数或浮点的 Tensorflow

python - 是否可以使用 getch() 获取不同长度的输入?

python - 使用 RequestContext 时出现 UnknownTimeZoneError

mysql - 使用只读副本提升在 AWS RDS MySQL 数据库上创建索引

amazon-web-services - PIG 中的 DUMP 命令不起作用

python-2.7 - 使用 Boto 在 Amazon Mturk 中创建 HIT 时获取 HIT Id

import - 在pycharm中使用boto

python - 在嵌入式 Python 解释器中打印变量

amazon-web-services - 如何加入 AWS DynamoDB 中的表?

python - 如何使用 boto 遍历 DynamoDB 表中的所有项目?