Есть ли способ перечислить все ресурсы в AWS


138

Есть ли способ перечислить все ресурсы в AWS? Для всех регионов, все ресурсы .. Например, перечислить все экземпляры EC2, все VPC, все API в API Gateway и т. Д. Я хотел бы перечислить все ресурсы для моей учетной записи, так как мне трудно найти, какие ресурсы я могу сдавайся сейчас.


1
Взгляните на мой ответ на этот вопрос - stackoverflow.com/questions/43984337/multiple-aws-reigon/… Этого должно быть достаточно, чтобы вы начали.
Colwin 06


2
Вы можете создать группу ресурсов для всего региона и всех услуг, которые вам нужны. Resource Group покажет вам все эти ресурсы в одном месте. вы также можете использовать для этого aws cli. aws.amazon.com/blogs/aws/resource-groups-and-tagging
Ашвини,

Ответы:


8

Изменить: этот ответ устарел и неверен . Есть несколько способов перечислить ресурсы AWS (редактор тегов AWS и т. Д.). Проверьте другие ответы для более подробной информации.


Нет.

У каждой службы AWS (например, Amazon EC2, Amazon S3) есть собственный набор вызовов API. Кроме того, каждый регион независим.

Чтобы получить список всех ресурсов, вам нужно будет выполнить вызовы API для каждой службы в каждом регионе.

Вы можете активировать AWS Config :

AWS Config предоставляет подробное представление о конфигурации ресурсов AWS в вашей учетной записи AWS. Это включает в себя то, как ресурсы связаны друг с другом и как они были настроены в прошлом, чтобы вы могли видеть, как конфигурации и отношения меняются с течением времени.

Однако AWS Config собирает информацию только о ресурсах, связанных с EC2 / VPC, а не обо всей информации в вашей учетной записи AWS.


14
Этот ответ неверен. Вы действительно можете перечислить все услуги во всех регионах, используя Cost Explorer.
Carles Alcolea

9
Этот ответ, скорее всего, устарел. Как уже упоминалось здесь несколькими людьми, вы можете использовать либо Диспетчер тегов, либо «Ежемесячную стоимость услуг» в Cost Explorer .
maximpa

Мне показалось, что AWS Config работает. Я хотел найти снимок, который я сделал по другой причине и забыл, и, очевидно, удалил для него экземпляр EC2. Получив полный список AWS Config, а затем выполнив поиск по запросу «snap», я нашел его.
Питер Смит

206

Да. Используйте редактор тегов . Вы можете щелкнуть мышью, чтобы управлять отдельными ресурсами.

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


42
Чтобы перечислить все ресурсы с помощью редактора тегов, вы вручную выбираете все перечисленные регионы (всего 15 регионов на сегодняшний день), выбираете «Все типы ресурсов» и не указываете тег. Затем нажмите «Найти ресурсы», и это покажет все ресурсы, которые были созданы в вашей учетной записи.
Гаррисон Беккер

3
обратите внимание, это будет запрашивать только поддерживаемые типы ресурсов docs.aws.amazon.com/ARG/latest/userguide/…
ekcrisp

18
Это гениальная идея, но, к сожалению, многие важные типы ресурсов еще не поддерживаются на сегодняшний день в сентябре 2018 года. Я не нашел свои таблицы DynamoDB, API Gateway, Lambda, роли IAM и т. Д.
Bing Ren,

3
К сожалению, ссылка "Редактор тегов" теперь 404.
Wool.in.silver

1
Старый редактор тегов и ссылки выше исчезли. Вы можете использовать новый редактор тегов, но я не вижу способа сохранить результаты для нескольких регионов. См. Console.aws.amazon.com/resource-groups и документ на docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html
AstroTom

46

Вы можете использовать Tag Editor.

  1. Перейдите в Консоль AWS
  2. В Resource Groupsверхней части панели навигации щелкните раскрывающийся список
  3. щелчок Tag Editor AWS перечисляет все ресурсы во всех регионах

Здесь мы можем выбрать либо конкретный регион, в котором мы хотим искать, либо все регионы из раскрывающегося списка. Затем мы можем выбрать фактические ресурсы, которые мы хотим найти, или мы также можем щелкнуть по отдельным ресурсам.

введите описание изображения здесь


2
Это правильный ответ. У меня отлично поработали, спасибо!
Эдвард Корригалл,

Я согласен, что это правильный ответ, он работает, и ему очень легко следовать
Бен Госуб,

8

Я бы выбрал для этого «редактор тегов» в «группах ресурсов», как предлагает Ашвини.

Вы можете легко перечислить все ресурсы во всех регионах без какой-либо настройки и т. Д.
И хотя это включает все VPC по умолчанию + группы безопасности и т. Д. (Так что вы получите ~ 140 элементов, даже если ваша учетная запись пуста), вы все равно можете довольно легко фильтровать это, например, в редакторе тегов или экспорт в CSV и фильтрация в Excel.


7

