Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!22.08.2023
Основи безпеки AWS: захист ключів IAM
Продовження: початок тут, тут, тут та тут.
Як я писав вчора, більшість споживачів API AWS повинні авторизуватись через роль, а не користувача. Різниця в тому, що у ролі немає ключів, тому щоб отримати доступ до неї, потрібно запустити код у відповідному середовищі. А в користувача є ключі. Якщо отримати ключі, то доступ відкритий будь-звідки.
Це особливо небезпечно для адміністративних користувачів, оскільки вони мають широкі права доступу — часто необмежені. З такими правами можна не тільки отримати дані користувачів. Окремим вектором атаки є використання крадених ключів AWS для придбання обчислювальних ресурсів за ваші гроші. AWS тут ніяк, абсолютно ніяк не зупиняє шахраїв, тому навіть на маленькому проєкті можна влетіти на значну суму грошей — аж поки не помітиш, що щось пішло не так (для чого, до речі, конче необхідно мати монітор білінгу).
Я вже писав, що ключі AWS можна сховати в 1Password. Це підходить до ключів, якими користуються люди (бо є ще ключі для сервісів поза межами AWS, до яких ролі не застосовуються.) Звісно, абсолютного захисту таке рішення не дає, а являє собою один з шарів захисту.
Інший підхід — впровадження двофакторної автентифікації для запитів до API. Для цього є ключ MultiFactorAuthPresent в політиках доступу. На практиці це накладає додаткову умову на дію.
А для сервісних користувачів є умова за IP адресою. Це теж добре захищає… якщо у вас є стала IP адреса, звісно.
Взагалі в тих умовах багато всього цікавого — можна за User-Agent обмежити, наприклад. Це вже зупинить найбільш поширений вид шахрайства, коли ключі отримують через загальні вразливості та без знання вашого проєкту.