Краткое руководство. Создание службы Приватного канала с помощью Azure PowerShell

Приступите к созданию службы приватного канала, которая ссылается на вашу службу. Предоставьте Приватному каналу доступ к службе или ресурсу, которые развернуты за Azure Load Balancer (цен. категория "Стандартный"). Пользователи службы имеют закрытый доступ из своей виртуальной сети.

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

Предварительные требования

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

  • Azure Cloud Shell или Azure PowerShell.

    Действия, описанные в этом кратком руководстве, выполняют командлеты Azure PowerShell в интерактивном режиме в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Открыть Cloudshell в правом верхнем углу блока кода. Выберите Копировать, чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.

    Вы также можете установить Azure PowerShell локально для выполнения командлетов. Действия, описанные в этой статье, требуют Azure PowerShell модуля версии 5.4.1 или более поздней. Выполните Get-Module -ListAvailable Az, чтобы узнать установленную версию. Если вам нужно выполнить обновление, см. раздел Обновление модуля Azure PowerShell.

    Если вы запускаете PowerShell локально, выполните команду Connect-AzAccount , чтобы подключиться к Azure.

Создание группы ресурсов

Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.

Создайте группу ресурсов с помощью командлета New-AzResourceGroup:

New-AzResourceGroup -Name 'test-rg' -Location 'eastus2'

Создание внутреннего балансировщика нагрузки

В этом разделе описано, как создать виртуальную сеть и внутреннюю Azure Load Balancer.

Виртуальная сеть

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

  • Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork.
## Create backend subnet config ##
$subnet = @{
    Name = 'subnet-1'
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create the virtual network ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig
}
$vnet = New-AzVirtualNetwork @net

Создание подсистемы балансировки нагрузки (цен. категория "Стандартный")

В этом разделе описано, как создать и настроить следующие компоненты подсистемы балансировки нагрузки:

  • Создайте с помощью командлета New-AzLoadBalancerFrontendIpConfig интерфейсный IP-адрес для интерфейсного пула IP-адресов. Этот IP-адрес получает входящий трафик в подсистеме балансировки нагрузки.

  • Создайте с помощью командлета New-AzLoadBalancerBackendAddressPoolConfig пул внутренних адресов для трафика, отправляемого из интерфейсного сервера подсистемы балансировки нагрузки. В этом пуле вы будете развертывать серверные виртуальные машины.

  • Создайте с помощью командлета Add-AzLoadBalancerProbeConfig пробу работоспособности, которая определяет работоспособность экземпляров серверной виртуальной машины.

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

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

## Place virtual network created in previous step into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'

## Create load balancer frontend configuration and place in variable. ##
$lbip = @{
    Name = 'frontend'
    PrivateIpAddress = '10.0.0.4'
    SubnetId = $vnet.subnets[0].Id
}
$feip = New-AzLoadBalancerFrontendIpConfig @lbip

## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'backend-pool'

