Планирование и реализация групп безопасности сети (NSG) и групп безопасности приложений (ASG)
Группу безопасности сети Azure можно использовать для фильтрации сетевого трафика между ресурсами Azure в виртуальной сети Azure. Группа безопасности сети содержит правила безопасности, разрешающие или запрещающие входящий сетевой трафик или исходящий сетевой трафик из нескольких типов ресурсов Azure. Для каждого правила можно указать источник и назначение, порт и протокол.
Группы безопасности сети (NSG)
Правила безопасности
Группа безопасности сети содержит столько правил, сколько нужно, в пределах ограничений подписки Azure. Каждое правило указывает следующие свойства:
| Свойство | Объяснение |
|---|---|
| Имя | Уникальное имя в группе безопасности сети. Длина имени может составлять до 80 символов. Он должен начинаться с символа слова, и он должен заканчиваться словом или "_". Имя может содержать символы слов или ".", "-", "_". |
| Приоритет | Число от 100 до 4096. Правила обрабатываются в порядке приоритета, при этом более низкие числа обрабатываются до более высоких чисел, так как более низкие числа имеют более высокий приоритет. Когда трафик соответствует правилу, обработка останавливается. В результате все правила, существующие с более низким приоритетом (более высокие числа), которые имеют те же атрибуты, что и правила с более высоким приоритетом, не обрабатываются. Правила безопасности по умолчанию Azure получают самые высокие номера с самым низким приоритетом, чтобы гарантировать, что пользовательские правила всегда обрабатываются первыми. |
| Источник или назначение | Любой или отдельный IP-адрес, бесклассовый блок маршрутизации между доменами (CIDR) (10.0.0.0/24, например), тег службы или группа безопасности приложений. Если указать адрес ресурса Azure, укажите частный IP-адрес, назначенный ресурсу. Группы безопасности сети обрабатываются после преобразования общедоступного IP-адреса в частный для входящего трафика и перед преобразованием частного IP-адреса в общедоступный для исходящего трафика. При указании диапазона, тега службы или группы безопасности приложений требуется меньше правил безопасности. Возможность указывать несколько отдельных IP-адресов и диапазонов (нельзя указывать несколько тегов служб или групп приложений) в правиле называется расширенными правилами безопасности. Расширенные правила безопасности можно создавать только в группах безопасности сети, созданных с помощью модели развертывания Resource Manager. Нельзя указать несколько IP-адресов и диапазонов IP-адресов в группах безопасности сети, созданных с помощью классической модели развертывания. |
| Протокол | TCP, UDP, ICMP, ESP, AH или Any. Протоколы ESP и AH в настоящее время недоступны через портал Azure, но могут использоваться с помощью шаблонов Azure Resource Manager. |
| Направление | Применяется ли правило к входящему или исходящему трафику? |
| Диапазон портов | Можно указать отдельный или диапазон портов. Например, можно указать 80 или 10000-10005. Указание диапазонов позволяет создавать меньше правил безопасности. Расширенные правила безопасности можно создавать только в группах безопасности сети, созданных с помощью модели развертывания Resource Manager. Нельзя указать несколько портов или диапазонов портов в одном правиле безопасности в группах безопасности сети, созданных с помощью классической модели развертывания. |
| Действие | Разрешить или запретить |
Правила безопасности оцениваются и применяются на основе пяти элементов (1. источник, 2. порт источника, 3. назначение, 4. порт назначения и 5. протокол). Невозможно создать два правила безопасности с одинаковым приоритетом и направлением. Создается запись потока для существующих соединений. Разрешение или запрет на связь осуществляется в зависимости от состояния соединения записи потока. Запись потока позволяет группе безопасности сети быть с сохранением состояния. Если вы указываете исходящее правило безопасности для любого адреса через порт 80, например, то нет необходимости указывать входящее правило безопасности для ответа на исходящий трафик. Необходимо указать только правило безопасности для входящего трафика, если обмен данными инициируется внешним образом. Обратное также верно. Если входящий трафик разрешен через порт, нет необходимости указывать правило безопасности исходящего трафика для реагирования на трафик через порт.
Существующие подключения могут не прерываться при удалении правила безопасности, разрешающего подключение. Изменение правил группы безопасности сети влияет только на новые подключения. При создании нового правила или обновлении существующего правила в группе безопасности сети оно будет применяться только к новым подключениям. Существующие подключения не пересматриваются с новыми правилами.
Как группы безопасности сети фильтруют сетевой трафик
Ресурсы из нескольких служб Azure можно развернуть в виртуальной сети Azure. Вы можете связать ноль или одну группу безопасности сети с каждой подсетью виртуальной сети и сетевым интерфейсом в виртуальной машине. Одну и ту же группу безопасности сети можно связать с любым выбранным количеством подсетей или сетевых интерфейсов. На следующем рисунке показаны различные сценарии развертывания групп безопасности сети для разрешения сетевого трафика в и из интернета через TCP-порт 80.
Обратитесь к изображению вместе со следующим текстом, чтобы понять, как Azure обрабатывает входящие и исходящие правила для сетевых групп безопасности.
Входящий трафик
Для входящего трафика Azure сначала обрабатывает правила в группе безопасности сети, связанной с подсетью, если таковая имеется, а затем правила в группе безопасности сети, связанной с сетевым интерфейсом, если таковой имеется. Этот процесс также включает в себя трафик внутри подсети.
- VM1: правила безопасности в NSG1 обрабатываются, так как она связана с подсетью 1 и VM1 находится в подсети 1. Если вы не создали правило, разрешающее использование входящего порта 80, то стандартное правило безопасности DenyAllInbound запрещает трафик. Трафик не оценивается NSG2, так как он связан с сетевым интерфейсом. Если NSG1 разрешает порт 80 в правиле безопасности, NSG2 обрабатывает трафик. Чтобы разрешить трафик к виртуальной машине через порт 80, в NSG1 и NSG2 должно быть правило, разрешающее трафик из Интернета через порт 80.
- VM2: правила в NSG1 обрабатываются, так как VM2 также находится в подсети 1. Поскольку у VM2 нет сетевой группы безопасности, связанной с его сетевым интерфейсом, он принимает весь трафик, разрешенный через NSG1, или ему блокируется весь трафик, который заблокирован NSG1. Если группа безопасности сети связана с подсетью, трафик разрешен или запрещен для всех ресурсов в одной и той же подсети.
- VM3: так как нет группы безопасности сети, связанной с подсетью 2, трафик разрешен в подсеть и обработан NSG2, так как NSG2 связан с сетевым интерфейсом, подключенным к VM3.
- VM4: Трафик разрешен к VM4, так как группа сетевой безопасности не связана с подсетью 3 или сетевым интерфейсом виртуальной машины. Весь сетевой трафик разрешен через подсеть и сетевой интерфейс, если у них нет группы безопасности сети.
Исходящий трафик
Для исходящего трафика Azure сначала обрабатывает правила в группе безопасности сети, связанной с сетевым интерфейсом, если таковой имеется, а затем правила в группе безопасности сети, связанной с подсетью, если таковая имеется. Этот процесс также включает в себя трафик внутри подсети.
- В NSG2 обрабатываются правила безопасности VM1. Правило безопасности AllowInternetOutbound по умолчанию в NSG1 и NSG2 разрешает трафик, если только не создается правило безопасности, которое запрещает исходящий порт 80 в Интернет. Если NSG2 запрещает порт 80 в своем правиле безопасности, он запрещает трафик, и NSG1 никогда не оценивает его. Чтобы запретить порт 80 на виртуальной машине, либо одна, либо обе группы сетевой безопасности должны иметь правило, которое запрещает порт 80 в интернет.
- VM2: весь трафик отправляется через сетевой интерфейс в подсеть, так как сетевой интерфейс, подключенный к VM2, не имеет ассоциированной с ним группы безопасности сети. Правила в NSG1 обрабатываются.
- VM3: если NSG2 запрещает порт 80 в правиле безопасности, он запрещает трафик. Если NSG2 не запрещает порт 80, правило безопасности AllowInternetOutbound по умолчанию в NSG2 разрешает трафик, так как нет группы безопасности сети, связанной с подсетью 2.
- VM4: весь сетевой трафик разрешен из VM4, так как группа безопасности сети не связана с сетевым интерфейсом, подключенным к виртуальной машине, или к подсети 3.
Трафик внутренней подсети
Важно отметить, что правила безопасности в группе NSG, связанной с подсетью, могут повлиять на подключение между виртуальными машинами в такой подсети. По умолчанию виртуальные машины в одной подсети могут обмениваться данными благодаря стандартному правилу NSG, разрешающему трафик внутри подсети. Если добавить правило в NSG1, которое запрещает весь входящий и исходящий трафик, VM1 и VM2 не смогут взаимодействовать друг с другом.
Вы можете легко просматривать статистические правила, применяемые к сетевому интерфейсу, просматривая действующие правила безопасности сетевого интерфейса. Вы также можете использовать функцию проверки IP-потока в наблюдателе за сетями Azure, чтобы определить, разрешено ли подключение к сетевому интерфейсу или из нее. Вы можете использовать IP-поток, чтобы определить, разрешено ли или запрещено подключение. Кроме того, используйте проверку IP-трафика, чтобы выявить правило безопасности сети, которое отвечает за разрешение или запрет трафика.
Группы безопасности сети связаны с подсетями или виртуальными машинами и облачными службами, развернутыми в классической модели развертывания, а также с подсетями или сетевыми интерфейсами в модели развертывания Resource Manager.
Если у вас нет особых причин для этого, мы рекомендуем связать группу безопасности сети с подсетью или сетевым интерфейсом, но не обоими сразу. Так как правила в группе безопасности сети, связанной с подсетью, могут конфликтовать с правилами в группе безопасности сети, связанной с сетевым интерфейсом, могут возникнуть непредвиденные проблемы с обменом данными, требующие устранения неполадок.
Группы безопасности приложений (ASG)
Группы безопасности приложений позволяют настраивать сетевую безопасность как естественное расширение структуры приложения, позволяя группировать виртуальные машины и определять политики сетевой безопасности на основе этих групп. Вы можете повторно использовать свою политику безопасности в широком масштабе без необходимости в ручном обслуживании явных IP-адресов. Платформа обрабатывает сложность явных IP-адресов и нескольких наборов правил, позволяя сосредоточиться на бизнес-логике. Чтобы лучше понять группы безопасности приложений, рассмотрим следующий пример:
На предыдущем рисунке NIC1 и NIC2 — это члены группы безопасности приложений AsgWeb. NIC3 — это член группы безопасности приложений AsgLogic. NIC4 — это член группы безопасности приложений AsgDb. Хотя каждый сетевой интерфейс (сетевой адаптер) в этом примере является членом только одной группы безопасности сети, сетевой интерфейс может быть членом нескольких групп безопасности приложений до ограничений Azure. Ни один из сетевых интерфейсов не имеет связанной группы безопасности сети. NSG1 связана с обеими подсетями и содержит следующие правила.
Разрешить-HTTP-Входящий-Интернет
Это правило необходимо для разрешения трафика из Интернета на веб-серверы. Так как входящий трафик из Интернета запрещен правилом безопасности DenyAllInbound по умолчанию, для групп безопасности приложений AsgLogic или AsgDb дополнительных правил не требуется.
| Приоритет | Источник | Исходные порты | Назначение | Порты назначения | Протокол | Открыть |
|---|---|---|---|---|---|---|
| 100 | Интернет | * | AsgWeb | 80 | Протокол tcp | Разрешить |
Запрет—Database-All
Так как правило безопасности AllowVNetInBound по умолчанию разрешает всю связь между ресурсами в одной виртуальной сети, это правило необходимо для запрета трафика со всех ресурсов.
| Приоритет | Источник | Исходные порты | Назначение | Порты назначения | Протокол | Открыть |
|---|---|---|---|---|---|---|
| 120 | * | * | AsgDb | 1433 | Любое | Отрицать |
Разрешить-Database-BusinessLogic
Это правило разрешает трафик из группы безопасности приложений AsgLogic в группу безопасности приложений AsgDb. Приоритет для этого правила выше, чем приоритет правила Deny-Database-All. Таким образом, это правило обрабатывается до правила Deny-Database-All, поэтому трафик из группы безопасности приложений AsgLogic разрешен, тогда как весь остальной трафик запрещен.
| Приоритет | Источник | Исходные порты | Назначение | Порты назначения | Протокол | Открыть |
|---|---|---|---|---|---|---|
| 110 | AsgLogic | * | AsgDb | 1433 | Протокол tcp | Разрешить |
Сетевые интерфейсы, которые являются членами группы безопасности приложений, применяют правила, которые указывают его в качестве источника или назначения. Правила не влияют на другие сетевые интерфейсы. Если сетевой интерфейс не является членом группы безопасности приложений, правило не применяется к сетевому интерфейсу, даже если группа безопасности сети связана с подсетью.
Группы безопасности приложений имеют следующие ограничения:
Существуют ограничения на количество групп безопасности приложений, которые можно использовать в подписке, и другие ограничения, связанные с группами безопасности приложений.
Все сетевые интерфейсы, назначенные группе безопасности приложений, должны существовать в одной виртуальной сети, в которую входит первый сетевой интерфейс, назначенный группе безопасности приложений. Например, если группе безопасности приложений был первым назначен сетевой интерфейс с именем AsgWeb в виртуальной сети VNet1, все остальные сетевые интерфейсы, назначаемые ASGWeb, должны существовать в VNet1. Сетевые интерфейсы из разных виртуальных сетей нельзя добавлять в одну группу безопасности приложений.
Если вы указываете группу безопасности приложений в качестве источника и назначения в правиле безопасности, сетевые интерфейсы в обеих группах безопасности приложений должны существовать в одной виртуальной сети.
- Примером может быть ситуация, когда у AsgLogic есть сетевые интерфейсы из VNet1, а у AsgDb — сетевые интерфейсы из VNet2. В этом случае невозможно назначить AsgLogic источником и AsgDb в качестве назначения в правиле. Все сетевые интерфейсы для групп безопасности приложений источника и назначения должны существовать в одной и той же виртуальной сети.
Чтобы свести к минимуму количество требуемых правил безопасности и необходимость изменять правила, составьте план необходимых групп безопасности приложений и создайте правила, по возможности используя теги служб или группы безопасности приложений вместо отдельных IP-адресов или диапазонов IP-адресов.