Краткое руководство. Создание частной конечной точки с помощью Azure PowerShell

Начало работы с Приватный канал Azure путем создания и использования частной конечной точки для безопасного подключения к веб-приложению служб приложение Azure.

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

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

Схема ресурсов, созданных в кратком руководстве по частной конечной точке.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Если у вас еще нет учетной записи Azure, создайте ее бесплатно.

  • Веб-приложение Azure с уровнем Премиум-версии 2 или планом для службы приложений более высокого уровня, развернуто в подписке Azure.

  • 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

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

  1. Используйте 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
    
  2. 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
    
  3. Затем свяжите конфигурацию подсети с виртуальной сетью с Set-AzVirtualNetwork.

    $virtualNetwork | Set-AzVirtualNetwork
    

Развертывание Бастиона Azure

Бастион Azure использует браузер для подключения к виртуальным машинам в виртуальной сети через безопасную оболочку (SSH) или протокол удаленного рабочего стола (RDP) с помощью частных IP-адресов. Виртуальные машины не нуждаются в общедоступных IP-адресах, клиентском программном обеспечении или специальной конфигурации. Дополнительные сведения о Бастионе Azure см. в статье Бастион Azure.

Примечание.

Почасовая цена начинается с момента развертывания Бастиона независимо от использования исходящих данных. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.

  1. Настройте подсеть Бастиона Azure для виртуальной сети. Эта подсеть зарезервирована исключительно для ресурсов Бастиона Azure и должна называться AzureBastionSubnet.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Теперь нужно настроить конфигурацию.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Создайте общедоступный 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
    
  4. Используйте команду New-AzBastion, чтобы создать новый узел Бастиона Azure уровня "Стандартный" в AzureBastionSubnet.

    $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.

В этом разделе описано следующее:

## 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) для исходящих подключений.

Проверка подключения к частной конечной точке

Используйте виртуальную машину, созданную ранее, для подключения к веб-приложению через частную конечную точку.

  1. В поле поиска в верхней части портала введите Виртуальная машина. Выберите Виртуальные машины.

  2. Выберите vm-1.

  3. На странице обзора для vm-1 выберите Подключение и перейдите на вкладку Бастион.

  4. Выберите Использовать бастион.

  5. Введите имя пользователя и пароль, которые вы применяли при создании виртуальной машины.

  6. Нажмите Подключиться.

  7. После подключения откройте PowerShell на сервере.

  8. Введите 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-адрес на предыдущих шагах. Этот адрес находится в подсети виртуальной сети, созданной ранее.

  9. В подключении бастиона к vm-1 откройте веб-браузер.

  10. Введите URL-адрес веб-приложения: https://webapp-1.azurewebsites.net.

    Если веб-приложение не было развернуто, вы получите следующую страницу веб-приложения по умолчанию:

    Снимок экрана: страница веб-приложения по умолчанию в браузере.

Очистка ресурсов

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

Remove-AzResourceGroup -Name 'test-rg'

Следующие шаги

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