Виявлення та усунення дрифту Terraform

Дрифт Terraform створює приховані ризики у вашому продуктивному середовищі. Це стається, коли ваша реальна інфраструктура більше не відповідає вашому коду.

Така невідповідність спричиняє збої в роботі. Вона створює прогалини в безпеці. Вона призводить до порушень відповідності стандартам.

Чому виникає дрифт?

  • Інженери вносять термінові виправлення (hotfixes) безпосередньо в консолі хмари.
  • Команди вносять ручні зміни під час інцидентів.
  • Користувачі створюють ресурси поза межами вашого робочого процесу IaC.
  • Швидкість розробки випереджає ваші правила управління (governance).

Приклад: Ваш код визначає екземпляр EC2 як t2.micro. Інженер вручну змінює його на t2.large в консолі AWS. Тепер ваш код і реальність відрізняються. Це і є дрифт.

Як його виявити: Виконайте команду terraform plan. Вона покаже розбіжність між вашим кодом і хмарою. Зауважте, що деякі ручні зміни можуть залишитися непоміченими, якщо вони не стосуються конкретних ресурсів, які відстежує Terraform.

Як його запобігти:

  • Використовуйте remote backend. Зберігайте свій state в AWS S3. Це забезпечить безпеку та версійність файлу стану для всієї вашої команди.
  • Використовуйте GitOps. Зробіть Git єдиним джерелом істини. Кожна зміна має проходити через pull request.
  • Автоматизуйте тестування. Перевіряйте зміни в інфраструктурі перед їх впровадженням.
  • Постійно здійснюйте моніторинг. Використовуйте такі інструменти, як AWS Config або Spacelift, щоб отримувати сповіщення, коли зміни відбуваються поза межами вашого коду.

Як його виправити: Якщо ви виявили дрифт, ви повинні привести інфраструктуру у відповідність до вашого коду. Використовуйте команду terraform apply, щоб перезаписати ручні зміни та відновити запланований стан.

Послідовність забезпечує стабільність ваших систем.

Source: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm

Optional learning community: https://t.me/GyaanSetuAi