Is there a way to list all resources in AWS? For all regions, all resources.. Such as list all EC2 instances, all VPCs, all APIs in API Gateway, etc... I would like to list all resources for my account, since it's hard for me to find which resources I can relinquish now.
-
2Have a look at my answer to this question - https://stackoverflow.com/questions/43984337/multiple-aws-reigon/43984651#43984651 Should be enough to get you started. – Colwin Jun 06 '17 at 13:55
-
Possibly useful: https://aws.amazon.com/config/, https://github.com/lebinh/aq, https://github.com/scopely-devops/skew. – jarmod Jun 06 '17 at 14:48
-
3You can create a Resource Group for all region and for all services you need to see . Resource Group will show you all these resources at one place . you can use aws cli for this as well . https://aws.amazon.com/blogs/aws/resource-groups-and-tagging/ – Ashwini Jun 07 '17 at 06:57
-
3Yes. Use the Tag Editor. Set "Regions" to "All Regions", "Resource Types" to "All supported resource types" and then click on "Search Resources". – Aug 29 '21 at 11:39
-
1What a truly peculiar problem! – Teekin Jan 06 '22 at 15:29
-
5Amazon [announced](https://aws.amazon.com/about-aws/whats-new/2022/11/announcing-aws-resource-explorer/) [AWS Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/welcome.html) in Nov 8, 2022. – Gnimuc Nov 22 '22 at 06:06
23 Answers
Yes. Use the Tag Editor.
Set "Regions" to "All Regions", "Resource Types" to "All supported resource types" and then click on "Search Resources".

- 37,270
- 24
- 156
- 208

- 18,650
- 16
- 58
- 102
-
58To list all resources using Tag Editor, you manually select all of the regions listed (15 total regions as of today's date), and select "All resource types", and do not specify a tag. Then click "Find resources" and this will show all resources that were created on your account. – Garrison Becker Apr 11 '18 at 10:12
-
Genius! Also make sure that you navigate through the pages if you have lots of resources. – famzah Apr 25 '18 at 17:55
-
-
4note this only will query supported resource types https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html – ekcrisp Jul 06 '18 at 21:11
-
32This is a genius idea but unfortunately lots of important resource types are not yet supported as of today September 2018. I didn't find my DynamoDB tables, API Gateway, Lambda, IAM roles, etc.... – Bing Ren Sep 27 '18 at 06:12
-
3
-
2The old tag editor and links above are gone. You can use the new tag editor, but I do not see a way to save multi-region results. See console.aws.amazon.com/resource-groups and the doc at https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html – AstroTom Jul 03 '19 at 10:33
-
For me. IoT Core's thing or principal's certificates are not shown in Tag Editor. – Andrew Chong Dec 06 '20 at 04:23
-
Ok, so I select all regions, all resource types then search, I get back over 200 results, all I created was one EC2 instance, how can this be possible, am I missing something here. With Azure all you do is click all resources and that is it, why is AWS is great, but trying to find your resources is a nightmare. – MaxPower May 01 '21 at 00:39
-
1Yeah I also get maybe 200 results. It's almost like one think the account has been hacked. AWS is not so great in this respect. I would recommend always creating resources using a cloudformation stack where you also always tag the resources. This way you can create a resource group to see what you have created and you can delete everything by deleting the stack. Even then the global resources, like tagged IAM users, does not seem to show – Hurve Nov 21 '21 at 10:59
-
Up to 365 like Office you go! I made two clicks in Tag Editor and got ALL the EC2 instances in ALL my regions, then I downloaded the CSV and made a baby-script to count duplicates, in total of 10 minutes I knew exactly what regions I needed to DISABLE as they are not being used :-) Thank you – Alberici Dec 13 '21 at 13:56
-
The tag editor lists some things, but not necessarily the things you were looking for -- and it does _not_ list _all resources_. – Brent Bradburn Aug 28 '22 at 22:11
You can use the Tag Editor
.
Here we can select either a particular region in which we want to search or select all regions from the dropdown. Then we can select actual resources which we want to search or we can also click on individual resources.

- 30,180
- 9
- 58
- 71
-
This answer is correct. I just want to add that you can also use the aws cli command [get-resources](https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html) to achieve the same result. – thenewasker Jun 22 '21 at 13:00
-
another downside: Tag Editor (and also AWS Config) cannot search for IAM resources by tags. [Read more here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) – thenewasker Jun 22 '21 at 13:16
-
-
I've only been using AWS to play around with a couple of things but when I do this, I find I've got hundreds of resources listed which I didn't create, and the "type" is things like DHCPOptions, InternetGateway, NetworkAcl, RouteTable, SecurityGroup. am I being charged for all these? do I need to clean them up? – Andy Aug 23 '21 at 08:55
-
@Andy no, you're not charged for these things. If you want to see what you've been charged for in the last billing cycle, you can view the billing page. It will clearly show the low-level breakup of cost. – Raman Sahasi Aug 23 '21 at 09:32
-
I think this may help! Here, you need to enter the region name and you have to configure AWS CLI before try this.
aws resourcegroupstaggingapi get-resources --region region_name
It will list all the recourses in the region by the following format.
- 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 --

- 1,786
- 1
- 13
- 30
-
2This is better than using the API for each service, because it significantly reduces the number of API calls, lowering the risk of throttling. You may still need to use individual APIs for edge cases where resources are not covered by the Resource Groups service. – jonatan Sep 02 '20 at 16:21
-
14It only lists "all the tagged or previously tagged resources". So untagged will be missed. – Alexander Shmidt Dec 23 '20 at 10:40
-
@AlexanderShmidt looks like they improved it now. With latest aws cli, it also lists resources with no tags. In the ResourceTagMappingList, you get something like this: "Tags": [] – TDao Jun 24 '22 at 16:16
-
1@TDao unfortunately, that's not quite accurate. From the docs: "Returns all the tagged or previously tagged resources" – stephanos Sep 21 '22 at 16:30
On this Nov 8, 2022, AWS announced a new service named AWS Resource Explorer
, a managed capability that simplifies the search and discovery of resources that provides a list of all services like EC2
, Kinesis
, DynamoDB
, and many more across AWS Regions in your AWS
account.
To turn on AWS Resource Explorer
, see the AWS Resource Explorer console. Read about getting started in the AWS Resource Explorer documentation, or explore the AWS Resource Explorer product page
The announcing page link Announcing AWS Resource Explorer.
Hopefully, you will get a way to solve your problem.

- 618
- 9
- 19
-
2`Resource Explorer` misses a lot of resources in my experience, especially for `Cognito` – Jeff Bezos Feb 04 '23 at 18:53
-
Seems to miss resources in regions that are not enabled by default (e.g., Hong Kong ap-east-1)... did I miss something? (AWS' technical support is not free, oops) – li ki Mar 25 '23 at 10:54
-
@liki You can check this link https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-service-check.html to check which AWS Regions have Resource Explorer turned on – mdmostafa Mar 27 '23 at 08:03
-
1@JeffBezos Yes, you are right. Maybe lots of resources will be added in future. – mdmostafa Mar 27 '23 at 08:21
-
@mdmostafa thanks. Unfortunately, I'm not able to create the index for the HK region (ap-east-1). I got the following error when creating index by ```aws resource-explorer-2 create-index --region ap-east-1``` (from the [doc](https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-service-turn-on-region.html)): ```Could not connect to the endpoint URL: "https://resource-explorer-2.ap-east-1.api.aws/CreateIndex"``` . It works for other regions which are enabled by default, though. Did you encounter the same issue? – li ki Apr 22 '23 at 12:12
-
@liki I did not encounter the same issue. I am unsure if the `resource-explorer` service is available for the HK region. However, it is not turned on in all the regions by default. Ensure that the Resource Explorer is turned on in which region you intend to create indexing. For more details, you can see the doc https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html – mdmostafa May 02 '23 at 13:21
I'd go with the "tag editor" in "resource groups" for this, as suggested by Ashwini.
You can easily list all resources in all regions without any setup etc.
And although this does include all the default VPCs + security groups etc (so you'll get ~140 items even if your account is empty), you can still fairly easily filter this, either within tag editor, or export to csv and filter in Excel, for example.

- 482
- 3
- 9
Use PacBot (Policy as Code Bot) - an Open Source project which is a platform for continuous compliance monitoring, compliance reporting and security automation for the cloud. All resources across all accounts and all regions are discovered by PacBot, then evaluated against these policies to gauge policy conformance.
Omni Search features are also available giving ability to search all discovered resources. You can even terminate/delete resources through PacBot.
Omni Search
Search Results Page With Results filtering
Asset 360 / Asset Details Page
Here are the key PacBot capabilities:
- 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.

- 7,030
- 6
- 32
- 48

- 20,593
- 6
- 63
- 76
-
1
-
Can you point how, I see no mention of this in the documentation, seems I have to use all the necessary AWS services. I would for example like to replace RedShift with MySQL. – SyCode Nov 17 '18 at 20:23
-
2@SyCode complete installations setup is given at this [link](https://github.com/tmobile/pacbot/wiki/Install) – Nidhish Krishnan Nov 18 '18 at 03:59
The AWS-provided tools are not useful because they are not comprehensive.
In my own quest to mitigate this problem and pull a list of all of my AWS resources, I found this: https://github.com/JohannesEbke/aws_list_all
I have not tested it yet, but it looks legit.

- 703
- 8
- 8
The AWS Billing Management Console will give you a Month-to-Date Spend by Service rundown.

- 3,407
- 2
- 26
- 33
-
1It takes ~24hours for the Cost Explorer to populate but I like this answer :) – f01 May 21 '19 at 00:33
-
3Would this miss resources that didn't cost anything though--such as a lambda that wasn't used that month? – Tim Ludwinski Feb 17 '22 at 19:33
Use CLI to export all resources to CSV
Step 1: Activate AWS Resource Explorer
https://resource-explorer.console.aws.amazon.com/resource-explorer
Step 2: Use AWS CLI to list resources
aws resource-explorer-2 search --query-string arn --output text > resources.csv

- 1,929
- 13
- 23
-
1Currently, this search operation has a 1000 item limit, so pretty useless for large accounts. ["The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results."](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-explorer-2/search.html) – nick fox Jun 08 '23 at 13:34
I know it is old question but I would like to help too.
Actually, we have AWS Config, which help us to search for all resources in our cloud. You can perform SQL queries too.
I really encourage you all to know this awesome service.

- 853
- 9
- 23
-
-
1And you have to pay for this service as well and all you want to do is find your resources, lol. – MaxPower May 01 '21 at 00:43
Here is a good article listing the tools to list resources in AWS cloud. https://link.medium.com/tZbs8eLyohb
Among them, CloudYali https://www.cloudyali.io is the newly launched service. It shows all the cloud resources from different accounts, regions, from present as well from past, available in one central place.

- 71
- 1
Yes.
I had the same issue, trying to figure out what exactly is going on in my AWS account.
Eventually, I ended up writing AWSRetriver, a desktop tool to list AWS resources on all regions.
It is a simple and straight-forward tool that lists everything... (hopefully)

- 31
- 1
- 2
You can use a query in the AWS Config Console here. (Region may change for you) https://console.aws.amazon.com/config/home?region=us-east-1#/resources/query
the query will look like.
SELECT
resourceId,
resourceName,
resourceType,
relationships
WHERE
relationships.resourceId = 'vpc-#######'
Here is further documentation.
https://docs.aws.amazon.com/config/latest/developerguide/query-using-sql-editor-console.html

- 2,498
- 2
- 20
- 37
-
1Thanks, was very helpful. Link did not work for me, but here is the aws documentation: https://docs.aws.amazon.com/config/latest/developerguide/query-using-sql-editor-console.html – Stephan Feb 22 '22 at 09:50
Try this
For only ec2:
from skew import scan
arn = scan('arn:aws:ec2:us-west-2:123456789012:instance/i-12345678')
for resource in arn:
print(resource.data)
For all resources:
arn = scan('arn:aws:*:*:<<youraccountId>>:instance*')
for resource in arn:
print(resource.data)
Reference : https://github.com/scopely-devops/skew

- 11
- 1
It's way late but you should look at this. Not CLI I know but still worth just knocking out a little shell script to do what you need:
https://pypi.org/project/aws-list-all/
It's a python library that in it's own words:
"Project description List all resources in an AWS account, all regions, all services(*). Writes JSON files for further processing.
(*) No guarantees for completeness. Use billing alerts if you are worried about costs."

- 11
- 1
You can run advanced queries via AWS Config (and from the CLI for Config), that will list all resources. If you define an aggregator that covers all reasons (and perhaps multiple accounts), you can get a very comprehensive view . . . As simple as "SELECT *"

- 9,258
- 4
- 36
- 53
I am also looking for similar feature "list all resources" in AWS but could not find anything good enough.
"Resource Groups" does not help because it only list resources which have been tagged and user have to specify the tag. If you miss to tag a resource, that won't appear in "Resource Groups" .
UI of "Create a resource group"
A more suitable feature is "Resource Groups"->"Tag Editor" as already mentioned in the previous post. Select region(s) and resource type(s) to see listing of resources in Tag editor. This serves the purpose but not very user-friendly because I have to enter region and resource type every time I want to use it. I am still looking for easy to use UI.
-
Actually, this was a genuine lifesaver for me! Just open Tag Editor, select all regions one by one (there aren't that many of them) and "All resource types" and hit "Find resources". Then you can download the whole list as CSV. – Tero Tilus Dec 01 '17 at 13:43
There's a cloud management platform that does this. It enables users to manage multiple AWS accounts from a single dashboard as well as providing AWS Inventory management. It's free: https://cloudplexo.com.

- 55
- 1
- 6
Edit: This answer is deprecated and is incorrect. There are several ways to list AWS resources (the AWS Tag Editor, etc.). Check the other answers for more details.
No.
Each AWS Service (eg Amazon EC2, Amazon S3) have their own set of API calls. Also, each Region is independent.
To obtain a list of all resources, you would have to make API calls to every service in every region.
You might want to activate AWS Config:
AWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the resources are related to one another and how they were configured in the past so that you can see how the configurations and relationships change over time.
However, AWS Config only collects information about EC2/VPC-related resources, not everything in your AWS account.

- 30,180
- 9
- 58
- 71

- 241,921
- 22
- 380
- 470
-
35This answer is wrong. You can indeed list all services across all regions using the Cost Explorer. – Neithan Max Jun 12 '19 at 03:37
-
16This answer is most likely obsolete. Now, as mentioned by a few people here, you can use either the [Tag Manager](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/find-resources-to-tag.html) or the _'Monthly cost by service'_ in [Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/). – maximpa Jul 28 '19 at 01:46
-
1AWS Config seemed to work for me. I wanted to find a snapshot i'd taken in another reason and forgot about, and apparently deleted the EC2 instance for it. getting the full AWS Config list and then searching for 'snap' hepled me find it. – Peter Smith Jan 19 '20 at 04:58
-
AWS Config only supports limited set of resources. Large, but still limited. Like, no ECS, no ElastiCache – kikap Feb 09 '21 at 02:06
-
5This is still the most correct answer. Cost Explorer can't list resources, just services in use per region. Tag Manager only supports a subset of resources, noticeably missing things like all IAM entities and "sub resources" like lambda layers. Depending on your specific need, either the cost explorer or the tag manager or even AWS Config may be enough but still today there is no single pane of glass for all resources in an account. – ThePorkchopExpress Mar 10 '21 at 00:33
Another option is use this script that execute "aws configservice list-discovered-resources --resource-type" for every resource
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

- 1,161
- 1
- 20
- 38

- 1
- 1
EDIT: This answer is deprecated. Check the other answers.
No,
There is no way to get all resources within your account in one go. Each region is independent and for some services like IAM concept of a region does not exist at all.
Although there are API calls available to list down resources and services.
For example:
output, err := client.DescribeRegions(&ec2.DescribeRegionsInput{})
client.GetAccountAuthorizationDetails(&iam.GetAccountAuthorizationDetailsInput{})
You can find more detail about API calls and their use at: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/
Above link is only for IAM. Similarly, you can find API for all other resources and services.

- 11,004
- 5
- 40
- 58

- 289
- 2
- 4
- 15
Amazon is continuously trying to improve user experience. However, there are other multiple ways to check Resources you are using in AWS. I believe this New EC2 dashboard is quite cool. Clicking on link will directly navigate you to particular resource control panel.

- 949
- 14
- 23
-
This will only let you view EC2 related things, not all resources in all regions. – Raul Marquez Oct 12 '22 at 01:15