Сетевая безопасность в облаке: security groups

Урок про то, как принципы firewall и минимума привилегий выглядят в облаке.

Security group — виртуальный stateful-firewall облачного провайдера, привязанный к инстансу и описывающий разрешённый входящий и исходящий трафик.

Зачем отдельная глава про облако

В облаке нет физического коммутатора, который вы держите в руках, зато есть программно-определяемая сеть. Принципы те же — минимум привилегий, сегментация, фильтрация, — но инструменты другие. Главный из них — security groups.

Как устроены security groups

Это набор правил «разрешить», применяемый к сетевому интерфейсу инстанса. Всё, что не разрешено, неявно запрещено (fail-safe defaults). Группы stateful: разрешив входящее соединение, не нужно отдельно открывать порт для ответа.

# концептуальный вид правил security group
ingress:
  - protocol: tcp
    port: 443
    source: 0.0.0.0/0        # HTTPS из интернета
  - protocol: tcp
    port: 22
    source: 203.0.113.10/32  # SSH только с админ-адреса
egress:
  - protocol: tcp
    port: 443
    destination: 0.0.0.0/0

Слои сетевой защиты в облаке

УровеньАналог
VPC / виртуальная сетьизолированная частная сеть
Подсетисегментация (public/private)
Security groupsstateful-firewall на инстанс
Network ACLstateless-фильтр на подсеть

Как работает под капотом

Провайдер реализует security groups как распределённый firewall на гипервизоре: правила применяются к каждому пакету интерфейса инстанса ещё до того, как трафик попадает в виртуальную сеть. Поэтому изоляция работает, даже если инстансы в одной подсети. Приватные подсети без публичного IP недоступны из интернета напрямую — доступ к ним идёт через bastion/VPN.

Частые ошибки

  • Открыть SSH (22) или базу на 0.0.0.0/0 «временно» — и забыть.
  • Слишком широкие группы «чтобы работало» вместо точечных правил.
  • Публичный IP у инстанса, которому он не нужен.
  • Открытые наружу хранилища и панели управления — частая причина утечек.

Итоги

  • В облаке принципы те же, инструменты — security groups, подсети, VPC.
  • Security groups — stateful и работают по правилу «разрешено только явное».
  • Базы и админ-доступ нельзя открывать на весь интернет.
Проверьте себя
1. Что такое security group в облаке?
AГруппа пользователей с правами
BВиртуальный stateful-firewall на уровне инстанса
CШифрование диска
DСистема резервного копирования
2. Почему опасно открывать SSH или базу на 0.0.0.0/0?
AЭто замедляет инстанс
BДоступ открывается всему интернету, резко расширяя поверхность атаки
CЭто запрещено провайдером всегда
DЭто ломает stateful-режим