Краткое руководство. Создание частной конечной точки с помощью Azure PowerShell
Начало работы с Приватный канал Azure путем создания и использования частной конечной точки для безопасного подключения к веб-приложению служб приложение Azure.
В этом кратком руководстве создайте частную конечную точку для веб-приложения служб приложение Azure, а затем создайте и разверните виртуальную машину для проверки частного подключения.
Вы можете создавать частные конечные точки для различных служб Azure, таких как Azure SQL и служба хранилища Azure.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Если у вас еще нет учетной записи Azure, создайте ее бесплатно.
Веб-приложение Azure с уровнем Премиум-версии 2 или планом для службы приложений более высокого уровня, развернуто в подписке Azure.
Дополнительные сведения и пример см . в кратком руководстве по созданию веб-приложения ASP.NET Core в Azure.
Пример веб-приложения в этой статье называется webapp-1. Замените его именем своего веб-приложения.
Azure Cloud Shell или Azure PowerShell.
Действия, описанные в этом кратком руководстве, запускают командлеты Azure PowerShell в интерактивном режиме в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloudshell в правом верхнем углу блока кода. Выберите "Копировать", чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
Вы также можете установить Azure PowerShell локально для выполнения командлетов. Для действий, описанных в этой статье, требуется модуль Azure PowerShell версии 5.4.1 или более поздней. Выполните
Get-Module -ListAvailable Az
, чтобы узнать установленную версию. Если вам нужно обновить модуль Azure PowerShell, см . статью об обновлении модуля Azure PowerShell.Если вы запускаете PowerShell локально, выполните команду
Connect-AzAccount
для подключения к Azure.
Создание или изменение группы ресурсов
Группа ресурсов Azure — это логический контейнер, в котором выполняется развертывание ресурсов Azure и управление ими.
Создайте группу ресурсов с помощью командлета New-AzResourceGroup:
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Создание виртуальной сети
Используйте New-AzVirtualNetwork для создания виртуальной сети с именем vnet-1 с префиксом IP-адреса 10.0.0.0.0/16 в группе ресурсов test-rg и расположении eastus2.
$vnet = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
Azure развертывает ресурсы в подсети в виртуальной сети. Используйте Add-AzVirtualNetworkSubnetConfig, чтобы создать конфигурацию подсети с именем subnet-1 с префиксом адреса 10.0.0.0/24.
$subnet = @{ Name = 'subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Затем свяжите конфигурацию подсети с виртуальной сетью с Set-AzVirtualNetwork.
$virtualNetwork | Set-AzVirtualNetwork
Развертывание Бастиона Azure
Бастион Azure использует браузер для подключения к виртуальным машинам в виртуальной сети через безопасную оболочку (SSH) или протокол удаленного рабочего стола (RDP) с помощью частных IP-адресов. Виртуальные машины не нуждаются в общедоступных IP-адресах, клиентском программном обеспечении или специальной конфигурации. Дополнительные сведения о Бастионе Azure см. в статье Бастион Azure.
Примечание.
Почасовая цена начинается с момента развертывания Бастиона независимо от использования исходящих данных. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.
Настройте подсеть Бастиона Azure для виртуальной сети. Эта подсеть зарезервирована исключительно для ресурсов Бастиона Azure и должна называться AzureBastionSubnet.
$subnet = @{ Name = 'AzureBastionSubnet' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.1.0/26' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Теперь нужно настроить конфигурацию.
$virtualNetwork | Set-AzVirtualNetwork
Создайте общедоступный IP-адрес для Бастиона Azure. Узел бастиона использует общедоступный IP-адрес для доступа к защищенной оболочке (SSH) и протоколу удаленного рабочего стола (RDP) через порт 443.
$ip = @{ ResourceGroupName = 'test-rg' Name = 'public-ip' Location = 'eastus2' AllocationMethod = 'Static' Sku = 'Standard' Zone = 1,2,3 } New-AzPublicIpAddress @ip
-
$bastion = @{ Name = 'bastion' ResourceGroupName = 'test-rg' PublicIpAddressRgName = 'test-rg' PublicIpAddressName = 'public-ip' VirtualNetworkRgName = 'test-rg' VirtualNetworkName = 'vnet-1' Sku = 'Basic' } New-AzBastion @bastion
Развертывание ресурсов Бастиона занимает несколько минут.
Создание частной конечной точки
Служба Azure, поддерживающая частные конечные точки, необходима для настройки частной конечной точки и подключения к виртуальной сети. В примерах, приведенных в этой статье, мы используем веб-приложение веб-приложения служб приложение Azure из предварительных требований. Дополнительные сведения о службах Azure, поддерживающих частную конечную точку, см. в статье Доступность Приватного канала Azure.
Частная конечная точка может иметь статически или динамически назначаемый IP-адрес.
Внимание
Для выполнения действий, описанных в этой статье, необходимо выполнить ранее развернутые приложение Azure Services WebApp. Дополнительные сведения см. в разделе Необходимые условия.
В этом разделе описано следующее:
Создадите подключение службы приватного канала с помощью командлета New-AzPrivateLinkServiceConnection.
создадите частную конечную точку с помощью командлета New-AzPrivateEndpoint;
при необходимости создадите конфигурацию статических IP-адресов частной конечной точки с помощью командлета New-AzPrivateEndpointIpConfiguration.
## Place the previously created webapp into a variable. ##
$webapp = Get-AzWebApp -ResourceGroupName test-rg -Name webapp-1
## Create the private endpoint connection. ##
$pec = @{
Name = 'connection-1'
PrivateLinkServiceId = $webapp.ID
GroupID = 'sites'
}
$privateEndpointConnection = New-AzPrivateLinkServiceConnection @pec
## Place the virtual network you created previously into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'
## Create the private endpoint. ##
$pe = @{
ResourceGroupName = 'test-rg'
Name = 'private-endpoint'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
PrivateLinkServiceConnection = $privateEndpointConnection
}
New-AzPrivateEndpoint @pe
Настройка частной зоны DNS
Частная зона DNS используется для разрешения DNS-имени частной конечной точки в виртуальной сети. В этом примере мы используем сведения DNS для веб-приложения служб приложение Azure Services, чтобы получить дополнительные сведения о конфигурации DNS частных конечных точек, см. в разделе конфигурации DNS частной конечной точки Azure.
В этом разделе описано следующее:
Создадите частную зону Azure DNS с помощью командлета New-AzPrivateDnsZone
Свяжете зону DNS с ранее созданной виртуальной сетью с помощью командлета New-AzPrivateDnsVirtualNetworkLink
Создадите конфигурацию зоны DNS с помощью командлета New-AzPrivateDnsZoneConfig
Создадите группу зон DNS с помощью командлета New-AzPrivateDnsZoneGroup
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'
## Create the private DNS zone. ##
$zn = @{
ResourceGroupName = 'test-rg'
Name = 'privatelink.azurewebsites.net'
}
$zone = New-AzPrivateDnsZone @zn
## Create a DNS network link. ##
$lk = @{
ResourceGroupName = 'test-rg'
ZoneName = 'privatelink.azurewebsites.net'
Name = 'dns-link'
VirtualNetworkId = $vnet.Id
}
$link = New-AzPrivateDnsVirtualNetworkLink @lk
## Configure the DNS zone. ##
$cg = @{
Name = 'privatelink.azurewebsites.net'
PrivateDnsZoneId = $zone.ResourceId
}
$config = New-AzPrivateDnsZoneConfig @cg
## Create the DNS zone group. ##
$zg = @{
ResourceGroupName = 'test-rg'
PrivateEndpointName = 'private-endpoint'
Name = 'zone-group'
PrivateDnsZoneConfig = $config
}
New-AzPrivateDnsZoneGroup @zg
Создание тестовой виртуальной машины
Чтобы проверить статический IP-адрес и функциональные возможности частной конечной точки, требуется тестовая виртуальная машина, подключенная к виртуальной сети.
В этом разделе описано следующее:
создадите учетные данные для входа для виртуальной машины с помощью командлета Get-Credential;
Создадите сетевой интерфейс для виртуальной машины с помощью командлета New-AzNetworkInterface
Создадите конфигурацию виртуальной машины с помощью командлетов New-AzVMConfig, Set-AzVMOperatingSystem, Set-AzVMSourceImage и Add-AzVMNetworkInterface
Создадите виртуальную машину с помощью командлета New-AzVM
## Create the credential for the virtual machine. Enter a username and password at the prompt. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name vnet-1 -ResourceGroupName test-rg
## Create a network interface for the virtual machine. ##
$nic = @{
Name = 'nic-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
## Create the configuration for the virtual machine. ##
$vm1 = @{
VMName = 'vm-1'
VMSize = 'Standard_DS1_v2'
}
$vm2 = @{
ComputerName = 'vm-1'
Credential = $cred
}
$vm3 = @{
PublisherName = 'MicrosoftWindowsServer'
Offer = 'WindowsServer'
Skus = '2022-Datacenter'
Version = 'latest'
}
$vmConfig =
New-AzVMConfig @vm1 | Set-AzVMOperatingSystem -Windows @vm2 | Set-AzVMSourceImage @vm3 | Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine. ##
New-AzVM -ResourceGroupName 'test-rg' -Location 'eastus2' -VM $vmConfig
Примечание.
Виртуальные машины в виртуальной сети с узлом бастиона не требуют общедоступных IP-адресов. Бастион предоставляет общедоступный IP-адрес, а виртуальные машины используют частные IP-адреса для обмена данными в сети. Вы можете удалить общедоступные IP-адреса из любых виртуальных машин в размещенных виртуальных сетях бастиона. Дополнительные сведения см. в разделе "Отсообщение общедоступного IP-адреса" с виртуальной машины Azure.
Примечание.
Azure предоставляет IP-адрес исходящего доступа по умолчанию для виртуальных машин, которые либо не назначены общедоступным IP-адресом, либо находятся в серверном пуле внутренней подсистемы балансировки нагрузки Azure. Механизм IP-адреса исходящего трафика по умолчанию предоставляет исходящий IP-адрес, который нельзя настроить.
IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:
- Общедоступный IP-адрес назначается виртуальной машине.
- Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
- Ресурс шлюза NAT Azure назначается подсети виртуальной машины.
Виртуальные машины, созданные с помощью масштабируемых наборов виртуальных машин в гибком режиме оркестрации, не имеют исходящего доступа по умолчанию.
Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.
Проверка подключения к частной конечной точке
Используйте виртуальную машину, созданную ранее, для подключения к веб-приложению через частную конечную точку.
В поле поиска в верхней части портала введите Виртуальная машина. Выберите Виртуальные машины.
Выберите vm-1.
На странице обзора для vm-1 выберите "Подключиться" и перейдите на вкладку Бастион .
Выберите Использовать бастион.
Введите имя пользователя и пароль, которые вы применяли при создании виртуальной машины.
Нажмите Подключиться.
После подключения откройте PowerShell на сервере.
Введите
nslookup webapp-1.azurewebsites.net
. Вы получите сообщение, аналогичное следующему примеру:Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: webapp-1.privatelink.azurewebsites.net Address: 10.0.0.10 Aliases: webapp-1.azurewebsites.net
Частный IP-адрес 10.0.0.10 возвращается для имени веб-приложения, если вы выбрали статический IP-адрес на предыдущих шагах. Этот адрес находится в подсети виртуальной сети, созданной ранее.
В подключении бастиона к vm-1 откройте веб-браузер.
Введите URL-адрес веб-приложения:
https://webapp-1.azurewebsites.net
.Если веб-приложение не было развернуто, вы получите следующую страницу веб-приложения по умолчанию:
Очистка ресурсов
При отсутствии необходимости можно использовать команду Remove-AzResourceGroup для удаления группы ресурсов, виртуальной сети и оставшихся ресурсов.
Remove-AzResourceGroup -Name 'test-rg'
Следующие шаги
Дополнительные сведения о службах, поддерживающих частную конечную точку, см. в следующей статье: