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/).