Планирование и реализация групп безопасности сети (NSG) и групп безопасности приложений (ASG)

Завершено

Группа безопасности сети Azure позволяет фильтровать трафик между ресурсами Azure в виртуальной сети Azure. В этой группе содержатся правила безопасности, которые разрешают или запрещают исходящий и входящий сетевой трафик нескольких типов ресурсов Azure. Для каждого правила можно указать источник и назначение, порт и протокол.

Группы безопасности сети (NSG)

Правила безопасности

Группа безопасности сети содержит столько правил, сколько нужно, в пределах ограничений подписки Azure. В каждом правиле указываются следующие свойства:

Свойство Описание
Имя. Уникальное имя в пределах группы безопасности сети. Имя может содержать до 80 символов. Он должен начинаться с символа слова, и он должен заканчиваться словом или "_". Имя может содержать символы слов или ".", "-", "_".
Приоритет Значение в диапазоне от 100 до 4096. Правила обрабатываются в порядке приоритета. Числа обрабатываются по возрастанию, так как меньшие числа имеют более высокий приоритет. Если показатель трафика соответствует установленному в правиле, обработка останавливается. В результате все правила с более низким приоритетом (большие числа) и тем же атрибутом,что и правила с высоким приоритетом, не обрабатываются.
Правила безопасности По умолчанию Azure получают наибольшее число с самым низким приоритетом, чтобы гарантировать, что пользовательские правила всегда обрабатываются первым.
Источник или назначение Любой или конкретный IP-адрес, блок бесклассовой междоменной маршрутизации (CIDR) (например, 10.0.0.0/24), тег службы или группа безопасности приложений. При указании адреса ресурса Azure необходимо указать частный IP-адрес, назначенный ресурсу. Группы безопасности сети обрабатываются после того, как Azure преобразует общедоступный IP-адрес в частный для входящего трафика, и до того, как Azure преобразует частный IP-адрес в общедоступный для исходящего трафика. При указании диапазона, тега службы или группы безопасности приложений требуется меньше правил безопасности. Возможность указать несколько отдельных IP-адресов и диапазонов (нельзя указать несколько тегов служб или групп приложений) в правиле относится к расширенным правилам безопасности. Расширенные правила безопасности можно создавать только в группах безопасности сети, развернутых с помощью модели Resource Manager. Нельзя одновременно задать несколько IP-адресов и их диапазонов в группах безопасности сети, созданных с помощью классической модели развертывания.
Протокол TCP, UDP, ICMP, ESP, AH или "Любой". Протоколы ESP и AH в настоящее время недоступны через портал Azure, но могут использоваться с помощью шаблонов Azure Resource Manager.
Направление Определяет тип трафика (входящий или исходящий), к которому применяется правило.
Диапазон портов Можно задать отдельный порт или их диапазон. Например, вы можете указать 80 или 10000–10005. Если указать диапазон, можно создавать меньше правил безопасности. Расширенные правила безопасности можно создавать только в группах безопасности сети, развернутых с помощью модели Resource Manager. Нельзя задать несколько портов или их диапазонов в одном и том же правиле безопасности в группах безопасности сети, созданных с помощью классической модели развертывания.
Действие Разрешить или запретить доступ

Правила безопасности оцениваются и применяются на основе пяти кортежей (1. источник, 2. исходный порт, 3. назначение, 4. порт назначения и 5. протокол). Создать два правила безопасности с одинаковым приоритетом и направлением нельзя. Запись потока создается для имеющихся подключений. Обмен данными разрешен или запрещен в зависимости от состояния подключения записи потока. С помощью записи потока можно отслеживать состояние группы безопасности сети. Если вы задаете правило безопасности для исходящего трафика по любому адресу, например, через порт 80, устанавливать правило безопасности входящего трафика для ответа на исходящий трафик не обязательно. Если связь инициируется извне, достаточно задать правило безопасности для входящего трафика. Обратное также верно. Если через порт разрешено поступление входящего трафика, задавать правило безопасности исходящего трафика для ответа на трафик через порт не требуется.

Существующие подключения могут не прерываться при удалении правила безопасности, разрешающего подключение. Изменение правил группы безопасности сети влияет только на новые подключения. При создании нового правила или обновлении существующего правила в группе безопасности сети оно будет применяться только к новым подключениям. Существующие подключения не переоценены новыми правилами.

Как группы безопасности сети фильтруют трафик

В виртуальную сеть Azure можно развернуть ресурсы из нескольких служб Azure. Вы можете связать не более одной группы безопасности сети с каждой подсетью виртуальной сети и сетевым интерфейсом на виртуальной машине. Одну и ту же группу безопасности сети можно связать с любым выбранным количеством подсетей или сетевых интерфейсов. На следующем рисунке показаны различные сценарии развертывания групп безопасности сети для разрешения сетевого трафика в Интернет через TCP-порт 80 и из интернета:

