OpenTofu впроваджує еферерні атрибути в нових випусках

OpenTofu впроваджує еферерні атрибути в нових випусках

OpenTofu, інструмент для Інфраструктури як Коду, є форком Terraform, який знаходиться під управлінням Linux Foundation. Він представив нові еферерні атрибути в своїх нічних збірках. Це давно запитувана функція, яка має на меті запобігання зберіганню чутливих значень у файлах стану.

Що таке еферерні атрибути?

Як видно з назви, еферерні атрибути дозволяють значенням існувати лише під час одного виконання команди OpenTofu (план/застосування) і відразу ж скидаються після цього. У практиці це означає, що коли ви позначаєте певні атрибути як еферерні, вони не зберігаються в стані.

Мета нововведення в OpenTofu

Мета нововведення доволі зрозуміла – йдеться про безпеку. Це допомагає усунути один із довгострокових ризиків в Terraform-стилі: випадкове оприлюднення секретів чи ключів, що зберігаються в стані. З новою підтримкою користувачі можуть конфігурувати атрибути як еферерні, отримуючи такі переваги:

  • Атрибут прийматиме ввід (наприклад, пароль, ключ) під час планування або застосування.
  • Він ніколи не записується в стан.
  • До нього неможливо звернутись пізніше (оскільки він не зберігається).
  • Він використовується лише в контекстах, де атрибут дозволений (для ресурсів, які підтримують це).

Концепція write-only атрибутів в OpenTofu

Крім того, OpenTofu підтримує концепцію write-only атрибутів, які дозволяють передавати еферерні дані в не еферерні ресурси. Тобто, керований ресурс може приймати ввід write-only (наприклад, секрет), який використовується під час provisioning, але не зберігається в стані.

У поєднанні еферерні + write-only атрибути дають користувачам спосіб моделювати робочі процеси, у яких обробка секретів є короткочасною — наприклад, SSH-тунелі, KMS-ключі або завдання для введення паролів — без залишення слідів у стані, які можуть бути втрачені.

Обмеження еферерних атрибутів

Однак варто пам’ятати, що еферерні атрибути не є панацеєю. Оскільки дані не зберігаються, ви не можете перевірити чи повторно використовувати їх із стану. Також не всі ресурси або провайдери можуть одразу підтримувати еферерні або write-only атрибути; сумісність залежить від специфічних реалізацій ресурсів.

І, нарешті, існує ще одне важливе зауваження: ця функція наразі доступна лише в нічних збірках OpenTofu — не готова до продуктивного використання — і запланована для включення в версію 1.11. Тож, з огляду на це, розробники проекту чітко попереджають проти її використання в продуктивних навантаженнях.

Докладнішу інформацію можна знайти в [анонсі OpenTofu](https://opentofu.org/blog/ephemeral-ready-for-testing/).