需求:

查看某个vpc下面所有云资源(EC2、数据库等等),通过页面可以看到或者哪里可以导出列表

解决方法:

1. 通过控制台或 CLI 列出 ENI 
2. 使用 AWS Config - 高级查询


详情介绍

1、通过控制台或 CLI 列出 ENI 

1.1、正常情况,如果有资源 (像是 EC2实例、RDS、ELB 等) 在您 VPC 内,都会有相对应的 ENI,您可以透过检查 ENI 来大致判断有哪些资源在您 VPC 內。 通过控制台

a、EC2 控制台中的网络接口 (Network Interfaces)

b、然后根据 VPC ID 过滤 

c、检查 ENI 描述来知道相关使用服务

1.2、或者您可以通过 CLI,使用 describe-network-interfaces ,以下命令列出了指定 VPC 内的所有 ENI 以及相关资讯 (RequesterId, Description)

aws ec2 describe-network-interfaces --filters Name=vpc-id,Values=vpc-0ef065ab3e684ca71 --query 'NetworkInterfaces[*].[OwnerId, Description]' --output text

记得修改 <vpc id> 为您的 VPC ID。

参考:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-network-interfaces.html

2、使用 AWS Config - 高级查询

2.1、进入 AWS 控制台并搜寻 Config

2.2、然后左边点选 高级查询 (Advanced queries)

2.3、点击 新建查询

2.4、于新建查询,贴上以下范例,然后点击运行

SELECT
  resourceId,
  resourceName,
  resourceType,
  configuration.instanceType,
  tags,
  availabilityZone
WHERE
  relationships.resourceId = 'vpc-607dcd18'

2.5、查看输出结果

参考:

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-network-interfaces.html

https://docs.aws.amazon.com/zh_cn/config/latest/developerguide/querying-AWS-resources.html