## Create the health probe and place in variable. ##
$probe = @{
    Name = 'health-probe'
    Protocol = 'http'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
    RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe

## Create the load balancer rule and place in variable. ##
$lbrule = @{
    Name = 'http-rule'
    Protocol = 'tcp'
    FrontendPort = '80'
    BackendPort = '80'
    IdleTimeoutInMinutes = '15'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
}
$rule = New-AzLoadBalancerRuleConfig @lbrule -EnableTcpReset

## Create the load balancer resource. ##
$loadbalancer = @{
    ResourceGroupName = 'test-rg'
    Name = 'load-balancer'
    Location = 'eastus2'
    Sku = 'Standard'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
    LoadBalancingRule = $rule
    Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer

Отключение политики сети

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

## Place the subnet name into a variable. ##
$subnet = 'subnet-1'

## Place the virtual network configuration into a variable. ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net

## Set the policy as disabled on the virtual network. ##
($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq $subnet}).privateLinkServiceNetworkPolicies = "Disabled"

## Save the configuration changes to the virtual network. ##
$vnet | Set-AzVirtualNetwork

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

  • Создайте IP-конфигурацию службы "Приватный канал" с помощью командлета New-AzPrivateLinkServiceIpConfig.

  • Создайте службу "Приватный канал" с помощью командлета New-AzPrivateLinkService.

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'

## Create the IP configuration for the private link service. ##
$ipsettings = @{
    Name = 'ipconfig-1'
    PrivateIpAddress = '10.0.0.5'
    Subnet = $vnet.subnets[0]
}
$ipconfig = New-AzPrivateLinkServiceIpConfig @ipsettings

## Place the load balancer frontend configuration into a variable. ##
$par = @{
    Name = 'load-balancer'
    ResourceGroupName = 'test-rg'
}
$fe = Get-AzLoadBalancer @par | Get-AzLoadBalancerFrontendIpConfig

## Create the private link service for the load balancer. ##
$privlinksettings = @{
    Name = 'private-link-service'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    LoadBalancerFrontendIpConfiguration = $fe
    IpConfiguration = $ipconfig
}
New-AzPrivateLinkService @privlinksettings

Ваша служба приватного канала создана и может принимать трафик. Если вы хотите просмотреть потоки трафика, настройте приложение за подсистемой Load Balancer ценовой категории "Стандартный".

Создание частной конечной точки

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

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

  • Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork.
## Create backend subnet config ##
$subnet = @{
    Name = 'subnet-pe'
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create the virtual network ##
$net = @{
    Name = 'vnet-pe'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.1.0.0/16'
    Subnet = $subnetConfig
}
$vnetpe = New-AzVirtualNetwork @net

Создание конечной точки и подключения

  • С помощью командлета Get-AzPrivateLinkService поместите конфигурацию службы "Приватный канал", созданной ранее, в переменную для последующего использования.

  • С помощью командлета New-AzPrivateLinkServiceConnection создайте конфигурацию подключения.

  • С помощью командлета New-AzPrivateEndpoint создайте конечную точку.

## Place the private link service configuration into variable. ##
$par1 = @{
    Name = 'private-link-service'
    ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1

## Create the private link configuration and place in variable. ##
$par2 = @{
    Name = 'connection-1'
    PrivateLinkServiceId = $pls.Id
}
$plsConnection = New-AzPrivateLinkServiceConnection @par2

## Place the virtual network into a variable. ##
$par3 = @{
    Name = 'vnet-pe'
    ResourceGroupName = 'test-rg'
}
$vnetpe = Get-AzVirtualNetwork @par3

## Create private endpoint ##
$par4 = @{
    Name = 'private-endpoint'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnetpe.subnets[0]
    PrivateLinkServiceConnection = $plsConnection
}
New-AzPrivateEndpoint @par4 -ByManualRequest

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

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

## Place the private link service configuration into variable. ##
$par1 = @{
    Name = 'private-link-service'
    ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1

$par2 = @{
    Name = $pls.PrivateEndpointConnections[0].Name
    ServiceName = 'private-link-service'
    ResourceGroupName = 'test-rg'
    Description = 'Approved'
    PrivateLinkResourceType = 'Microsoft.Network/privateLinkServices'
}
Approve-AzPrivateEndpointConnection @par2

IP-адрес частной конечной точки

В этом разделе вы найдете IP-адрес частной конечной точки, соответствующий подсистеме балансировки нагрузки и службе приватного канала.

## Get private endpoint and the IP address and place in a variable for display. ##
$par1 = @{
    Name = 'private-endpoint'
    ResourceGroupName = 'test-rg'
    ExpandResource = 'networkinterfaces'
}
$pe = Get-AzPrivateEndpoint @par1

## Display the IP address by expanding the variable. ##
$pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
❯ $pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
10.1.0.4

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

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

Remove-AzResourceGroup -Name 'test-rg'

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

В этом кратком руководстве показано, как:

  • создать виртуальную сеть и внутренний экземпляр Azure Load Balancer;

  • создать службу приватного канала.

Чтобы узнать больше о частной конечной точке Azure, ознакомьтесь со следующей статьей: