# Розділила всі операційні секрети за хостами

Розділила чотири операційні секрети так, щоб кожен хост мав власні, з'ясувавши, що два хости зі спільним dead man's switch сповіщають про збої рідше, ніж два окремі перемикачі, а не частіше, і що спільна парольна фраза резервних копій перетворює два хости на один репозиторій.

вересень 2026

**Ситуація.** Платформу збудували для одного хоста, а невдовзі їх мало стати два. Кілька експлуатаційних секретів, виходячи з цього припущення, записали як окремі значення: один репозиторій резервних копій, одна парольна фраза, один перемикач тривоги. Поширити їх на другий хост, просто зробивши спільними, — шлях найменшого опору, але він хибний із двох незалежних причин, і обидві дають збій непомітно.

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

**Дія.** Питання вирішили два аргументи, і обидва записано поруч із конфігурацією. Dead man's switch, спільний для двох хостів, спрацьовує рідше, ніж два окремі перемикачі, а не частіше: поки бодай один хост надсилає сигнали, перевірка лишається зеленою, навіть якщо другий не працює, тож додавання хоста до спільного перемикача фактично зменшує покриття того, що вже був. А рядок репозиторію резервних копій — це лише розташування; усе шифрування тримається на парольній фразі, тож два хости зі спільною парольною фразою — це не два репозиторії зі спільним секретом, а один репозиторій із двома каталогами. Кожне значення стало словником, де ключем є ім'я хоста в інвентарі, а значення для конкретного хоста визначає спільний файл завдань, який виконують і converge, і попередня перевірка. Потім наявний хост внесли в усі чотири словники — з його репозиторієм, але з обома перемикачами порожніми: це правдивий стан, і він не дає двом відкритим ініціативам удавати, ніби бракує коду, — бракує тієї половини роботи, яку має виконати оператор.

**Результат.** Секрети задаються окремо для кожного хоста вже за самою побудовою, а два режими відмови, до яких призвело б спільне використання, записано там, де наступна людина редагуватиме файл. Найцінніше тут — порожні записи: вони кажуть, що обв'язка є, а значення ще немає, і це інше й корисніше твердження, ніж відсутній ключ.

---

- Роль: Інженер з безпеки
- Категорії: [Архітектура рішень](https://engineer.company/uk/categories/solution-architecture/), [Інфраструктура](https://engineer.company/uk/categories/infrastructure/), [Автоматизація та CI/CD](https://engineer.company/uk/categories/automation/), [Надійність і резервне копіювання](https://engineer.company/uk/categories/reliability/), [Linux та сервери](https://engineer.company/uk/categories/linux/), [Безпека](https://engineer.company/uk/categories/security/)
- Послуги: [Infrastructure as Code](https://engineer.company/uk/services/infrastructure-as-code/), [Надійність та моніторинг (SRE)](https://engineer.company/uk/services/site-reliability/), [Резервне копіювання та відновлення](https://engineer.company/uk/services/backup-recovery/), [Безпека та керування доступом](https://engineer.company/uk/services/security-access/)

<https://engineer.company/uk/portfolio/split-every-operational-secret-per-host/>
