Лучший способ создать список ресурсов, созданных без использования Terraform

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

Часть с тегами также довольно громоздка, так как это нужно делать вручную.

  1. Есть ли способ указать Terraform (или Terragrunt) автоматически использовать общие теги для ресурсов?
  2. Есть ли способ попросить Terraform или любой другой инструмент создать список ресурсов, которые недоступны в файлах состояния?

person Tom    schedule 04.12.2020    source источник
comment
Скорее всего: нет. На оба вопроса. Зачем тебе это вообще нужно?   -  person luk2302    schedule 04.12.2020
comment
На второй в некоторой степени отвечает github.com/rebuy-de/aws-nuke. (хотя в нем нет понятия об исключении ресурсов на основе Terraform).   -  person Grzegorz Oledzki    schedule 04.12.2020
comment
@ luk2302 Чтобы увидеть, создается ли что-то в нашей среде без нашего ведома, а также отслеживать все, а позже даже удалять нежелательные ресурсы.   -  person Tom    schedule 04.12.2020
comment
Как вы храните файлы состояния? В S3?   -  person ydaetskcoR    schedule 07.12.2020
comment
Да, мы также используем terragrunt, чтобы изолировать все друг от друга.   -  person Tom    schedule 08.12.2020
comment
вы можете принять участие здесь: github.com/hashicorp/terraform-provider-aws / issues / 7926   -  person Markus Dresch    schedule 14.12.2020


Ответы (2)


Поскольку нет хорошего способа узнать, управляется ли ресурс с помощью terraform или нет, я бы попробовал следующий подход:

Используйте терраформер для импорта всех ваших ресурсов (не все ресурсы поддерживаются терраформером, поэтому полное решение), и после того, как у вас есть этот список, просто вычтите из него все ресурсы, которые управляются вашими состояниями терраформ. При запуске terraform plan вы можете видеть идентификаторы ваших ресурсов.

Если у вас есть теги для всех ваших управляемых ресурсов terraform, вы можете отфильтровать их с помощью terraformer.

person ofirule    schedule 07.01.2021

Я согласен с ответом Chuppa Chump и добавлю, если это еще не очевидно, чтобы все созданные Terraform ресурсы имели тег, указывающий, что он был создан Terraform. Например, CreatedBy = Terraform ИЛИ Automation = Terraform. И тогда любой ресурс, у которого нет тега Automation или CreatedBy, не был создан terraform.

person paulg    schedule 02.02.2021