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


当前回答

使用PacBot (Policy as Code Bot)——一个开源项目,它是一个用于持续合规监控、合规报告和云安全自动化的平台。PacBot发现所有帐户和所有区域的所有资源,然后根据这些策略进行评估,以衡量策略的一致性。

Omni搜索功能也提供了搜索所有发现的资源的能力。您甚至可以通过PacBot终止/删除资源。

Omni搜索

带有结果过滤的搜索结果页

资产360 /资产详情页面

以下是PacBot的主要功能:

Continuous compliance assessment. Detailed compliance reporting. Auto-Fix for policy violations. Omni Search - Ability to search all discovered resources. Simplified policy violation tracking. Self-Service portal. Custom policies and custom auto-fix actions. Dynamic asset grouping to view compliance. Ability to create multiple compliance domains. Exception management. Email Digests. Supports multiple AWS accounts. Completely automated installer. Customizable dashboards. OAuth2 Support. Azure AD integration for login. Role-based access control. Asset 360 degree.

其他回答

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


No.

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

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

您可能想要激活AWS配置:

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

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

这是一篇很好的文章,列出了在AWS云中列出资源的工具。 https://link.medium.com/tZbs8eLyohb

其中,CloudYali https://www.cloudyali.io是新推出的服务。它显示了来自不同账户、地区、现在和过去的所有云资源,都可以在一个中心位置使用。

试试这个

仅适用于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

Yes.

我也遇到了同样的问题,试图弄清楚我的AWS账户到底发生了什么。

最终,我编写了AWSRetriver,这是一个列出所有地区AWS资源的桌面工具。

这是一个简单而直接的工具,列出了一切…(希望)

是的。使用标签编辑器。

将“区域”设置为“所有区域”,“资源类型”设置为“所有支持的资源类型”,然后单击“搜索资源”。