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


当前回答

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

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

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

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

其他回答

有一个云管理平台可以做到这一点。它使用户能够从一个仪表板管理多个AWS帐户,并提供AWS库存管理。免费下载:https://cloudplexo.com。

编辑:这个答案是不正确的。有几种方法可以列出AWS资源(AWS标签编辑器等)。检查 其他答案了解更多细节。


No.

每个AWS服务(例如Amazon EC2, Amazon S3)都有自己的API调用集。此外,每个区域都是独立的。

要获得所有资源的列表,必须对每个区域中的每个服务进行API调用。

您可能想要激活AWS配置:

AWS配置提供AWS帐户中AWS资源配置的详细视图。这包括资源如何相互关联,以及它们在过去是如何配置的,以便您可以看到配置和关系如何随时间变化。

但是,AWS配置只收集有关EC2/ vpc相关资源的信息,而不是AWS帐户中的所有信息。

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

不, 没有办法一次性获得帐户内的所有资源。每个区域都是独立的,对于一些服务,比如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。

已经很晚了,但你应该看看这个。我知道不是CLI,但仍然值得用一些shell脚本来做你需要的事情:

https://pypi.org/project/aws-list-all/

它是一个python库,用它自己的话来说:

“项目描述 列出一个AWS帐户中的所有资源、所有区域和所有服务(*)。编写JSON文件以供进一步处理。

(*)不保证完整性。如果你担心成本,可以使用计费提醒。”

AWS计费管理控制台将为您提供每月到目前为止按服务支出的纲要。