Existe-t-il un moyen de répertorier toutes les ressources dans AWS

138

Existe-t-il un moyen de répertorier toutes les ressources dans AWS? Pour toutes les régions, toutes les ressources. Par exemple, lister toutes les instances EC2, tous les VPC, toutes les API d'API Gateway, etc. Je voudrais répertorier toutes les ressources de mon compte, car il m'est difficile de trouver les ressources que je peux abandonner maintenant.

Lakin Lu
la source
1
Jetez un œil à ma réponse à cette question - stackoverflow.com/questions/43984337/multiple-aws-reigon/ ... Cela devrait suffire pour vous aider à démarrer.
Colwin le
2
Vous pouvez créer un groupe de ressources pour toutes les régions et pour tous les services dont vous avez besoin. Resource Group vous montrera toutes ces ressources en un seul endroit. vous pouvez également utiliser aws cli pour cela. aws.amazon.com/blogs/aws/resource-groups-and-tagging
Ashwini

Réponses:

8

Edit: Cette réponse est obsolète et est incorrecte . Il existe plusieurs façons de répertorier les ressources AWS (AWS Tag Editor, etc.). Vérifiez les autres réponses pour plus de détails.


Non.

Chaque service AWS (par exemple, Amazon EC2, Amazon S3) dispose de son propre ensemble d'appels d'API. De plus, chaque région est indépendante.

Pour obtenir une liste de toutes les ressources, vous devez effectuer des appels d'API vers chaque service de chaque région.

Vous souhaiterez peut-être activer AWS Config :

AWS Config fournit une vue détaillée de la configuration des ressources AWS dans votre compte AWS. Cela inclut la manière dont les ressources sont liées les unes aux autres et la façon dont elles ont été configurées dans le passé afin que vous puissiez voir comment les configurations et les relations changent au fil du temps.

Cependant, AWS Config collecte uniquement des informations sur les ressources liées à EC2 / VPC, pas tout dans votre compte AWS.

John Rotenstein
la source
14
Cette réponse est fausse. Vous pouvez en effet répertorier tous les services dans toutes les régions à l'aide de l'explorateur de coûts.
Carles Alcolea
9
Cette réponse est probablement obsolète. Maintenant, comme mentionné par quelques personnes ici, vous pouvez utiliser le Gestionnaire de balises ou le «Coût mensuel par service» dans Cost Explorer .
maximpa
AWS Config semblait fonctionner pour moi. Je voulais trouver un instantané que j'avais pris pour une autre raison et que j'avais oublié, et j'ai apparemment supprimé l'instance EC2 pour cela. obtenir la liste complète d'AWS Config, puis rechercher «snap» m'a permis de le trouver.
Peter Smith le
206

Oui. Utilisez l' éditeur de balises . Vous pouvez cliquer pour gérer les ressources individuelles.

https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html

schmmd
la source
42
Pour répertorier toutes les ressources à l'aide de l'éditeur de balises, sélectionnez manuellement toutes les régions répertoriées (15 régions au total à la date du jour), sélectionnez «Tous les types de ressources», sans spécifier de balise. Cliquez ensuite sur "Rechercher des ressources" et cela affichera toutes les ressources créées sur votre compte.
Garrison Becker
3
notez que cela ne demandera que les types de ressources pris en charge docs.aws.amazon.com/ARG/latest/userguide
...
18
C'est une idée géniale, mais malheureusement, de nombreux types de ressources importants ne sont pas encore pris en charge à partir d'aujourd'hui septembre 2018. Je n'ai pas trouvé mes tables DynamoDB, API Gateway, Lambda, rôles IAM, etc.
Bing Ren
3
Malheureusement, le lien "Editeur de balises" est maintenant au 404.
wool.in.silver
1
L'ancien éditeur de balises et les liens ci-dessus ont disparu. Vous pouvez utiliser le nouvel éditeur de balises, mais je ne vois pas de moyen d'enregistrer les résultats multirégionaux. Voir console.aws.amazon.com/resource-groups et le document sur docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html
AstroTom
46

