Сеть в 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 (приватные эндпоинты) позволяют дотянуться до сервисов 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.