有没有办法列出 AWS 中的所有资源?对于所有区域,所有资源.. 例如列出所有 EC2 实例、所有 VPC、API 网关中的所有 API 等......我想列出我账户的所有资源,因为我很难找到我能找到的资源现在放弃。
是的。使用 Tag Editor。
将“区域”设置为“所有区域”,将“资源类型”设置为“所有支持的资源类型”,然后单击“搜索资源”。
您可以使用 Tag Editor
。
转到 AWS 控制台 在顶部导航窗格中,单击资源组下拉菜单 单击标签编辑器
在这里,我们可以选择要搜索的特定区域,也可以从下拉列表中选择所有区域。然后我们可以选择我们想要搜索的实际资源,也可以单击单个资源。
https://i.stack.imgur.com/KzwmA.png
我认为这可能会有所帮助!在这里,您需要输入区域名称,并且您必须先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 --
正如 Ashwini 所建议的,我会为此使用“资源组”中的“标签编辑器”。
您无需任何设置等即可轻松列出所有区域中的所有资源。尽管这确实包括所有默认 VPC + 安全组等(因此即使您的帐户为空,您也将获得约 140 项),您仍然可以相当轻松地过滤例如,无论是在标签编辑器中,还是导出到 csv 并在 Excel 中过滤。
使用PacBot (Policy as Code Bot) - 一个开源项目,它是一个用于云的持续合规性监控、合规性报告和安全自动化的平台。 PacBot 发现所有账户和所有区域的所有资源,然后根据这些策略进行评估以衡量策略的一致性。
Omni Search 功能也可用于搜索所有发现的资源。您甚至可以通过 PacBot 终止/删除资源。
全方位搜索
https://raw.githubusercontent.com/tmobile/pacbot/master/wiki/images/omni-search.png
带有结果过滤的搜索结果页面
https://raw.githubusercontent.com/wiki/tmobile/pacbot/images/search-results.png
Asset 360 / 资产详情页面
https://raw.githubusercontent.com/wiki/tmobile/pacbot/images/asset-details.png
以下是 PacBot 的主要功能:
持续合规评估。
详细的合规报告。
自动修复策略违规。
全方位搜索 - 能够搜索所有发现的资源。
简化的策略违规跟踪。
自助服务门户。
自定义策略和自定义自动修复操作。
动态资产分组以查看合规性。
能够创建多个合规域。
异常管理。
电子邮件摘要。
支持多个 AWS 账户。
完全自动化的安装程序。
可定制的仪表板。
OAuth2 支持。
用于登录的 Azure AD 集成。
基于角色的访问控制。
资产 360 度。
AWS 提供的工具没有用处,因为它们并不全面。
在我自己寻求缓解此问题并提取我所有 AWS 资源的列表时,我发现了这一点:https://github.com/JohannesEbke/aws_list_all
我还没有测试它,但它看起来是合法的。
AWS Billing Management Console 将为您提供按服务划分的本月至今的支出明细。
我知道这是个老问题,但我也想帮忙。
实际上,我们有 AWS Config,它可以帮助我们搜索云中的所有资源。您也可以执行 SQL 查询。
我真的鼓励你们都知道这项很棒的服务。
这是一篇很好的文章,列出了列出 AWS 云中资源的工具。 https://link.medium.com/tZbs8eLyohb
其中,CloudYalihttps://www.cloudyali.io是新推出的服务。它显示了来自不同账户、地区、现在和过去的所有云资源,在一个中心位置可用。
是的。
我遇到了同样的问题,试图弄清楚我的 AWS 账户到底发生了什么。
最终,我编写了 AWSRetriver,这是一个桌面工具,用于列出所有区域的 AWS 资源。
https://i.stack.imgur.com/DQ9iy.png
尝试这个
仅适用于 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
已经很晚了,但你应该看看这个。我知道不是 CLI,但仍然值得敲出一个小 shell 脚本来做你需要的事情:
https://pypi.org/project/aws-list-all/
这是一个 python 库,用它自己的话来说:
“项目描述列出 AWS 账户中的所有资源、所有区域、所有服务 (*)。写入 JSON 文件以供进一步处理。
(*) 不保证完整性。如果您担心成本,请使用账单提醒。”
您可以在此处使用 AWS Config 控制台中的查询。 (地区可能会因您而异)https://console.aws.amazon.com/config/home?region=us-east-1#/resources/query
查询看起来像。
SELECT
resourceId,
resourceName,
resourceType,
relationships
WHERE
relationships.resourceId = 'vpc-#######'
您can run advanced queries via AWS Config(以及来自 Config 的 CLI)将列出所有资源。如果您定义一个涵盖所有原因(可能还有多个帐户)的聚合器,您可以获得非常全面的视图。 . .就像“SELECT *”一样简单
我也在 AWS 中寻找类似的功能“列出所有资源”,但找不到足够好的东西。
“资源组”没有帮助,因为它只列出已标记的资源并且用户必须指定标记。如果您错过标记资源,则该资源不会出现在 "Resource Groups" 中。
UI of "Create a resource group"
更合适的功能是 "Resource Groups"->"Tag Editor",如上一篇文章中所述。选择区域和资源类型以在标签编辑器中查看资源列表。这可以达到目的,但不是很用户友好,因为我每次要使用它时都必须输入区域和资源类型。我仍在寻找易于使用的 UI。
UI of "Find resource" under "Tag Editor"
编辑:此答案已弃用且不正确。列出 AWS 资源的方法有多种(AWS 标签编辑器等)。检查其他答案以获取更多详细信息。
不。
每个 AWS 服务(例如 Amazon EC2、Amazon S3)都有自己的一组 API 调用。此外,每个区域都是独立的。
要获取所有资源的列表,您必须对每个区域中的每个服务进行 API 调用。
您可能想要激活 AWS Config:
AWS Config 提供您 AWS 账户中 AWS 资源配置的详细视图。这包括资源如何相互关联以及它们过去是如何配置的,以便您可以看到配置和关系如何随时间变化。
但是,AWS Config 仅收集有关 EC2/VPC 相关资源的信息,而不是您 AWS 账户中的所有信息。
另一种选择是使用此脚本为每个资源执行“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
编辑:这个答案已被弃用。检查其他答案。
不,没有办法一次性获取您帐户中的所有资源。每个区域都是独立的,对于像 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。
亚马逊一直在努力改善用户体验。但是,还有其他多种方法可以检查您在 AWS 中使用的资源。我相信这个新的 EC2 仪表板非常酷。单击链接将直接导航到特定的资源控制面板。
https://i.stack.imgur.com/Wojqz.png
不定期副业成功案例分享