Czy istnieje sposób na wyświetlenie wszystkich zasobów w AWS

154

Czy istnieje sposób na wyświetlenie wszystkich zasobów w AWS? Dla wszystkich regionów, wszystkich zasobów .. Na przykład lista wszystkich instancji EC2, wszystkich VPC, wszystkich interfejsów API w API Gateway itp. Chciałbym wymienić wszystkie zasoby mojego konta, ponieważ trudno mi znaleźć zasoby, które mogę zrezygnuj teraz.

Lakin Lu
źródło
1
Spójrz na moją odpowiedź na to pytanie - stackoverflow.com/questions/43984337/multiple-aws-reigon/… Powinno wystarczyć na początek.
Colwin
2
Możesz utworzyć grupę zasobów dla wszystkich regionów i wszystkich usług, które chcesz zobaczyć. Grupa zasobów pokaże wszystkie te zasoby w jednym miejscu. możesz również użyć do tego aws cli. aws.amazon.com/blogs/aws/resource-groups-and-tagging
Ashwini

Odpowiedzi:

6

Edycja: ta odpowiedź jest przestarzała i nieprawidłowa . Istnieje kilka sposobów tworzenia listy zasobów AWS (edytor tagów AWS itp.). Sprawdź inne odpowiedzi, aby uzyskać więcej informacji.


Nie.

Każda usługa AWS (np. Amazon EC2, Amazon S3) ma swój własny zestaw wywołań API. Ponadto każdy region jest niezależny.

Aby uzyskać listę wszystkich zasobów, musiałbyś wykonać wywołania API do każdej usługi w każdym regionie.

Możesz chcieć aktywować konfigurację AWS :

Konfiguracja AWS zapewnia szczegółowy widok konfiguracji zasobów AWS na koncie AWS. Obejmuje to, w jaki sposób zasoby są ze sobą powiązane i jak były skonfigurowane w przeszłości, dzięki czemu można zobaczyć, jak konfiguracje i relacje zmieniają się w czasie.

Jednak AWS Config zbiera tylko informacje o zasobach związanych z EC2 / VPC, a nie wszystko na koncie AWS.

John Rotenstein
źródło
21
Ta odpowiedź jest błędna. Rzeczywiście, możesz wyświetlić listę wszystkich usług we wszystkich regionach za pomocą Eksploratora kosztów.
Carles Alcolea
11
Ta odpowiedź jest najprawdopodobniej przestarzała. Teraz, jak wspomniało tutaj kilka osób, możesz użyć Menedżera tagów lub „Miesięcznego kosztu usługi” w Eksploratorze kosztów .
maximpa,
Konfiguracja AWS wydawała się działać dla mnie. Chciałem znaleźć migawkę, którą zrobiłem z innego powodu, o którym zapomniałem i najwyraźniej usunąłem dla niej instancję EC2. pobranie pełnej listy konfiguracji AWS, a następnie wyszukanie „przystawki”, pomogło mi ją znaleźć.
Peter Smith
1
To pachnie. To naprawdę pachnie
user1325696
226

Tak. Użyj edytora tagów . Możesz kliknąć, aby zarządzać poszczególnymi zasobami.

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

schmmd
źródło
42
Aby wyświetlić listę wszystkich zasobów za pomocą Edytora znaczników, należy ręcznie wybrać wszystkie wymienione regiony (łącznie 15 regionów na dzień dzisiejszy) i wybrać opcję „Wszystkie typy zasobów” bez określania znacznika. Następnie kliknij „Znajdź zasoby”, co spowoduje wyświetlenie wszystkich zasobów utworzonych na Twoim koncie.
Garrison Becker
3
zauważ, że będzie to sprawdzać tylko obsługiwane typy zasobów docs.aws.amazon.com/ARG/latest/userguide/ ...
ekcrisp
18
To genialny pomysł, ale niestety wiele ważnych typów zasobów nie jest jeszcze obsługiwanych na dzień dzisiejszy września 2018 r. Nie znalazłem moich tabel DynamoDB, bramy API, ról Lambda, IAM itp.…
Bing Ren
3
Niestety link „Edytor tagów” ​​ma teraz
numer
1
Stary edytor tagów i powyższe linki zniknęły. Możesz użyć nowego edytora tagów, ale nie widzę sposobu na zapisanie wyników dla wielu regionów. Zobacz console.aws.amazon.com/resource-groups i dokument pod adresem docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html
AstroTom,
64

Możesz użyć Tag Editor.

  1. Przejdź do konsoli AWS
  2. W górnym okienku nawigacji kliknij menu Resource Groupsrozwijane
  3. Kliknij Tag Editor AWS wyświetla listę wszystkich zasobów we wszystkich regionach

