Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!20.08.2023
Основи безпеки AWS: групи безпеки
Продовження: початок тут та тут.
Групи безпеки виконують функцію фаєрволу. А саме, обмежують, куди, звідки, та через які порти дозволені підключення. Це найточніший та найнадійніший апарат захисту в AWS, тому на них потрібно звертати максимум уваги. Вони настільки надійні, що в деяких випадках можуть заміняти авторизацію (бо, якщо, скажімо, сервіс Elasticache не доступний нікому, окрім контейнерів додатка, то авторизація мало що додає.)
Група безпеки призначається кожному ресурсу, що існує в VPC (бази даних, машини, балансувальники й так далі.) Основа дуже проста: не треба робити груп з необмеженим входом (ingress). Натомість дозволяти вхід тільки з тих ресурсів (груп), яким дійсно потрібний доступ.
Вихід (egress) обмежувати теж варто, але це на мою думку не так важливо. Окреме питання — чи дозволяти вихід в інтернет — але без нього сервіси, особливо додатки, схильні ламатись. Причому обмежити доступ за доменом неможливо — тільки за набором IP адрес — отже, виходить непрактично. А всередині VPC групи взагалі утворюють пари “вхід-вихід”, тому накладення явних обмежень на вихід тільки повторює симетричне обмеження на вхід. В цілому, мені спокійно, якщо у кожного сервісу щільно обмежений вхід.
Звернемо увагу, що у ресурсу може бути більше одної групи безпеки. Тому можна утворити, наприклад, групу “клієнти бази даних” замість того, щоб плодити однакове правило у групі кожного зі споживачів.
Але, думаю, найбільша проблема з групами безпеки — це не розуміти, які вони потрібні, а додати всі правила та ніде не помилитись. Вручну це непіднімна робота. В сто разів простіше налаштувати через Terraform. Я б інакше не робив навіть в найменшому проєкті. Terraform може стати різницею між системою де все дозволено та правильним безпечним налаштуванням.