Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!01.05.2023
AWS Parameter Store, Secrets Manager, та KMS: порівняння
Попросили порівняти ці схожі сервіси, які нібито всі зберігають різні ключі. Але насправді сервіси дуже різні.
AWS KMS (Key Management Service) - це сервіс шифрування, де ключі сховані “в чорний ящик”. Тобто за допомогою AWS IAM можна надати певним ролям дозвіл шифрувати або дешифрувати свої дані. Але — і це головне — при цьому ролі не отримують доступ до самих ключів. Ключі взагалі ніхто не може отримати, тільки сам AWS. Ми маємо тільки API для їх використання. Таким чином, за допомогою KMS можна не тільки поділитися доступом до зашифрованої інформації, а ще й потім цей доступ прибрати — бо якби ми поділилися самим ключем, то забрати його назад вже технічно неможливо.
KMS широко використовується в інших сервісах AWS як єдине рішення для шифрування даних. Всюди, де є шифрування — там є KMS та права доступу до нього. В тому числі й в наступних двох сервісах.
AWS Parameter Store - це сервіс збереження конфігурації. Про нього я вже писав. Але коротко, Parameter Store заміняє вам конфігураційні файли. Причому тут є і детальне керування доступом, і шифрування за бажанням, і навіть прості можливості аудиту. Проміж іншого, з Parameter Store можна вичитувати значення змінних оточення ECS та Lambda, або ж просто забирати значення через API. Дуже зручно “склеювати” сервіси до купи через значення Parameter Store, які автоматично записує Terraform.
Parameter Store розрахований для збереження великої кількості ключів, тому сховище Parameter Store безплатне. Обмежена тільки частота запитів (тому NoSQL базу з нього не зробиш, хаха), та розмір значення (до 4KB - далі платно).
AWS Secrets Manager - це спеціалізоване сховище для паролів. Причому так само як і Parameter Store, має таке саме шифрування та керування доступом. Чому ж тоді ключ Secrets Manager коштує $0.40 на місяць? Як я розумію, то фішка в тому, що Secrets Manager містить в собі автоматичну ротацію ключів. Причому ротацію не просто у вигляді тривіальної заміни ключа на новий, а з оновленням клієнта та сервера, тобто наживу, без простою, та в теорії безпечно. Тому також Secrets Manager інтегрується в сервіси AWS, що ці ключі споживають, наприклад, в AWS RDS.
Таким чином, в Secrets Manager має сенс розміщати ключі до баз даних та API, які підлягають ротації. Якщо ротацію ви не робите — то Parameter Store такий само безпечний, але ще й при цьому нічого не коштує. Тільки чомусь Secrets Manager - сервіс “першого рівня”, а Parameter Store “прихований” як частина Systems Manager. Та, якщо ти знайдеш перший, а не останній, то, як завжди, AWS про зайві витрати не попередить, та з радістю буде зберігати твої секрети по 40 центів за штуку. Caveat emptor.