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


当前回答

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

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

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

其他回答

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


No.

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

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

您可能想要激活AWS配置:

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

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

我想这可能会有帮助!在这里,您需要输入地区名称,并且在尝试之前必须配置AWS CLI。

aws resourcegroupstaggingapi get-resources --region region_name

它将按以下格式列出该地区的所有资源。

- ResourceARN: arn:aws:cloudformation:eu-west-1:5524534535:stack/auction-services-dev/*******************************
  Tags:
  - Key: STAGE
    Value: dev
- ResourceARN: arn:aws:cloudformation:eu-west-1:********************
Tags:
-- More  --

通过CLI将所有资源导出为CSV格式

步骤1:激活AWS资源资源管理器

https://resource-explorer.console.aws.amazon.com/resource-explorer

步骤2:使用AWS CLI列出资源

Aws resource-explorer-2 search——query-string arn——output text > resources.csv

正如Ashwini所建议的那样,我会在“资源组”中使用“标签编辑器”。

您可以轻松地列出所有地区的所有资源,无需任何设置等。 虽然这确实包括所有默认的vpc +安全组等(所以你会得到~140项,即使你的帐户是空的),你仍然可以相当容易地过滤它,无论是在标签编辑器中,或导出到csv和Excel中过滤,例如。

试试这个

仅适用于ec2:

from skew import scan

    arn = scan('arn:aws:ec2:us-west-2:123456789012:instance/i-12345678')
    for resource in arn:
        print(resource.data)

所有资源:

arn = scan('arn:aws:*:*:<<youraccountId>>:instance*')
for resource in arn:
    print(resource.data)

参考资料:https://github.com/scopely-devops/skew