Tutaj możemy wybrać konkretny region, w którym chcemy przeszukać lub wybrać wszystkie regiony z listy rozwijanej. Następnie możemy wybrać rzeczywiste zasoby, które chcemy przeszukać lub kliknąć poszczególne zasoby.

wprowadź opis obrazu tutaj

Raman Sahasi
źródło
3
To jest poprawna odpowiedź. Świetnie dla mnie działało, dziękuję!
Edward Corrigall
Zgadzam się, że to poprawna odpowiedź, działa i jest bardzo łatwa do naśladowania
Ben Gosub
8

W tym celu wybrałbym „edytor tagów” ​​w „grupach zasobów”, zgodnie z sugestią Ashwini.

Możesz łatwo wymienić wszystkie zasoby we wszystkich regionach bez żadnej konfiguracji itp.
I chociaż obejmuje to wszystkie domyślne VPC + grupy bezpieczeństwa itp. (Więc otrzymasz ~ 140 elementów, nawet jeśli twoje konto jest puste), nadal możesz dość łatwo filtrować to, na przykład, w edytorze tagów lub eksportuj do csv i filtruj w Excelu.

Dylan
źródło
7

Użyj PacBot (Policy as Code Bot) - projekt Open Source, który jest platformą do ciągłego monitorowania zgodności, raportowania zgodności i automatyzacji bezpieczeństwa w chmurze. Wszystkie zasoby na wszystkich kontach i we wszystkich regionach są wykrywane przez PacBot, są oceniane pod kątem tych zasad w celu oceny zgodności z polityką. Dostępne są również funkcje Omni Search umożliwiające przeszukiwanie wszystkich odkrytych zasobów. Nawet ty możesz zakończyć / usunąć szczegóły zasobów za pośrednictwem PacBot.

Omni Search

Omni Search

Strona wyników wyszukiwania z filtrowaniem wyników

Strona wyników wyszukiwania z filtrowaniem wyników

Zasób 360 / Strona szczegółów zasobu

Zasób 360 / Strona szczegółów zasobu

Poniżej przedstawiono najważniejsze możliwości PacBota

  • Ciągła ocena zgodności.
  • Szczegółowe raportowanie zgodności.
  • Autopoprawka dotycząca naruszeń zasad.
  • Omni Search - Możliwość przeszukiwania wszystkich odkrytych zasobów.
  • Uproszczone śledzenie naruszeń zasad.
  • Portal samoobsługowy.
  • Niestandardowe zasady i niestandardowe działania naprawcze.
  • Dynamiczne grupowanie zasobów w celu wyświetlenia zgodności.
  • Możliwość tworzenia wielu domen zgodności.
  • Zarządzanie wyjątkami.
  • Prześlij e-mailem podsumowania.
  • Obsługuje wiele kont AWS.
  • Całkowicie zautomatyzowany instalator.
  • Konfigurowalne pulpity nawigacyjne.
  • Obsługa OAuth2.
  • Integracja z usługą Azure AD na potrzeby logowania.
  • Kontrola dostępu oparta na rolach.
  • Zasób 360 stopni.
Nidhish Krishnan
źródło
1
@SyCode Tak, możesz go hostować onprem
Nidhish Krishnan
Czy możesz wskazać, jak - nie widzę żadnej wzmianki o tym w dokumentacji - wydaje mi się, że muszę korzystać ze wszystkich niezbędnych usług AWS. Chciałbym na przykład zamienić RedShift na MySQL.
SyCode
2
Kompletna konfiguracja instalacji @SyCode jest podana pod tym linkiem
Nidhish Krishnan
5

Narzędzia dostarczane przez AWS nie są przydatne, ponieważ nie są wyczerpujące.

W moim własnym dążeniu do złagodzenia tego problemu i wyciągnięcia listy wszystkich moich zasobów AWS, znalazłem to: https://github.com/JohannesEbke/aws_list_all

Jeszcze tego nie testowałem, ale wygląda legalnie.

Luke Chavers
źródło
4

W AWS Billing Management Console daje Kosztu Miesiąc bieżąco przez wybiegiem serwisowym.

dbkaplun
źródło
1
Zapełnienie eksploratora kosztów zajmuje ~ 24 godziny, ale podoba mi się ta odpowiedź :)
f01
3

Wiem, że to stare pytanie, ale też chciałbym pomóc.

Właściwie mamy konfigurację AWS , która pomaga nam wyszukiwać wszystkie zasoby w naszej chmurze. Możesz także wykonywać zapytania SQL.

Naprawdę zachęcam wszystkich do poznania tej niesamowitej usługi.

Brenno Leal
źródło
2

