【问题标题】:Is there a way to list all resources in AWS有没有办法列出 AWS 中的所有资源
【发布时间】:2017-11-07 13:51:15
【问题描述】:

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

【问题讨论】:

标签: amazon-web-services


【解决方案1】:

是的。使用Tag Editor

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

【讨论】:

  • 要使用标签编辑器列出所有资源,您手动选择列出的所有区域(截至今天共有 15 个区域),然后选择“所有资源类型”,并且不指定标签。然后点击“查找资源”,这将显示在您的帐户中创建的所有资源。
  • 注意这只会查询支持的资源类型docs.aws.amazon.com/ARG/latest/userguide/…
  • 这是一个天才的想法,但不幸的是,截至 2018 年 9 月,许多重要的资源类型尚未得到支持。我没有找到我的 DynamoDB 表、API Gateway、Lambda、IAM 角色等。 ..
  • 不幸的是,“标签编辑器”链接现在是 404。
  • 旧的标签编辑器和上面的链接都不见了。您可以使用新的标签编辑器,但我没有看到保存多区域结果的方法。请参阅 console.aws.amazon.com/resource-groups 和docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html的文档
【解决方案2】:

您可以使用Tag Editor

  1. 转到 AWS 控制台
  2. 在顶部导航窗格中,单击Resource Groups下拉菜单
  3. 点击Tag Editor

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

【讨论】:

  • 这是正确答案。非常适合我,谢谢!
  • 我同意这是正确的答案,它有效并且很容易理解
  • 这个答案是正确的。我只想补充一点,您也可以使用 aws cli 命令get-resources 来达到相同的效果。
  • 另一个缺点:标签编辑器(以及 AWS Config)无法按标签搜索 IAM 资源。 Read more here
  • 如何将资源组添加到导航栏?
【解决方案3】:

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

【讨论】:

  • 这比对每个服务都使用 API 更好,因为它显着减少了 API 调用的数量,降低了限流的风险。对于资源组服务未涵盖资源的边缘情况,您可能仍需要使用单独的 API。
  • 它只列出“所有标记或以前标记的资源”。所以未标记的将被错过。
【解决方案4】:

按照 Ashwini 的建议,我会为此使用“资源组”中的“标签编辑器”。

您无需任何设置等即可轻松列出所有地区的所有资源。
尽管这确实包括所有默认 VPC + 安全组等(因此即使您的帐户为空,您也将获得约 140 个项目),您仍然可以相当轻松地过滤它,无论是在标签编辑器中,还是导出到 csv 并过滤例如 Excel。

【讨论】:

    【解决方案5】:

    是的。使用标签编辑器。

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

    【讨论】:

    【解决方案6】:

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

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

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

    【讨论】:

      【解决方案7】:

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

      Omni 搜索功能也可用于搜索所有已发现的资源。您甚至可以通过 PacBot 终止/删除资源。

      全方位搜索

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

      Asset 360 / 资产详情页面

      以下是 PacBot 的主要功能:

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

      【讨论】:

      • @SyCode 是的,您可以在本地托管它
      • 你能指出如何吗,我在文档中没有提到这一点,看来我必须使用所有必要的 AWS 服务。例如,我想用 MySQL 替换 RedShift。
      • @SyCode 完整安装设置在此link
      【解决方案8】:

      AWS Billing Management Console 将为您提供按服务划分的本月至今的支出清单。

      【讨论】:

      • Cost Explorer 需要大约 24 小时才能填充,但我喜欢这个答案 :)
      【解决方案9】:

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

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

      我真的鼓励大家了解这项很棒的服务。

      【讨论】:

      • 值得注意:AWS Config 涵盖了约 80% 的 AWS 资源类型
      • 而且你还必须为这项服务付费,你要做的就是找到你的资源,哈哈。
      【解决方案10】:

      是的。

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

      最后,我写了AWSRetriver,这是一个桌面工具,可以列出所有区域的 AWS 资源。

      这是一个简单直接的工具,可以列出所有内容...(希望如此)

      【讨论】:

        【解决方案11】:

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

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

        【讨论】:

          【解决方案12】:

          试试这个

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

          【讨论】:

            【解决方案13】:

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

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

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

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

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

            【讨论】:

              【解决方案14】:

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

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

              UI of "Create a resource group"

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

              UI of "Find resource" under "Tag Editor"

              【讨论】:

              • 其实,这对我来说是真正的救星!只需打开标签编辑器,一一选择所有区域(没有那么多)和“所有资源类型”,然后点击“查找资源”。然后您可以将整个列表下载为 CSV。
              【解决方案15】:

              您可以在此处使用 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】:

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

                【讨论】:

                  【解决方案17】:

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

                  【讨论】:

                    【解决方案18】:

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

                    【讨论】:

                      【解决方案19】:

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

                      【讨论】:

                        【解决方案20】:

                        编辑:此答案已弃用。检查其他答案。

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

                      • 要获取您帐户的所有可用区域列表:
                        output, err := client.DescribeRegions(&ec2.DescribeRegionsInput{})
                        

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

                        client.GetAccountAuthorizationDetails(&amp;iam.GetAccountAuthorizationDetailsInput{})

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

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

                      • 【讨论】:

                        • 这个答案已经过时了
                        【解决方案21】:

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

                        【讨论】:

                          【解决方案22】:

                          编辑:此答案已弃用且不正确。列出 AWS 资源的方法有多种(AWS 标签编辑器等)。查看 其他答案了解更多详情。


                          没有。

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

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

                          您可能想要激活AWS Config

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

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

                          【讨论】:

                          • 这个答案是错误的。您确实可以使用 Cost Explorer 列出所有地区的所有服务。
                          • 这个答案很可能已经过时了。现在,正如这里的一些人所提到的,您可以使用Tag ManagerCost Explorer 中的'每月服务费用'
                          • AWS Config 似乎对我有用。我想找到一个我出于其他原因拍摄的快照,但后来忘记了,显然为它删除了 EC2 实例。获取完整的 AWS Config 列表,然后搜索“snap”帮助我找到它。
                          • AWS Config 仅支持有限的资源集。很大,但仍然有限。比如,没有 ECS,没有 ElastiCache
                          • 这仍然是最正确的答案。 Cost Explorer 无法列出资源,只能列出每个区域使用的服务。跟踪代码管理器仅支持资源子集,明显缺少所有 IAM 实体和 lambda 层等“子资源”。根据您的具体需求,成本浏览器或标签管理器甚至 AWS Config 可能就足够了,但今天仍然没有一个单一的管理平台可用于一个账户中的所有资源。
                          猜你喜欢
                          • 1970-01-01
                          • 2023-03-29
                          • 2017-04-07
                          • 1970-01-01
                          • 1970-01-01
                          • 2021-03-08
                          • 1970-01-01
                          相关资源
                          最近更新 更多