Руководство по Создание и администрирование виртуальных сетей Azure для виртуальных машин Windows с помощью Azure PowerShell

Область применения: ✔️ Виртуальные машины Windows

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

  • Создание виртуальной сети и подсети
  • Создание общедоступного IP-адреса
  • Создание интерфейсной виртуальной машины
  • защищают сетевой трафик;
  • Создание внутренней виртуальной машины

Обзор сети виртуальной машины

Виртуальные сети Azure позволяют устанавливать безопасные сетевые подключения между виртуальными машинами, в Интернете, а также между другими службами Azure, такими как База данных SQL Azure. Виртуальные сети разбиты на логические сегменты — подсети. Подсети позволяют контролировать поток сетевого трафика. Это своего рода периметр безопасности. При развертывании виртуальная машина обычно содержит виртуальный сетевой интерфейс, подключенный к подсети.

Во время работы с этим руководством вы создадите указанные ниже ресурсы.

Виртуальная сеть с двумя подсетями

  • myVNet. Виртуальная сеть, которую используют виртуальные машины для взаимодействия между собой и в Интернете.
  • myFrontendSubnet. Подсеть в myVNet, используемая ресурсами внешних интерфейсов.
  • myPublicIPAddress. Общедоступный IP-адрес, используемый для доступа к myFrontendVM из Интернета.
  • myFrontendNic. Сетевой интерфейс, используемый myFrontendVM для взаимодействия с myBackendVM.
  • myFrontendVM. Виртуальная машина, используемая для взаимодействия Интернета и myBackendVM.
  • myBackendNSG. Группа безопасности сети, которая управляет взаимодействием между myFrontendVM и myBackendVM.
  • myBackendSubnet. Подсеть, связанная с myBackendNSG и используемая внутренними ресурсами.
  • myBackendNic. Сетевой интерфейс, используемый myBackendVM для взаимодействия с myFrontendVM.
  • myBackendVM. Виртуальная машина, использующая порт 1433 для взаимодействия с myFrontendVM.

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить его.

Создание подсети

В этом руководстве создается виртуальная сеть с двумя подсетями: интерфейсная подсеть для размещения веб-приложения и внутренняя подсеть для размещения сервера базы данных.

Прежде чем создать виртуальную машину, выполните командлет New-AzResourceGroup для создания группы ресурсов. Следующий пример позволяет создать группу ресурсов myRGNetwork в расположении EastUS.

New-AzResourceGroup -ResourceGroupName myRGNetwork -Location EastUS

Создайте конфигурацию подсети с именем myFrontendSubnet, выполнив командлет New-AzVirtualNetworkSubnetConfig.

$frontendSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name myFrontendSubnet `
  -AddressPrefix 10.0.0.0/24

И создайте конфигурацию подсети с именем myBackendSubnet.

$backendSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

Создание виртуальной сети

Создайте виртуальную сеть myVNet, использующую myFrontendSubnet и myBackendSubnet, выполнив командлет New-AzVirtualNetwork.

$vnet = New-AzVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $frontendSubnet, $backendSubnet

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

Создание общедоступного IP-адреса

Общедоступный IP-адрес обеспечивает доступность ресурсов Azure в Интернете. Метод распределения общедоступного IP-адреса может быть динамическим или статическим. По умолчанию выделяется динамический общедоступный IP-адрес. После освобождения виртуальной машины освобождаются также и динамические IP-адреса. Таким образом, IP-адреса изменяются во время каждой операции с освобождением виртуальной машины.

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

Создайте общедоступный IP-адрес с именем myPublicIPAddress, выполнив командлет New-AzPublicIpAddress.

$pip = New-AzPublicIpAddress `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -AllocationMethod Dynamic `
  -Name myPublicIPAddress

Вы можете изменить параметр -AllocationMethod на Static, чтобы присвоить статический IP-адрес.

Создание интерфейсной виртуальной машины

Для взаимодействия в виртуальной сети виртуальной машине требуется виртуальный сетевой адаптер. Создайте сетевой адаптер, выполнив командлет New-AzNetworkInterface.

$frontendNic = New-AzNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontend `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id

