Есть ли способ обнаружить виртуальные машины с помощью Terraform? - PullRequest
0 голосов
/ 10 марта 2020

Члены команды инфраструктуры создают, удаляют и модифицируют ресурсы в проекте GCP с помощью консоли. Команда безопасности хочет отсканировать инфраструктуру и убедиться, что приняты надлежащие меры безопасности. Я пытаюсь создать скрипт terraform, который будет: 1. Принимать ID проекта в качестве входных данных и перечислять все экземпляры данного проекта. 2. L oop все экземпляры и проверьте, включены ли средства безопасности. 3. Если какой-либо элемент управления безопасностью отсутствует, сценарий terraform будет изменять ресурс (ВМ).

Я должен повторить те же шаги для всех ресурсов, доступных в проекте, таких как su bnet, сегменты облачного хранилища, брандмауэры et c.

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

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

Может кто-нибудь дает какие-либо указания здесь?

1 Ответ

1 голос
/ 10 марта 2020

Любопытно, что под «консолью» вы подразумеваете консоль gcp (иначе вручную), потому что, если вы еще не используете terraform для создания ресурсов (и не планируете это в будущем), то terraform не является правильным инструментом за то, что вы описываете. Я бы на самом деле утверждал, что это увеличивает сложность.

В основном потому, что:

  1. Функция импорта не предназначена для этого варианта использования, и мы по-прежнему регулярно сталкиваемся с ней. Может быть, 1 раз для нескольких ресурсов, но не для всей среды и не без того, чтобы это стало будущим источником правды. Такие проекты, как terraforming , делают все возможное, но все еще сталкиваются с проблемами дикого запада в сложных условиях. Не все ресурсы даже поддерживают импорт
  2. . Terraform не расскажет вам ничего о виртуальных машинах, о которых вы уже не знали из GCP. Если вам нужна дополнительная информация для оценки средств контроля, вам нужно будет использовать другой инструмент или иметь несколько сложных провайдеров. Поставщики в лучшем случае обернутся вокруг других инструментов, которые вы, вероятно, могли бы использовать напрямую.

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

Отступление, если у вас есть инфраструктура, созданная с помощью terraform, я бы потратил больше времени на некоторые другие практики, которые могут достичь sh таких же результатов. Некоторые другие варианты: 1) применять лучшие методы через родительские модули, чтобы безопасность «благословилась», 2) внедрить некоторый CI на вашей terraform, 3) AWS имеет Config и Systems Manager, не уверен, что GCP имеет аналог, но я бы смотреть по сторонам. Также стоит оценить использование разных технологий для разных уровней абстракции. То, что проверяет вашу ОС, может отличаться от того, что проверяет ваши группы безопасности, и это нормально. Знание - полдела, и оно может привести к более разумной первой версии, чем автоматическое исправление c.

С терраформой или без нее существует экосистема как продуктов, так и проектов с открытым исходным кодом, которые могут помочь в обеспечении соблюдения или контроля. Взгляните на такие инструменты, как inspe c, sentinel или salstack для вдохновения.

...