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


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


No.

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

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

您可能想要激活AWS配置:

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

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


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

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


我也在寻找类似的功能“列出所有资源”在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。


是的。使用标签编辑器。

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


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

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

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


试试这个

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


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


使用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.


Yes.

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

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

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


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

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

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

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

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


您可以使用标签编辑器。

进入AWS控制台 在“TOP”导航窗格中,单击“资源组”下拉菜单 点击标签编辑器

在这里,我们可以选择要搜索的特定区域,也可以从下拉菜单中选择所有区域。然后我们可以选择我们想要搜索的实际资源,或者我们也可以单击单个资源。


您可以在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


另一个选择是使用这个脚本为每个资源执行“aws configservice list-discovered-resources——resource-type”

for i in  AWS::EC2::CustomerGateway AWS::EC2::EIP AWS::EC2::Host AWS::EC2::Instance AWS::EC2::InternetGateway AWS::EC2::NetworkAcl AWS::EC2::NetworkInterface AWS::EC2::RouteTable AWS::EC2::SecurityGroup AWS::EC2::Subnet AWS::CloudTrail::Trail AWS::EC2::Volume AWS::EC2::VPC AWS::EC2::VPNConnection AWS::EC2::VPNGateway AWS::IAM::Group AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::ACM::Certificate AWS::RDS::DBInstance AWS::RDS::DBSubnetGroup AWS::RDS::DBSecurityGroup AWS::RDS::DBSnapshot AWS::RDS::EventSubscription AWS::ElasticLoadBalancingV2::LoadBalancer AWS::S3::Bucket AWS::SSM::ManagedInstanceInventory AWS::Redshift::Cluster AWS::Redshift::ClusterSnapshot AWS::Redshift::ClusterParameterGroup AWS::Redshift::ClusterSecurityGroup  AWS::Redshift::ClusterSubnetGroup AWS::Redshift::EventSubscription AWS::CloudWatch::Alarm AWS::CloudFormation::Stack AWS::DynamoDB::Table AWS::AutoScaling::AutoScalingGroup AWS::AutoScaling::LaunchConfiguration AWS::AutoScaling::ScalingPolicy AWS::AutoScaling::ScheduledAction AWS::CodeBuild::Project AWS::WAF::RateBasedRule AWS::WAF::Rule AWS::WAF::WebACL AWS::WAFRegional::RateBasedRule AWS::WAFRegional::Rule AWS::WAFRegional::WebACL AWS::CloudFront::Distribution  AWS::CloudFront::StreamingDistribution AWS::WAF::RuleGroup AWS::WAFRegional::RuleGroup AWS::Lambda::Function AWS::ElasticBeanstalk::Application AWS::ElasticBeanstalk::ApplicationVersion AWS::ElasticBeanstalk::Environment AWS::ElasticLoadBalancing::LoadBalancer AWS::XRay::EncryptionConfig AWS::SSM::AssociationCompliance AWS::SSM::PatchCompliance AWS::Shield::Protection AWS::ShieldRegional::Protection AWS::Config::ResourceCompliance AWS::CodePipeline::Pipeline; do aws configservice list-discovered-resources --resource-type $i; done

我知道这是个老问题,但我也想帮忙。

实际上,我们有AWS配置,它可以帮助我们搜索云中的所有资源。您也可以执行SQL查询。

我真心鼓励你们了解这项了不起的服务。


我想这可能会有帮助!在这里,您需要输入地区名称,并且在尝试之前必须配置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  --

您可以通过AWS Config(以及从CLI for Config)运行高级查询,这将列出所有资源。如果您定义了一个涵盖所有原因(可能还有多个帐户)的聚合器,那么您可以得到一个非常全面的视图…… 就像“SELECT *”一样简单


另一个开源工具是Cloud Query https://docs.cloudquery.io/


亚马逊一直在努力改善用户体验。但是,还有其他多种方法可以检查您在AWS中使用的资源。我相信这个新的EC2仪表盘非常酷。点击链接将直接导航到特定的资源控制面板。


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


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

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


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

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

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

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


通过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