Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 Контент вільний від AI. Цей пост на 100% написаний людиною, як і все на моєму блозі. Насолоджуйтесь!

22.08.2023

Основи безпеки AWS: захист ключів IAM

Продовження: початок тут, тут, тут та тут.

Як я писав вчора, більшість споживачів API AWS повинні авторизуватись через роль, а не користувача. Різниця в тому, що у ролі немає ключів, тому щоб отримати доступ до неї, потрібно запустити код у відповідному середовищі. А в користувача є ключі. Якщо отримати ключі, то доступ відкритий будь-звідки.

Це особливо небезпечно для адміністративних користувачів, оскільки вони мають широкі права доступу — часто необмежені. З такими правами можна не тільки отримати дані користувачів. Окремим вектором атаки є використання крадених ключів AWS для придбання обчислювальних ресурсів за ваші гроші. AWS тут ніяк, абсолютно ніяк не зупиняє шахраїв, тому навіть на маленькому проєкті можна влетіти на значну суму грошей — аж поки не помітиш, що щось пішло не так (для чого, до речі, конче необхідно мати монітор білінгу).

Я вже писав, що ключі AWS можна сховати в 1Password. Це підходить до ключів, якими користуються люди (бо є ще ключі для сервісів поза межами AWS, до яких ролі не застосовуються.) Звісно, абсолютного захисту таке рішення не дає, а являє собою один з шарів захисту.

Інший підхід — впровадження двофакторної автентифікації для запитів до API. Для цього є ключ MultiFactorAuthPresent в політиках доступу. На практиці це накладає додаткову умову на дію.

А для сервісних користувачів є умова за IP адресою. Це теж добре захищає… якщо у вас є стала IP адреса, звісно.

Взагалі в тих умовах багато всього цікавого — можна за User-Agent обмежити, наприклад. Це вже зупинить найбільш поширений вид шахрайства, коли ключі отримують через загальні вразливості та без знання вашого проєкту.