Настройте на виртуальной машине имя пользователя и пароль для учетной записи администратора с помощью командлета Get-Credential. Эти учетные данные используются для подключения к виртуальной машине на дополнительных шагах:

$cred = Get-Credential

Создайте виртуальные машины с помощью командлета New-AzVM.

New-AzVM `
   -Credential $cred `
   -Name myFrontend `
   -PublicIpAddressName myPublicIPAddress `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -Size Standard_D1 `
   -SubnetName myFrontendSubnet `
   -VirtualNetworkName myVNet

защищают сетевой трафик;

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

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

Правила группы безопасности сети определяют сетевые порты, через которые разрешен или запрещен трафик. Эти правила также могут включать исходные и целевые диапазоны IP-адресов, что позволяет контролировать трафик между определенными системами и подсетями. Правилам также присваивается приоритет (от 1 до 4096), и они оцениваются в порядке приоритета. Правило с приоритетом 100 оценивается перед правилом с приоритетом 200.

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

  • Виртуальная сеть. Входящий и исходящий трафик виртуальной сети разрешен в обоих направлениях.
  • Интернет. Исходящий трафик разрешен, но входящий трафик заблокирован.
  • Подсистема балансировки нагрузки. Разрешает Azure Load Balancer инициировать проверку работоспособности виртуальных машин и экземпляров роли. Если набор балансировки нагрузки не используется, это правило можно переопределить.

Создание групп безопасности сети

Создайте правило входящих подключений с именем myFrontendNSGRule, чтобы разрешить входящий веб-трафик в myFrontendVM, выполнив командлет New-AzNetworkSecurityRuleConfig.

$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

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

$nsgBackendRule = New-AzNetworkSecurityRuleConfig `
  -Name myBackendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix 10.0.0.0/24 `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 1433 `
  -Access Allow

Добавьте группу безопасности сети myFrontendNSG с помощью командлета New-AzNetworkSecurityGroup.

$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

Теперь добавьте группу безопасности сети myBackendNSG с помощью командлета New-AzNetworkSecurityGroup.

$nsgBackend = New-AzNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackendNSG `
  -SecurityRules $nsgBackendRule

Добавьте группы безопасности сети к подсетям:

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Name myVNet
$frontendSubnet = $vnet.Subnets[0]
$backendSubnet = $vnet.Subnets[1]
$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myFrontendSubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend
$backendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myBackendSubnet `
  -AddressPrefix $backendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgBackend
Set-AzVirtualNetwork -VirtualNetwork $vnet

Создание внутренней виртуальной машины.

Внутреннюю виртуальную машину для этого руководства проще всего создать с помощью образа SQL Server. В этом учебнике лишь создается виртуальная машина с сервером базы данных, и не приводятся сведения о доступе к базе данных.

Создайте myBackendNic.

$backendNic = New-AzNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackend `
  -SubnetId $vnet.Subnets[1].Id

Настройте на виртуальной машине имя пользователя и пароль для учетной записи администратора с помощью командлета Get-Credential:

$cred = Get-Credential

Создайте myBackendVM.

New-AzVM `
   -Credential $cred `
   -Name myBackend `
   -ImageName "MicrosoftSQLServer:SQL2016SP1-WS2016:Enterprise:latest" `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -SubnetName MyBackendSubnet `
   -VirtualNetworkName myVNet

В образе в этом примере система SQL Server установлена, однако в данном руководстве она не используется. Она показывает, как можно настроить виртуальную машину для обработки веб-трафика, а также для обработки операций управления базой данных.

Дальнейшие действия

В этом руководстве вы создали и защитили сети Azure с точки зрения виртуальных машин.

  • Создание виртуальной сети и подсети
  • Создание общедоступного IP-адреса
  • Создание интерфейсной виртуальной машины
  • защищают сетевой трафик;
  • Создание внутренней виртуальной машины.

Дополнительные сведения о защите дисков виртуальной машины см. в статье Резервное копирование и аварийное восстановление дисков.