Tak.

Miałem ten sam problem, próbując dowiedzieć się, co dokładnie dzieje się na moim koncie AWS.

Ostatecznie napisałem AWSRetriver , narzędzie komputerowe do wyświetlania listy zasobów AWS we wszystkich regionach.

Jest to proste i nieskomplikowane narzędzie, które wymienia wszystko ... (miejmy nadzieję) Zasoby AWS

Danny Tylman
źródło
2

Myślę, że to może pomóc! Tutaj musisz wprowadzić nazwę regionu i musisz skonfigurować AWS CLI przed wypróbowaniem tego.

aws resourcegroupstaggingapi get-resources --region region_name

Wyświetli listę wszystkich zasobów w regionie według następującego formatu.

- 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  --
Ransaka Ravihara
źródło
1
Jest to lepsze niż używanie API dla każdej usługi, ponieważ znacznie zmniejsza liczbę wywołań API, zmniejszając ryzyko dławienia. Nadal może być konieczne używanie poszczególnych interfejsów API w przypadkach skrajnych, w których zasoby nie są objęte usługą grup zasobów.
jonatan
1

Jest już późno, ale powinieneś się temu przyjrzeć. Nie CLI, które znam, ale nadal warto po prostu wybić mały skrypt powłoki, aby zrobić to, czego potrzebujesz:

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

To biblioteka Pythona, która własnymi słowami:

„Opis projektu Lista wszystkich zasobów na koncie AWS, wszystkie regiony, wszystkie usługi (*). Zapisuje pliki JSON do dalszego przetwarzania.

(*) Brak gwarancji kompletności. Użyj alertów rozliczeniowych, jeśli martwisz się o koszty ”.

Surj
źródło
0

Szukam również podobnej funkcji „wyświetl wszystkie zasoby” w AWS, ale nie mogłem znaleźć niczego wystarczająco dobrego.

„Grupy zasobów” nie pomagają, ponieważ wyświetlają tylko zasoby, które zostały oznaczone, a użytkownik musi określić znacznik. Jeśli pominiesz tagowanie zasobu, nie pojawi się on w „Grupach zasobów” .

Interfejs użytkownika „Utwórz grupę zasobów”

Bardziej odpowiednią funkcją jest „Grupy zasobów” -> „Edytor tagów”, jak już wspomniano w poprzednim poście. Wybierz region (y) i typ (y) zasobów, aby wyświetlić listę zasobów w edytorze znaczników. Służy to celowi, ale nie jest zbyt przyjazne dla użytkownika, ponieważ za każdym razem, gdy chcę go użyć, muszę wprowadzać region i typ zasobu. Nadal szukam łatwego w użyciu interfejsu użytkownika.

Interfejs użytkownika „Znajdź zasób” w „Edytorze tagów”

Dipak Kumar Singh
źródło
Właściwie to był dla mnie prawdziwy ratunek! Po prostu otwórz Edytor tagów, wybierz wszystkie regiony jeden po drugim (nie ma ich zbyt wiele) i „Wszystkie typy zasobów” i naciśnij „Znajdź zasoby”. Następnie możesz pobrać całą listę w formacie CSV.
Tero Tilus
0

Spróbuj tego

Tylko dla ec2:

from skew import scan

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

Dla wszystkich zasobów:

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

Źródła: https://github.com/scopely-devops/skew

STang
źródło
-1

Inną opcją jest użycie tego skryptu, który wykonuje "aws configservice list-found-resources --resource-type" dla każdego zasobu

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
źródło
-1

EDYCJA: ta odpowiedź jest przestarzała. Sprawdź inne odpowiedzi.

Nie,
nie ma możliwości uzyskania wszystkich zasobów na koncie za jednym razem. Każdy region jest niezależny, aw przypadku niektórych usług, takich jak IAM, koncepcja regionu w ogóle nie istnieje. Chociaż dostępne są wywołania interfejsu API w celu wyświetlenia listy zasobów i usług.
Na przykład:

  • Aby uzyskać listę wszystkich regionów dostępnych dla Twojego konta:

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

  • Aby uzyskać listę użytkowników, ról lub grup uprawnień, których możesz użyć:

    client.GetAccountAuthorizationDetails(&iam.GetAccountAuthorizationDetailsInput{})

    Więcej informacji na temat wywołań API i ich wykorzystania można znaleźć pod adresem : https://docs.aws.amazon.com/sdk-for-go/api/service/iam/

    Powyższy link dotyczy tylko uprawnień. Podobnie możesz znaleźć API dla wszystkich innych zasobów i usług.

  • Abhishek Soni
    źródło
    Ta odpowiedź jest nieaktualna
    Carles Alcolea