Как назначить группы безопасности сети в Azure с помощью PowerShell

Опубликовано: 2 Марта, 2023
Как назначить группы безопасности сети в Azure с помощью PowerShell

Безопасность является главным приоритетом для любого поставщика облачных услуг, и она должна иметь такой же приоритет для любого ИТ-отдела при переносе своих приложений и инфраструктуры в облако. При использовании Microsoft Azure вам будут представлены различные функции безопасности во всех формах и формах. В сегодняшней статье мы рассмотрим базовую группу, называемую группами безопасности сети (сокращенно NSG). Они необходимы для защиты трафика в любой заданной подсети в виртуальной сети (VNet, начиная с этого момента в этой статье) и в виртуальных сетевых интерфейсах (vNIC).

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

Мы будем управлять функцией групп безопасности сети с помощью PowerShell. Существует два различных командлета для связывания существующей группы безопасности сети с vNIC или виртуальной сетью, и в этой статье мы рассмотрим оба из них.

Вы всегда можете создать свои группы безопасности сети во время предоставления виртуальных машин. Их наличие можно увидеть на самой первой странице процесса подготовки, а затем снова на странице Networking мастера. На этой последней странице мы можем определить, нужна ли нам NSG вообще, выбрав , и использовать интерфейс или для настройки правил безопасности.

Понимание основных командлетов PowerShell

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

Эти командлеты помогут вам составить список имен групп ресурсов (первая строка), список сетевых интерфейсов (вторая строка) и список групп безопасности сети (третья строка). Мы всегда можем перечислить запущенные виртуальные машины и их vNIC, используя четвертый командлет. Имейте в виду, что они используют параметр , который использовался в первом командлете.

  • Get-азресаурцеграуп | Выберите имя группы ресурсов
  • Get-AzNetworkInterface -ResourceGroupName «<ResourceGroupName>»
  • Get-AzNetworkSecurityGroup | Выберите имя, имя группы ресурсов, местоположение
  • Get-AzVM | выберите имя,имя группы ресурсов,местоположение -ExpandProperty NetworkProfile | фл

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

Управление группами безопасности сети на уровне виртуального сетевого интерфейса

Если вы хотите что-то более конкретное и применяете NSG на уровне виртуальной машины, в этом случае командлет Set-AzureRMNetworkInterface будет вашим предпочтительным инструментом для выполнения этой задачи.

Первый шаг — получить группы безопасности сети и сохранить конкретную группу безопасности сети в переменной. Эти два командлета являются обязательными:

Get-AzNetworkSecurityGroup | Выберите имя, имя группы ресурсов, расположение $rg = 'имя группы ресурсов' $nsg = Get-AzNetworkSecurityGroup - имя группы ресурсов $rg -Name '<NSGName>'

Второй шаг — составить список всех доступных vNIC. Сначала найдите vNIC, подключенный к виртуальной машине, к которой вы хотите применить NSG. Затем нам нужно добавить vNIC в переменную PowerShell.

Get-AzVM | выберите имя,имя группы ресурсов,местоположение -ExpandProperty NetworkProfile | fl $vNIC = Get-AzNetworkInterface -ResourceGroupName $rg -Name 'ap-app1-vm001268'

Последний шаг — использовать переменные, которые мы создали на предыдущем шаге, и применить изменения. Мы собираемся сделать это, используя переменную $vNIC, которую мы только что заполнили и настроили группу безопасности сети. Мы собираемся использовать переменную $nsg, которую мы определили на первом шаге этого раздела. Процесс применения изменений заключается в запуске Set-AzuresNetworkInterface в качестве вывода переменной $vNIC.

$vNIC.NetworkSecurityGroup = $nsg $vNIC | Set — азнетворкинтерфаце

Результат командлета PowerShell можно легко проверить на портале Azure. Нажмите «Сеть» (пункт 1) виртуальной машины, которую мы выбрали, чтобы применить группу безопасности сети. Сетевой интерфейс будет отображаться справа (элемент 2) рядом с информацией о сети/подсети, общедоступном IP-адресе и частном IP-адресе. В пункте 3 мы можем проверить, что группа безопасности сети связана с интерфейсом.

Управление группами безопасности сети на уровне виртуальной сети

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

Для назначения групп безопасности сети уровню виртуальной сети или подсети используется командлет Set-AzureRMVirtualNetworkSubnetConfig, который связывает группу безопасности сети с виртуальной сетью (VNet).

Get-AzNetworkSecurityGroup | Выберите имя, имя группы ресурсов, расположение $nsg = Get-AzNetworkSecurityGroup - имя группы ресурсов $rg -Name '<NSGName>'
Get-AzVirtualNetwork | выберите имя $VNet = get-azvirtualnetwork -Name '<имя виртуальной сети>'
Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet | выберите Name,AddressPrefix $VNetSubnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name по умолчанию
Set-AzVirtualNetworkSubnetConfig -Name $VNetSubnet.Name -VirtualNetwork $VNet -AddressPrefix $VNetSubnet.AddressPrefix -NetworkSecurityGroup $nsg $VNet | Set — азвиртуалнетворк

Результаты можно увидеть на портале Azure. Войдя на портал, щелкните виртуальную сеть, щелкните Подсети (элемент 1), выберите нужную подсеть (элемент 2), проверьте группу безопасности сети, чтобы узнать, связана ли группа безопасности сети с подсетью.