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


138

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


1
看看我对这个问题的答案-stackoverflow.com/questions/43984337/multiple-aws-reigon / ...应该足以让您入门。
科尔温


2
您可以为所有区域和需要查看的所有服务创建资源组。资源小组将在一个地方向您展示所有这些资源。您也可以为此使用aws cli。aws.amazon.com/blogs/aws/resource-groups-and-tagging
Ashwini,

Answers:


8

编辑:不赞成使用此答案,并且不正确。有几种列出AWS资源的方法(AWS Tag Editor等)。查看其他答案以获取更多详细信息。


没有。

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

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

您可能要激活AWS Config

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

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


14
这个答案是错误的。实际上,您可以使用Cost Explorer列出所有地区的所有服务。
卡尔斯·阿尔科里亚

9
该答案很可能已过时。现在,正如这里的一些人所提到的,您可以在“ 成本管理器中使用标签管理器“按服务每月成本”
maximpa

AWS Config似乎对我有用。我想查找由于其他原因拍摄的快照而忘记了,显然删除了它的EC2实例。获取完整的AWS Config列表,然后搜索“快照”让我发现它。
彼得·史密斯

205

42
要使用标签编辑器列出所有资源,请手动选择列出的所有区域(截至今天为止共有15个区域),然后选择“所有资源类型”,并且不指定标签。然后单击“查找资源”,这将显示您的帐户上创建的所有资源。
加里森·贝克尔

3
请注意,这只会查询支持的资源类型docs.aws.amazon.com/ARG/latest/userguide/…–
ekcrisp

18
这是一个天才的想法,但遗憾的是很多重要的资源类型尚不支持今天的九月2018年我没有找到我的DynamoDB表,API网关,λ,IAM角色,等....
冰刃

3
不幸的是,“标签编辑器”链接现在为
404。– wool.in.silver

1
旧的标签编辑器和上面的链接都消失了。您可以使用新的标签编辑器,但看不到保存多区域结果的方法。参见console.aws.amazon.com/resource-groups和文档,网址
AstroTom,

43

您可以使用Tag Editor

  1. 转到AWS控制台
  2. 在顶部导航窗格中,单击Resource Groups下拉列表
  3. 请点击 Tag Editor AWS列出所有区域的所有资源

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

在此处输入图片说明


2
这是正确的答案。对我来说很棒,谢谢!
爱德华·科里加尔

我同意这是正确的答案,它有效并且很容易
理解

8

正如Ashwini所建议的,我将为此选择“资源组”中的“标签编辑器”。

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


7

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

全方位搜寻

全方位搜寻

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

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

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

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

以下是PacBot的主要功能

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

1
@SyCode是的,您可以在prem上托管它
Nidhish Krishnan

您能指出我在文档中没有提及这一点的方法,似乎我必须使用所有必需的AWS服务。例如,我想用MySQL替换RedShift。
SyCode

2
@SyCode完整安装设置在此链接中
Nidhish Krishnan



3

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

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

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


2

是。

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

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

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


1

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

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

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

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

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


0

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

“资源组”无济于事,因为它仅列出已被标记的资源,用户必须指定标记。如果您错过标记资源的权限,该资源将不会显示在“资源组”中

“创建资源组”的用户界面

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

“标签编辑器”下“查找资源”的用户界面


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

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



0

编辑:不建议使用此答案。检查其他答案。

不,
无法一次性获得您帐户中的所有资源。每个区域都是独立的,对于某些服务(如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。


  • 这个答案已经过时
    普约尔阿尔科莱亚

    -1

    另一个选择是使用此脚本为每个资源执行“ 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
    
    By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
    Licensed under cc by-sa 3.0 with attribution required.