Vous pouvez utiliser le Tag Editor.

  1. Accédez à AWS Console
  2. Dans le volet de navigation TOP, cliquez sur liste Resource Groupsdéroulante
  3. Cliquez sur Tag Editor AWS répertorie toutes les ressources dans toutes les régions

Ici, nous pouvons sélectionner une région particulière dans laquelle nous voulons rechercher ou sélectionner toutes les régions dans la liste déroulante. Ensuite, nous pouvons sélectionner les ressources réelles que nous voulons rechercher ou nous pouvons également cliquer sur des ressources individuelles.

entrez la description de l'image ici

Raman Sahasi
la source
2
C'est la bonne réponse. A très bien fonctionné pour moi, merci!
Edward Corrigall
Je suis d'accord que c'est la bonne réponse, cela fonctionne et c'est très facile à suivre
Ben Gosub
8

J'irais avec "l'éditeur de balises" dans les "groupes de ressources" pour cela, comme suggéré par Ashwini.

Vous pouvez facilement répertorier toutes les ressources dans toutes les régions sans aucune configuration, etc.
Et bien que cela inclue tous les VPC par défaut + groupes de sécurité, etc. ceci, soit dans l'éditeur de balises, soit exporté vers csv et filtre dans Excel, par exemple.

Dylan
la source
7

Utilisez PacBot (Policy as Code Bot) - Un projet Open Source qui est une plate-forme pour la surveillance continue de la conformité, les rapports de conformité et l'automatisation de la sécurité pour le cloud. Toutes les ressources de tous les comptes et de toutes les régions sont découvertes par PacBot et évaluées par rapport à ces politiques pour mesurer la conformité aux politiques. Les fonctionnalités de recherche Omni sont également disponibles, ce qui permet de rechercher toutes les ressources découvertes. Même vous pouvez résilier / supprimer les détails des ressources via PacBot.

Recherche Omni

Recherche Omni

Page de résultats de recherche avec filtrage des résultats

Page de résultats de recherche avec filtrage des résultats

Page Asset 360 / Détails de l'actif

Page Asset 360 / Détails de l'actif

Voici les principales capacités de PacBot

  • Évaluation continue de la conformité.
  • Rapports de conformité détaillés.
  • Correction automatique des violations de politique.
  • Recherche Omni - Possibilité de rechercher toutes les ressources découvertes.
  • Suivi simplifié des violations de règles.
  • Portail libre-service.
  • Politiques personnalisées et actions de correction automatique personnalisées.
  • Regroupement dynamique des actifs pour voir la conformité.
  • Possibilité de créer plusieurs domaines de conformité.
  • Gestion des exceptions.
  • Résumés par e-mail.
  • Prend en charge plusieurs comptes AWS.
  • Installateur entièrement automatisé.
  • Tableaux de bord personnalisables.
  • Prise en charge d'OAuth2.
  • Intégration Azure AD pour la connexion.
  • Contrôle d'accès basé sur les rôles.
  • Actif à 360 degrés.
Nidhish Krishnan
la source
1
@SyCode Oui, vous pouvez l'héberger surprem
Nidhish Krishnan
Pouvez-vous indiquer comment, je ne vois aucune mention de cela dans la documentation, semble que je doive utiliser tous les services AWS nécessaires. Je voudrais par exemple remplacer RedShift par MySQL.
SyCode
2
La configuration complète des installations @SyCode est donnée sur ce lien
Nidhish Krishnan
5

Les outils fournis par AWS ne sont pas utiles car ils ne sont pas complets.

Dans ma propre quête pour atténuer ce problème et extraire une liste de toutes mes ressources AWS, j'ai trouvé ceci: https://github.com/JohannesEbke/aws_list_all

Je ne l'ai pas encore testé, mais il semble légitime.

Luke Chavers
la source
3

Je sais que c'est une vieille question mais j'aimerais aussi aider.

En fait, nous avons AWS Config , qui nous aide à rechercher toutes les ressources de notre cloud. Vous pouvez également effectuer des requêtes SQL.

