是否有一种方法可以列出AWS中的所有资源

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

214914 次浏览
< p > 编辑:这个答案是不正确的。有几种方法可以列出AWS资源(AWS标签编辑器等)。检查

.

.

.

不。

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

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

你可能想激活AWS配置:

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

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

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

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

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

“资源组”没有帮助,因为它只列出已标记的资源,用户必须指定标记。如果你错过标记一个资源,它将不会出现在“资源组”中。

"创建资源组"的UI .

一个更合适的特性是“资源组”->“标签编辑器”,就像在之前的文章中提到的那样。选择区域和资源类型,在标签编辑器中查看资源列表。这可以达到目的,但不是很友好,因为每次我想使用它时,我都必须输入区域和资源类型。我仍然在寻找易于使用的用户界面。

“标签编辑器”下的“查找资源”的UI

编辑:这个答案是不赞成的。检查其他答案。

< p >, < br > 没有办法一次性获得帐户内的所有资源。每个区域都是独立的,对于一些服务,比如IAM,区域的概念根本不存在。 虽然有API调用可以列出资源和服务 例如: < br >
  • 要获取您的帐户所有可用区域的列表:

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

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

    client.GetAccountAuthorizationDetails(&iam.GetAccountAuthorizationDetailsInput{})

    你可以在下面找到更多关于API调用及其使用的细节: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/ < / p >

    以上链接仅供IAM使用。类似地,您可以为所有其他资源和服务找到API。

  • 是的。使用标签编辑器

    设置“Regions"到“所有地区”、“资源类型”;所有支持的资源类型;然后点击“搜索资源”。

    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 < / >强 (政策作为代码机器人) -一个开源项目,它是一个用于持续合规监控、合规报告和云安全自动化的平台。PacBot发现所有帐户和所有区域的所有资源,然后根据这些策略进行评估,以衡量策略的一致性。

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

    Omni搜索

    Omni Search

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

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

    资产360 /资产详情页面

    资产360 /资产详情页 .

    以下是PacBot的主要功能:

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

    是的。

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

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

    这是一个简单直接的工具,列出了所有的东西…(希望) AWS Resources < / p >

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

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

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

    < p > "项目描述 列出一个AWS帐户中的所有资源、所有区域和所有服务(*)。

    .

    .

    .

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

    你可以使用Tag Editor

    1. 进入AWS控制台
    2. 在TOP导航窗格中,单击Resource Groups下拉菜单
    3. <李>单击Tag EditorAWS list all resources across all regions < / >

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

    enter image description here

    您可以在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配置运行高级查询(和从命令行配置),这将列出所有资源。如果您定义了一个涵盖所有原因(可能还有多个帐户)的聚合器,那么您可以得到一个非常全面的视图…… 就像"SELECT *"

    另一个开源工具是云查询 https://docs.cloudquery.io/ < / p >

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

    enter image description here

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

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

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