有没有办法列出AWS中的所有资源?对于所有区域,所有资源..例如列出所有EC2实例,所有VPC,API Gateway中的所有API,等等...我想列出我帐户的所有资源,因为我很难找到可以找到的资源。现在放弃。
有没有办法列出AWS中的所有资源?对于所有区域,所有资源..例如列出所有EC2实例,所有VPC,API Gateway中的所有API,等等...我想列出我帐户的所有资源,因为我很难找到可以找到的资源。现在放弃。
Answers:
编辑:不赞成使用此答案,并且不正确。有几种列出AWS资源的方法(AWS Tag Editor等)。查看其他答案以获取更多详细信息。
没有。
每个AWS服务(例如Amazon EC2,Amazon S3)都有自己的API调用集。而且,每个地区都是独立的。
要获取所有资源的列表,您必须对每个区域中的每个服务进行API调用。
您可能要激活AWS Config:
AWS Config提供了您的AWS账户中AWS资源配置的详细视图。这包括资源之间如何相互关联以及它们在过去的配置方式,以便您可以看到配置和关系随时间的变化。
但是,AWS Config仅收集有关EC2 / VPC相关资源的信息,而不会收集您AWS账户中的所有信息。
使用PacBot (策略为代码漫游) -一个开源项目,它是一个平台,用于云的连续合规性监视,合规性报告和安全自动化。PacBot会根据这些策略评估所有帐户和所有区域中的所有资源,以评估策略的符合性。Omni Search功能也可用,可以搜索所有发现的资源。甚至您都可以通过PacBot终止/删除资源详细信息。
全方位搜寻
具有结果过滤功能的搜索结果页面
资产360 /资产详细信息页面
以下是PacBot的主要功能
AWS提供的工具没有用,因为它们不全面。
为了减轻这个问题并提取所有AWS资源的清单,我发现了这一点:https : //github.com/JohannesEbke/aws_list_all
我还没有测试过,但是看起来合法。
我知道这是一个老问题,但我也想提供帮助。
实际上,我们拥有AWS Config,它可以帮助我们搜索云中的所有资源。您也可以执行SQL查询。
我真的鼓励大家知道这项很棒的服务。
已经很晚了,但是您应该注意一下。我不知道不是CLI,但是仍然值得删除一些shell脚本来完成所需的操作:
https://pypi.org/project/aws-list-all/
这是一个python库,用自己的话来说:
“项目描述列出一个AWS账户中的所有资源,所有区域,所有服务(*)。写入JSON文件以进行进一步处理。
(*)不保证完整性。如果您担心费用,请使用帐单提醒。”
我还在寻找类似的功能,在AWS中“列出所有资源”,但找不到足够好的东西。
“资源组”无济于事,因为它仅列出已被标记的资源,用户必须指定标记。如果您错过标记资源的权限,该资源将不会显示在“资源组”中。
上一篇文章中已经提到过,更合适的功能是“资源组”->“标签编辑器”。选择区域和资源类型以在标签编辑器中查看资源列表。这达到了目的,但不是非常用户友好,因为每次我要使用它时都必须输入区域和资源类型。我仍在寻找易于使用的UI。
试试这个
仅针对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)
您可以在此处的AWS Config控制台中使用查询。(您的地区可能会更改)https://console.aws.amazon.com/config/home?region=us-east-1#/resources/query
查询将看起来像。
SELECT
resourceId,
resourceName,
resourceType,
relationships
WHERE
relationships.resourceId = 'vpc-#######'
编辑:不建议使用此答案。检查其他答案。
不,
无法一次性获得您帐户中的所有资源。每个区域都是独立的,对于某些服务(如IAM),一个区域根本不存在。尽管有API调用可用于列出资源和服务。
例如:
output, err := client.DescribeRegions(&ec2.DescribeRegionsInput{})
client.GetAccountAuthorizationDetails(&iam.GetAccountAuthorizationDetailsInput{})
您可以在以下位置找到有关API调用及其使用的更多详细信息:https : //docs.aws.amazon.com/sdk-for-go/api/service/iam/
上面的链接仅适用于IAM。同样,您可以找到所有其他资源和服务的API。
另一个选择是使用此脚本为每个资源执行“ 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