Схема, показывающая пример развертывания групп безопасности сети для разрешения сетевого трафика через 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: трафик разрешен виртуальной машине 4, так как группа безопасности сети не связана с подсетью 3 или сетевым интерфейсом в виртуальной машине. Весь трафик пропускается через подсеть и сетевой интерфейс, если с ними не связана группа безопасности сети.

Исходящий трафик

Для исходящего трафика Azure сначала обрабатывает правила в группе безопасности сети, связанной с сетевым интерфейсом, если таковой имеется, а затем правила в группе безопасности сети, связанной с подсетью, если таковая имеется. Этот процесс также включает в себя трафик внутри подсети.

  • VM1: обрабатываются правила безопасности в NSG2 . Правило безопасности 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-адреса и множество наборов правил, позволяя вам сосредоточиться на бизнес-логике. Чтобы лучше понять группы безопасности приложений, рассмотрим следующий пример:

Схема, на которой показан пример групп безопасности сети Azure и групп безопасности приложений.

На предыдущем рисунке NIC1 и NIC2 — это члены группы безопасности приложений AsgWeb. NIC3 — это член группы безопасности приложений AsgLogic. NIC4 — это член группы безопасности приложений AsgDb. Хотя каждый сетевой интерфейс (сетевой адаптер) в этом примере является членом только одной группы безопасности сети, сетевой интерфейс может быть членом нескольких групп безопасности приложений до ограничений Azure. Ни один из сетевых интерфейсов не имеет связанных групп безопасности сети. NSG1 связана с обеими подсетями и содержит следующие правила.

Allow-HTTP-Inbound-Internet

Это правило требуется для разрешения трафика из Интернета на веб-серверы. Так как входящий трафик из Интернета запрещен правилом безопасности DenyAllInbound по умолчанию, для групп безопасности приложений AsgLogic или AsgDb не требуется дополнительное правило.

Приоритет Источник Исходные порты Назначение Порты назначения Протокол Открыть
100 Интернет * AsgWeb 80 TCP Разрешить

Deny-Database-All

Так как правило безопасности по умолчанию AllowVNetInBound разрешает весь обмен данными между ресурсами в одной и той же виртуальной сети, это правило необходимо для запрета трафика из всех ресурсов.

Приоритет Источник Исходные порты Назначение Порты назначения Протокол Открыть
120 * * AsgDb 1433 Любой Запрет

Allow-Database-BusinessLogic

Это правило разрешает трафик из группы безопасности приложений AsgLogic в группу безопасности приложений AsgDb. Приоритет для этого правила выше, чем приоритет правила Deny-Database-All. Таким образом, это правило обрабатывается до правила Deny-Database-All, поэтому трафик из группы безопасности приложений AsgLogic разрешен, тогда как весь остальной трафик запрещен.

Приоритет Источник Исходные порты Назначение Порты назначения Протокол Открыть
110 AsgLogic * AsgDb 1433 TCP Разрешить

Сетевые интерфейсы, которые являются членами группы безопасности приложений, применяют правила, которые указывают его в качестве источника или назначения. Правила не влияют на другие сетевые интерфейсы. Если сетевой интерфейс не является членом группы безопасности приложений, правило не применяется к сетевому интерфейсу, даже если группа безопасности сети связана с подсетью.

Группы безопасности приложений имеют следующие ограничения:

  • Существуют ограничения на количество групп безопасности приложений, которые можно использовать в подписке, и другие ограничения, связанные с группами безопасности приложений.

  • Все сетевые интерфейсы, назначенные группе безопасности приложений, должны существовать в той же виртуальной сети, где размещался первый сетевой интерфейс, назначенный этой группе безопасности приложений. Например, если группе безопасности приложений был первым назначен сетевой интерфейс с именем AsgWeb в виртуальной сети VNet1, все остальные сетевые интерфейсы, назначаемые ASGWeb, должны существовать в VNet1. Сетевые интерфейсы из разных виртуальных сетей нельзя добавлять в одну группу безопасности приложений.

  • При указании группы безопасности приложений в качестве источника и назначения в правиле безопасности сетевые интерфейсы в обеих группах безопасности приложения должны существовать в одной виртуальной сети.

    • Примером будет, если в AsgLogic были сетевые интерфейсы из VNet1 и AsgDb были сетевые интерфейсы из виртуальной сети 2. В этом случае невозможно назначить AsgLogic источником и AsgDb в качестве назначения в правиле. Все сетевые интерфейсы для групп безопасности приложений источника и назначения должны существовать в одной и той же виртуальной сети.

Чтобы свести к минимуму количество требуемых правил безопасности и необходимость изменять правила, составьте план необходимых групп безопасности приложений и создайте правила, по возможности используя теги служб или группы безопасности приложений вместо отдельных IP-адресов или диапазонов IP-адресов.