是否有一种方法可以列出AWS中的所有资源?所有地区,所有资源。例如列出所有EC2实例,所有vpc, API网关中的所有API等等…我想列出我账户的所有资源,因为我现在很难找到我可以放弃的资源。


当前回答

您可以在AWS配置控制台中使用查询。(地区可能因您而异)https://console.aws.amazon.com/config/home?region=us-east-1#/resources/query

查询将看起来像。

SELECT
  resourceId,
  resourceName,
  resourceType,
  relationships
WHERE
relationships.resourceId = 'vpc-#######'

下面是进一步的文档。

https://docs.aws.amazon.com/config/latest/developerguide/query-using-sql-editor-console.html

其他回答

编辑:这个答案是不赞成的。检查其他答案。

不, 没有办法一次性获得帐户内的所有资源。每个区域都是独立的,对于一些服务,比如IAM,区域的概念根本不存在。 尽管有可用的API调用来列出资源和服务。 例如: 要获取您的帐户所有可用区域的列表:

output, err := client.DescribeRegions(&ec2.DescribeRegionsInput{})

要获取IAM用户、角色或组的列表,您可以使用:

client.GetAccountAuthorizationDetails (&iam.GetAccountAuthorizationDetailsInput {})

你可以在下面找到更多关于API调用及其使用的细节: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/

以上链接仅供IAM使用。类似地,您可以为所有其他资源和服务找到API。

我也在寻找类似的功能“列出所有资源”在AWS,但找不到任何足够好的东西。

“资源组”没有帮助,因为它只列出已标记的资源,用户必须指定标记。如果您错过标记一个资源,该资源将不会出现在“资源组”中。

创建资源组界面

一个更合适的功能是“资源组”->“标签编辑器”,如前所述。选择区域和资源类型,在标签编辑器中查看资源列表。这可以达到目的,但不是很友好,因为每次我想使用它时,我都必须输入区域和资源类型。我仍然在寻找易于使用的用户界面。

标签编辑器下的“查找资源”界面

您可以在AWS配置控制台中使用查询。(地区可能因您而异)https://console.aws.amazon.com/config/home?region=us-east-1#/resources/query

查询将看起来像。

SELECT
  resourceId,
  resourceName,
  resourceType,
  relationships
WHERE
relationships.resourceId = 'vpc-#######'

下面是进一步的文档。

https://docs.aws.amazon.com/config/latest/developerguide/query-using-sql-editor-console.html

在2022年11月8日,AWS宣布了一项名为AWS资源资源管理器的新服务,该托管功能简化了资源的搜索和发现,提供了所有服务的列表,如EC2、Kinesis、DynamoDB等,在您的AWS帐户中跨AWS区域。

若要打开AWS资源管理器,请参阅AWS资源管理器控制台。阅读AWS资源资源管理器文档中有关入门的信息,或浏览AWS资源资源管理器产品页面

宣布页面链接宣布AWS资源资源管理器。

希望你能找到解决问题的方法。

aws提供的工具用处不大,因为它们不够全面。

在我试图缓解这个问题并获取我所有AWS资源的列表时,我发现了这个:https://github.com/JohannesEbke/aws_list_all

我还没有测试,但它看起来是合法的。