Use PacBot (Policy as Code Bot) - проект с открытым исходным кодом, который представляет собой платформу для непрерывного мониторинга соответствия, отчетности о соответствии и автоматизации безопасности для облака. Все ресурсы во всех учетных записях и во всех регионах, обнаруженных PacBot, сравниваются с этими политиками, чтобы определить их соответствие. Также доступны функции Omni Search, дающие возможность искать все обнаруженные ресурсы. Даже вы можете закрыть / удалить информацию о ресурсах через PacBot.

Омни поиск

Омни поиск

Страница результатов поиска с фильтрацией результатов

Страница результатов поиска с фильтрацией результатов

Актив 360 / Страница сведений об активе

Актив 360 / Страница сведений об активе

Ниже приведены основные возможности PacBot.

  • Постоянная оценка соответствия.
  • Подробная отчетность о соответствии.
  • Автоматическое исправление нарушений политики.
  • Omni Search - возможность поиска по всем обнаруженным ресурсам.
  • Упрощенное отслеживание нарушений правил.
  • Портал самообслуживания.
  • Настраиваемые политики и настраиваемые действия автоматического исправления.
  • Динамическая группировка активов для просмотра соответствия.
  • Возможность создания нескольких доменов соответствия.
  • Управление исключениями.
  • Электронные дайджесты.
  • Поддерживает несколько учетных записей AWS.
  • Полностью автоматический установщик.
  • Настраиваемые информационные панели.
  • Поддержка OAuth2.
  • Интеграция с Azure AD для входа.
  • Ролевое управление доступом.
  • Актив на 360 градусов.

1
@SyCode Да, вы можете разместить это прямо сейчас
Нидиш Кришнан

Не могли бы вы указать, как я не вижу упоминания об этом в документации, кажется, я должен использовать все необходимые сервисы AWS. Я, например, хотел бы заменить RedShift на MySQL.
SyCode

2
Полная настройка установки @SyCode дана по этой ссылке
Нидхиш Кришнан

5

Инструменты, предоставляемые AWS, бесполезны, потому что они не являются исчерпывающими.

В моем собственном стремлении смягчить эту проблему и получить список всех моих ресурсов AWS я нашел следующее: https://github.com/JohannesEbke/aws_list_all

Я еще не тестировал, но выглядит вполне нормально.



3

Я знаю, что это старый вопрос, но я тоже хотел бы помочь.

Собственно, у нас есть AWS Config , который помогает нам искать все ресурсы в нашем облаке. Вы также можете выполнять SQL-запросы.

Я действительно призываю всех вас узнать об этом замечательном сервисе.


2

Да.

У меня была такая же проблема, когда я пытался выяснить, что именно происходит в моей учетной записи AWS.

В конце концов, я написал AWSRetriver , инструмент для настольных компьютеров, чтобы перечислить ресурсы AWS во всех регионах.

Это простой и понятный инструмент, в котором все перечислено ... (надеюсь) Ресурсы AWS


1

Уже поздно, но ты должен посмотреть на это. Не знаю CLI, но все же стоит просто выпустить небольшой сценарий оболочки, чтобы делать то, что вам нужно:

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

Это библиотека Python, которая своими словами:

"Описание проекта Список всех ресурсов в аккаунте AWS, всех регионов, всех сервисов (*). Записывает файлы JSON для дальнейшей обработки.

(*) Нет гарантий полноты. Используйте оповещения о выставлении счетов, если вас беспокоят расходы ".


0

Я также ищу аналогичную функцию «перечислить все ресурсы» в AWS, но не могу найти ничего достаточно хорошего.

«Группы ресурсов» не помогают, потому что они перечисляют только ресурсы, которые были помечены, и пользователь должен указать этот тег. Если вы пропустите пометку ресурса, он не появится в «Группах ресурсов» .

Пользовательский интерфейс «Создать группу ресурсов»

Более подходящей функцией является «Группы ресурсов» -> «Редактор тегов», как уже упоминалось в предыдущем посте. Выберите регион (ы) и тип (ы) ресурсов, чтобы просмотреть список ресурсов в редакторе тегов. Это служит цели, но не очень удобно, потому что мне приходится вводить регион и тип ресурса каждый раз, когда я хочу его использовать. Я все еще ищу простой в использовании интерфейс.

Пользовательский интерфейс «Найти ресурс» в «Редакторе тегов»


Собственно, для меня это была настоящая палочка-выручалочка! Просто откройте редактор тегов, выберите все регионы одну за другой (их не так много) и «Все типы ресурсов» и нажмите «Найти ресурсы». Затем вы можете скачать весь список в формате CSV.
Теро Тилус 01

0

Попробуй это

Только для 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



0

РЕДАКТИРОВАТЬ: этот ответ устарел. Проверьте другие ответы.

Нет,
невозможно получить все ресурсы в вашей учетной записи за один раз. Каждый регион независим, и для некоторых сервисов, таких как 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 для всех других ресурсов и сервисов.


  • Этот ответ устарел
    Carles Alcolea

    -1

    Другой вариант - использовать этот скрипт, который выполняет команду «aws configservice list -formed-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
    
    Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
    Licensed under cc by-sa 3.0 with attribution required.