Правильне управління секретами програми завжди було проблемою. З прийняттям хмари виникли нові виклики. Існує чудова презентація OWASP про реальність та проблеми зберігання таємниць у хмарі.
Ви можете бути здивовані, почувши, що зберігання секретів у вихідному коді є одним із представлених рішень (або "архітектури"). Це тому, що зараз немає ідеальної архітектури чи способу цього зробити. Зрештою, ваші секрети можуть бути зашифровані ... але що захищає ключ шифрування? «Черепахи всю дорогу вниз», - сказали вони.
Кожен тип секретного управління має свої сильні та слабкі сторони, і презентація вже охоплює це. Натомість я спробую ознайомитись з деякими функціями, які ви можете шукати у секретному (обліковому) управлінському рішенні:
- Контроль доступу: чи можете ви надати доступ для запису адміністраторам та доступ до читання програм? Чи можете ви обмежити, які програми можуть читати (програма A має доступ лише до цих секретів)?
- Журнали аудиту: потрібні для багатьох звітів про відповідність і хороший спосіб визначити, чи щось не так
- Безпечне зберігання секретів: як рішення зберігає секрети? Зашифровані БД? Зашифрований FS? Хто / що тримає ключ шифрування, якщо такий є? Як використовується цей ключ - один раз при запуску, а потім надійно відкинути?
- Обертання або поновлення ключів / паролів: якщо секрет порушений, чи можете ви скасувати його та надіслати оновлену таємницю додаткам? Чи можуть / програми повинні об'єднати секретну службу управління?
- Сумісність: Деякі з цих рішень пропонують тісну інтеграцію з певними мовами або рамками. Деякі пропонують API REST. Вас це цікавить?
Переглянувши ці пункти, наскільки вони важливі для вас і як вони реалізуються рішенням, ви зможете вибрати одну з секретних служб управління там .