有没有办法列出AWS中的所有资源

时间:2017-06-06 13:47:06

标签: amazon-web-services

有没有办法列出AWS中的所有资源?对于所有地区,所有资源..例如列出所有EC2实例,所有VPC,API网关中的所有API等...我想列出我帐户的所有资源,因为我很难找到我现在可以放弃哪些资源。

22 个答案:

答案 0 :(得分:107)

是。使用Tag Editor。您可以点击以管理个人资源。

https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html

答案 1 :(得分:39)

此链接描述了如何使用标签编辑器查找未加标签的资源。您基本上可以将所有区域添加到顶部的区域框中,然后选择所有资源类型,查询将列出所有内容。

https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/scenario-finding-untagged.html

答案 2 :(得分:13)

没有

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

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

您可能想要激活AWS Config

  

AWS Config提供AWS账户中AWS资源配置的详细视图。这包括资源彼此之间的关系以及过去如何配置它们,以便您可以了解配置和关系如何随时间变化。

但是,AWS Config仅收集有关EC2 / VPC相关资源的信息,而不是AWS账户中的所有信息。

答案 3 :(得分:5)

我选择"标签编辑器"在"资源组"为此,正如Ashwini所建议的那样。

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

答案 4 :(得分:5)

使用PacBot (策略为代码漫游)-一个开源项目,它是一个平台,用于持续监视云,合规性报告和云安全自动化。 PacBot会根据这些策略评估所有帐户和所有区域中的所有资源,以评估策略的符合性。还提供Omni Search功能,可以搜索所有发现的资源。甚至您都可以通过PacBot终止/删除资源详细信息。

全方位搜索

Omni Search

具有结果过滤功能的搜索结果页面

Search Results Page With Results filtering

资产360 /资产详细信息页面

Asset 360 / Asset Details Page

以下是PacBot的关键功能

  • 持续合规评估。
  • 详细的合规报告。
  • 自动修复违反政策的行为。
  • 全能搜索-能够搜索所有发现的资源。
  • 简化的策略违规跟踪。
  • 自助服务门户。
  • 自定义策略和自定义自动修复操作。
  • 动态资产分组以查看合规性。
  • 能够创建多个合规性域。
  • 异常管理。
  • 电子邮件摘要。
  • 支持多个AWS帐户。
  • 完全自动化的安装程序。
  • 可自定义的仪表板。
  • OAuth2支持。
  • Azure AD集成用于登录。
  • 基于角色的访问控制。
  • 设定360度。

答案 5 :(得分:4)

AWS提供的工具无用,因为它们并不全面。

在我自己寻求缓解此问题并提取所有AWS资源的列表时,我发现了这一点:https://github.com/JohannesEbke/aws_list_all

我还没有测试过,但它看起来很合法。

答案 6 :(得分:2)

我认为这可能会有所帮助!在这里,您需要输入区域名称,并且必须先输入configure 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  --

答案 7 :(得分:2)

AWS Billing Management Console将为您提供按服务月份的月度至今支出。

答案 8 :(得分:2)

您可以使用标签编辑器。

  1. 转到AWS控制台
  2. 在“顶部导航”窗格中,单击Resource Groups下拉列表
  3. 点击代码编辑器 AWS list all resources across all regions

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

enter image description here

答案 9 :(得分:1)

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

其中,CloudYali https://www.cloudyali.io 是新上线的服务。它显示了来自不同账户、地区、现在和过去的所有云资源,集中在一个地方。

答案 10 :(得分:1)

我知道这是一个老问题,但我也想提供帮助。

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

我真的鼓励大家知道这项很棒的服务。

答案 11 :(得分:1)

是的

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

最终,我最终写了AWSRetriver,这是一个台式机工具,用于列出所有区域的AWS资源。

这是一个简单明了的工具,列出了所有内容...(希望如此) AWS Resources

答案 12 :(得分:1)

不,
无法一次性获取您帐户中的所有资源。每个区域都是独立的,对于像IAM这样的区域的某些服务根本不存在。 虽然有API调用可用于列出资源和服务 例如:

  • 获取您帐户的所有可用区域列表:

    .hand_phone {
      animation: slide 1s;
    }
    
    @keyframes slide {
    from {transform: translateY(400px)}
    to {transform: translateY(0px)}
    }
    

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

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

    您可以在以下位置找到有关API调用及其用途的更多详细信息: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/

    以上链接仅适用于IAM。同样,您可以找到所有其他资源和服务的API。

  • 答案 13 :(得分:1)

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

    “资源组”没有帮助,因为它只列出已标记的资源,用户必须指定标记。如果您错过了标记资源,则不会显示在"Resource Groups"

    UI of "Create a resource group"

    更合适的功能是"Resource Groups"->"Tag Editor",如上一篇文章中所述。选择区域和资源类型以在标签编辑器中查看资源列表。这符合目的但不是非常用户友好,因为每次我想使用它时都必须输入区域和资源类型。我仍然在寻找易于使用的UI。

    UI of "Find resource" under "Tag Editor"

    答案 14 :(得分:0)

    已经很晚了,但是您应该注意一下。我知道不是CLI,但仍然值得删除一些shell脚本来完成所需的操作:

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

    这是一个用自己的话说的python库:

    “项目说明 列出AWS账户中的所有资源,所有区域,所有服务(*)。写入JSON文件以进行进一步处理。

    (*)不保证完整性。如果您担心费用,请使用帐单提醒。”

    答案 15 :(得分:0)

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

    查询看起来像

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

    答案 16 :(得分:0)

    另一种选择是使用此脚本为每个资源执行“ 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
    

    答案 17 :(得分:0)

    试试这个

    仅限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

    答案 18 :(得分:0)

    can run advanced queries via AWS Config(以及来自Config的CLI)将列出所有资源。如果您定义了一个涵盖所有原因(可能包括多个客户)的汇总器,则可以获得非常全面的视图。 。 。 就像“ SELECT *”一样简单

    答案 19 :(得分:0)

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

    答案 20 :(得分:0)

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

    答案 21 :(得分:-1)

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

    Pub/Sub triggered Cloud Function