Сеть в Azure — это не «галочки где-то в портале», а то, что определяет главный вопрос: кто до кого может достучаться. От неё зависит и безопасность (не смотрит ли база наружу?), и работоспособность (видит ли приложение базу?). Хорошая новость: вся модель собирается из нескольких понятных кирпичиков. Если базовые понятия облака ещё не на руках, начните с основ Azure.
Virtual Network и подсети
Virtual Network (VNet) — ваша изолированная виртуальная сеть внутри Azure, что-то вроде арендованного этажа в дата-центре: чужой на него не попадёт, а вы решаете, какие двери открыть наружу. Аналог VPC в AWS. У VNet свой диапазон адресов — CIDR вида 10.0.0.0/16 (число после слэша говорит, сколько адресов: /16 — около 65 тысяч).
VNet разрезают на подсети (subnets) — куски адресного пространства под разные роли: подсеть под приложения, под базы, под шлюзы. В отличие от некоторых облаков, подсеть Azure не привязана к одной зоне: ресурсы внутри неё можно разместить в разных зонах доступности ради надёжности.
az network vnet create --name my-vnet --resource-group my-rg \
--address-prefix 10.0.0.0/16 --subnet-name app --subnet-prefix 10.0.1.0/24
Ресурсы одной VNet видят друг друга по внутренним адресам. Разные VNet связывают через peering — прямое соединение (важно: оно не транзитивное, каждую пару соединяют отдельно).
Публичный и внутренний IP
Деление на «доступно снаружи» и «только внутри» проходит по ресурсу — есть ли у него публичный IP.
- Только внутренний IP — ресурс виден лишь внутри VNet. Сюда попадают приложения, базы, кэши: всё, до чего снаружи не должно быть доступа.
- Публичный IP — ресурс доступен из интернета. Его выдают точкам входа: балансировщику, иногда bastion-хосту для входа.
Правило: серверы и базы держат без публичного IP, наружу смотрят только балансировщики и точки входа. Публичный IP базе «чтобы удобно подключаться с ноутбука» — прямая дыра: её тут же начнут сканировать.
NAT Gateway: выход в интернет
Часто внутреннему сервису нужен исходящий доступ — скачать обновление, дёрнуть чужой API. Входящий при этом не нужен. Для этого служит NAT Gateway: работает как односторонний турникет — изнутри наружу можно, снаружи внутрь по своей инициативе нельзя. Его привязывают к подсети, и ресурсы без публичного IP получают выход в интернет, оставаясь невидимыми снаружи.
Network Security Group
Когда трафик доехал до ресурса, его фильтруют. Основной инструмент — Network Security Group (NSG): набор правил «кто и на какой порт может подключиться». Особенности:
- NSG stateful («с памятью»): разрешили входящее соединение — ответ уйдёт автоматически;
- правила бывают разрешающие и запрещающие, с приоритетами; обрабатываются по порядку;
- NSG вешают на подсеть или на сетевой интерфейс конкретной машины.
Хороший приём — вместо жёстких IP-адресов использовать теги сервисов (service tags) и группы безопасности приложений (application security groups), чтобы правило «приложению можно в базу на порт 5432» не ломалось при смене адресов.
az network nsg rule create --resource-group my-rg --nsg-name db-nsg \
--name allow-app --priority 100 --access Allow --protocol Tcp \
--destination-port-ranges 5432 --source-address-prefixes 10.0.1.0/24
Private Link и балансировщики
Private Link (приватные эндпоинты) позволяют дотянуться до сервисов Azure — базы, Blob Storage, Key Vault — по приватной сети, не выходя в интернет вообще. Трафик не покидает сеть Azure. Это почти всегда правильный ответ на вопрос «как внутреннему сервису безопасно достучаться до управляемого сервиса».
Точками входа для пользователей служат балансировщики:
- Load Balancer — распределяет на уровне соединений (L4), быстрый и простой;
- Application Gateway — работает на уровне HTTP (L7): маршрутизация по путям и хостам, терминация TLS, проверки здоровья; часто он и стоит публичной точкой входа, а приложения прячутся во внутренней сети.
Где это применяется
Сеть — фундамент, на котором стоит всё остальное. Балансировщик с публичным IP, приложение и база с внутренними адресами, NAT Gateway для исходящих вызовов, NSG, описывающие «кто до кого» — эту схему вы встретите почти в любом боевом развёртывании, продублированную по зонам доступности.
Типичные ошибки новичков:
- дают базе публичный IP — она доступна из интернета, прямая дыра;
- ждут выхода наружу без NAT Gateway — исходящие вызовы зависают;
- путают приоритеты правил NSG — более общее правило перекрывает частное;
- прописывают IP-адреса вместо тегов и групп — правила ломаются при смене адресов.
Что учить дальше: кто и что имеет право делать с ресурсами — это Entra ID и RBAC; где живут сервисы — в статье про вычисления; как поднимать сеть кодом — в инфраструктуре как код. Аналогичная модель в AWS — сеть в AWS.