Início Rápido: Criar um serviço de Private Link com o Azure PowerShell

Comece a criar um serviço Private Link que se refira ao seu serviço. Dê Private Link acesso ao seu serviço ou recurso implementado atrás de um Balanceador de Carga Standard do Azure. Os utilizadores do seu serviço têm acesso privado a partir da respetiva rede virtual.

Diagrama de recursos criados no início rápido do ponto final privado.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.

  • Azure Cloud Shell ou Azure PowerShell.

    Os passos neste início rápido executam os cmdlets Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos na Cloud Shell, selecione Abrir Cloudshell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e, em seguida, cole-o no Cloud Shell para executá-lo. Também pode executar o Cloud Shell a partir do portal do Azure.

    Também pode instalar Azure PowerShell localmente para executar os cmdlets. Os passos neste artigo requerem Azure PowerShell versão 5.4.1 ou posterior do módulo. Execute Get-Module -ListAvailable Az para localizar a versão instalada. Se precisar de atualizar, consulte Atualizar o módulo Azure PowerShell.

    Se executar o PowerShell localmente, execute Connect-AzAccount para ligar ao Azure.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.

Criar um grupo de recursos com New-AzResourceGroup:

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

Criar um balanceador de carga interno

Nesta secção, vai criar uma rede virtual e uma Balanceador de Carga do Azure interna.

Rede virtual

Nesta secção, vai criar uma rede virtual e uma sub-rede para alojar o balanceador de carga que acede ao seu serviço 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

Criar balanceador de carga standard

Esta secção descreve como pode criar e configurar os seguintes componentes do balanceador de carga:

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

Desativar política de rede

Antes de um serviço de ligação privada poder ser criado na rede virtual, a definição privateLinkServiceNetworkPolicies tem de ser desativada.

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

Nesta secção, crie um serviço de ligação privada que utilize o Balanceador de Carga do Azure Standard criado no passo anterior.

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

O seu serviço de ligação privada é criado e pode receber tráfego. Se quiser ver fluxos de tráfego, configure a aplicação por trás do balanceador de carga padrão.

Criar ponto final privado

Nesta secção, vai mapear o serviço de ligação privada para um ponto final privado. Uma rede virtual contém o ponto final privado do serviço de ligação privada. Esta rede virtual contém os recursos que acedem ao seu serviço de ligação privada.

Criar rede virtual de ponto final privado

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

Criar ponto final e ligação

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

Aprovar a ligação de ponto final privado

Nesta secção, vai aprovar a ligação que criou nos passos anteriores.

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

Endereço IP do ponto final privado

Nesta secção, encontrará o endereço IP do ponto final privado que corresponde ao balanceador de carga e ao serviço de ligação privada.

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

Limpar os recursos

Quando já não for necessário, pode utilizar o comando Remove-AzResourceGroup para remover o grupo de recursos, o balanceador de carga e os recursos restantes.

Remove-AzResourceGroup -Name 'test-rg'

Passos seguintes

Neste início rápido, irá:

  • Criou uma rede virtual e Balanceador de Carga do Azure internos.

  • Criou um serviço de ligação privada

Para saber mais sobre o Ponto final privado do Azure, continue para: