Поделиться через


Быстрый старт: Создание службы Private Link с использованием Azure PowerShell

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

Diagram of resources created in private endpoint quickstart.

Предпосылки

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

  • Azure Cloud Shell или Azure PowerShell.

    The steps in this quickstart run the Azure PowerShell cmdlets interactively in 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 и управление ими.

Create a resource group with New-AzResourceGroup:

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

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

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

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

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

## 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

Создание стандартной подсистемы балансировки нагрузки

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

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

  • Create a back-end address pool with New-AzLoadBalancerBackendAddressPoolConfig for traffic sent from the frontend of the load balancer. This pool is where your backend virtual machines are deployed.

  • Создайте проверку состояния с использованием 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

In this section, create a private link service that uses the Standard Azure Load Balancer created in the previous step.

## 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

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

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

В этом разделе вы сопоставляете службу приватной ссылки с частной конечной точкой. Виртуальная сеть содержит частную конечную точку для сервиса Private Link. This virtual network contains the resources that access your private link service.

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

## 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'

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

In this quickstart, you:

  • Создали виртуальную сеть и внутренний Azure Load Balancer.

  • Создание сервиса частных ссылок

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