Je vous encourage vraiment tous à connaître ce service exceptionnel.

Brenno Leal
la source
2

Oui.

J'ai eu le même problème, en essayant de comprendre ce qui se passe exactement dans mon compte AWS.

Finalement, j'ai fini par écrire AWSRetriver , un outil de bureau pour répertorier les ressources AWS dans toutes les régions.

C'est un outil simple et direct qui répertorie tout ... (espérons-le) Ressources AWS

Danny Tylman
la source
1

Il est bien tard mais vous devriez regarder ça. Pas CLI, je sais, mais cela vaut toujours la peine de supprimer un petit script shell pour faire ce dont vous avez besoin:

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

C'est une bibliothèque python qui, selon ses propres mots:

"Description du projet Répertoriez toutes les ressources d'un compte AWS, toutes les régions, tous les services (*). Écrit les fichiers JSON pour un traitement ultérieur.

(*) Aucune garantie d'exhaustivité. Utilisez les alertes de facturation si vous vous inquiétez des coûts. "

Surj
la source
0

Je recherche également une fonctionnalité similaire «lister toutes les ressources» dans AWS mais je n'ai rien trouvé d'assez bon.

"Groupes de ressources" n'aide pas car il ne répertorie que les ressources qui ont été marquées et l'utilisateur doit spécifier la balise. Si vous ne parvenez pas à marquer une ressource, elle n'apparaîtra pas dans "Groupes de ressources" .

Interface utilisateur de "Créer un groupe de ressources"

Une fonctionnalité plus appropriée est "Groupes de ressources" -> "Editeur de balises" comme déjà mentionné dans le post précédent. Sélectionnez la ou les régions et les types de ressources pour afficher la liste des ressources dans l'éditeur de balises. Cela sert le but mais pas très convivial car je dois entrer la région et le type de ressource chaque fois que je veux l'utiliser. Je suis toujours à la recherche d'une interface utilisateur facile à utiliser.

Interface utilisateur de "Rechercher une ressource" sous "Éditeur de balises"

Dipak Kumar Singh
la source
En fait, c'était une véritable bouée de sauvetage pour moi! Ouvrez simplement l'éditeur de balises, sélectionnez toutes les régions une par une (il n'y en a pas beaucoup) et "Tous les types de ressources" et cliquez sur "Rechercher des ressources". Ensuite, vous pouvez télécharger la liste complète au format CSV.
Tero Tilus
0

Essaye ça

Pour seulement ec2:

from skew import scan

    arn = scan('arn:aws:ec2:us-west-2:123456789012:instance/i-12345678')
    for resource in arn:
        print(resource.data)

Pour toutes les ressources:

arn = scan('arn:aws:*:*:<<youraccountId>>:instance*')
for resource in arn:
    print(resource.data)

Référence: https://github.com/scopely-devops/skew

STang
la source
0

EDIT: Cette réponse est obsolète. Vérifiez les autres réponses.

Non,
il n'y a aucun moyen d'obtenir toutes les ressources de votre compte en une seule fois. Chaque région est indépendante et pour certains services comme IAM, le concept de région n'existe pas du tout. Bien qu'il existe des appels d'API disponibles pour répertorier les ressources et les services.
Par exemple:

  • Pour obtenir la liste de toutes les régions disponibles pour votre compte:

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

  • Pour obtenir la liste des utilisateurs, rôles ou groupes IAM, vous pouvez utiliser:

    client.GetAccountAuthorizationDetails(&iam.GetAccountAuthorizationDetailsInput{})

    Vous pouvez trouver plus de détails sur les appels d'API et leur utilisation sur: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/

    Le lien ci-dessus est uniquement pour IAM. De même, vous pouvez trouver une API pour toutes les autres ressources et services.

  • Abhishek Soni
    la source
    Cette réponse est obsolète
    Carles Alcolea
    -1

    Une autre option consiste à utiliser ce script qui exécute "aws configservice list-found-resources --resource-type" pour chaque ressource

    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
    
    Luis
    la source