Модуль 3.9: Azure Key Vault
Складність: [MEDIUM] | Час на виконання: 1.5 год | Передумови: Модуль 3.1 (Entra ID та RBAC)
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»У грудні 2022 року відомий сервіс управління паролями повідомив про масштабний злом. Зловмисники викрали зашифровані дані користувачів та ключі для їх розшифровки. Причиною став домашній комп’ютер розробника, на якому стояла застаріла версія медіаплеєра. Через цю вразливість хакери отримали доступ до його робочих креденшалів. Цей інцидент коштував компанії близько $100 мільйонів.
Ця історія вчить нас головному: управління секретами — це не опція, це питання виживання компанії. Кожен додаток має секрети: паролі до баз даних, API-ключі Stripe або AWS, TLS-сертифікати. Зберігати їх у коді або просто у змінних оточення сервера — це все одно що ховати ключ від квартири під килимком.
Azure Key Vault — це хмарний сейф для ваших найчутливіших даних. Він захищений апаратними модулями безпеки (HSM) і дозволяє вашим додаткам отримувати паролі “на льоту”, ніколи не показуючи їх людям. У цьому модулі ви навчитеся створювати сховища, розберетеся з типами об’єктів (Secrets, Keys, Certificates) та налаштуєте доступ для додатків через Managed Identities, щоб у вашому коді більше ніколи не було жодного пароля.
Три типи об’єктів у Key Vault
Розділ «Три типи об’єктів у Key Vault»Key Vault — це не просто “сховище паролів”. Він вміє працювати з трьома типами даних:
- Secrets (Секрети): Будь-який текст до 25 КБ. Паролі БД, токени API, рядки підключення.
- Keys (Ключі): Криптографічні ключі (RSA/EC). Вони використовуються для шифрування даних. Головна фішка: ключ ніколи не покидає сейф. Ви відправляєте дані в Key Vault, він їх шифрує і віддає вам результат.
- Certificates (Сертифікати): TLS/SSL сертифікати. Key Vault може сам їх випускати і автоматично оновлювати, коли термін дії добігає кінця.
Доступ: Policies vs RBAC
Розділ «Доступ: Policies vs RBAC»Є два способи налаштувати, хто може заглядати у сейф:
- Access Policies (Старий спосіб): Ви даєте права на рівні всього сховища (напр. “цей сервер може читати всі секрети”).
- Azure RBAC (Рекомендовано): Ви можете дати право читати тільки ОДИН конкретний пароль. Це набагато безпечніше (принцип найменших привілеїв).
Захист від видалення: Soft Delete та Purge Protection
Розділ «Захист від видалення: Soft Delete та Purge Protection»В Azure Key Vault неможливо видалити секрет “випадково” і назавжди:
- Soft Delete: Видалений секрет потрапляє в “кошик” і зберігається там від 7 до 90 днів. Його можна легко відновити.
- Purge Protection: Навіть адміністратор не може остаточно очистити “кошик”, поки не мине встановлений час. Це захист від зловмисників, які хочуть знищити ваші бекапи або ключі перед відходом.
Як додатки читають секрети
Розділ «Як додатки читають секрети»Найкращий спосіб — Managed Identity.
- Ви вмикаєте ідентичність на віртуальній машині або Container App.
- В Key Vault даєте цій ідентичності роль
Key Vault Secrets User. - У коді додатка використовуєте бібліотеку Azure SDK. Додаток сам піде в Key Vault, авторизується і візьме пароль. У коді немає жодних логінів чи паролів!
Типові помилки
Розділ «Типові помилки»| Помилка | Чому це стається | Як виправити |
|---|---|---|
| Паролі в коді (Hardcoded) | “Так швидше розробляти” | Використовуйте Key Vault з першого дня. Для локальної розробки Azure SDK сам підтягне ваш логін з VS Code або CLI |
| Одна роль Admin для всіх | Contributor здається правильним | Використовуйте роль Secrets User для додатків. Вони не мають права нічого міняти, тільки читати |
| Читання секрету при кожному HTTP-запиті | ”Щоб було свіже значення” | Це створює затримку (latency) і може призвести до блокування (throttling). Кешуйте секрети в пам’яті додатка на 5-15 хвилин |
| Секрети в назвах (Tags) | Щоб швидше шукати | Теги не шифруються так само надійно, як самі секрети. Ніколи не пишіть чутливі дані в назвах або тегах |
Тест
Розділ «Тест»1. Чим відрізняється Secret від Key в Azure Key Vault?
Secret — це просто рядок тексту (напр. пароль), який додаток витягує і використовує. Key — це криптографічний ключ, який використовується всередині Key Vault. Додаток не бачить сам ключ, він лише просить Key Vault щось зашифрувати цим ключем.
2. Чи можна вимкнути Purge Protection після того, як ви її увімкнули на сховищі?
Ні. Це зроблено спеціально, щоб навіть скомпрометований акаунт адміністратора не зміг вимкнути захист і остаточно видалити критичні ключі.
Практична вправа: Сейф для паролів
Розділ «Практична вправа: Сейф для паролів»- Створіть Key Vault з увімкненим RBAC.
- Створіть секрет
db-passwordзі значеннямSuperSecret123. - Налаштуйте доступ для свого користувача, щоб ви могли прочитати значення.
- Видаліть секрет, знайдіть його в списку видалених (deleted) і відновіть.
Наступний модуль
Розділ «Наступний модуль»Переходьте до Модуля 3.10: Azure Monitor та Log Analytics — ви навчитеся моніторити вашу інфраструктуру, писати запити KQL та налаштовувати алерти, які врятують ваш сон під час аварій.