Partilhar via


Guia de início rápido: criar um ponto de extremidade privado usando o Azure PowerShell

Comece a usar o Azure Private Link criando e usando um ponto de extremidade privado para se conectar com segurança a um aplicativo Web dos Serviços de Aplicativo do Azure.

Neste início rápido, crie um ponto de extremidade privado para um aplicativo Web dos Serviços de Aplicativo do Azure e, em seguida, crie e implante uma máquina virtual (VM) para testar a conexão privada.

Você pode criar pontos de extremidade privados para vários serviços do Azure, como o SQL do Azure e o Armazenamento do Azure.

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

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Se ainda não tiver uma conta do Azure, crie uma conta gratuitamente.

  • Um aplicativo Web do Azure com um plano de serviço de aplicativo de camada PremiumV2 ou superior, implantado em sua assinatura do Azure.

  • Azure Cloud Shell ou Azure PowerShell.

    As etapas neste início rápido executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir Cloudshell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell de dentro do portal do Azure.

    Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. As etapas neste artigo exigem o módulo do Azure PowerShell versão 5.4.1 ou posterior. Execute Get-Module -ListAvailable Az para encontrar a versão instalada. Se você precisar atualizar, consulte Atualizar o módulo do Azure PowerShell.

    Se você executar o PowerShell localmente, execute Connect-AzAccount para se conectar ao Azure.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contêiner lógico onde os recursos do Azure são implantados e gerenciados.

Crie um grupo de recursos com New-AzResourceGroup:

$rg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rg

Criar uma rede virtual

  1. Use New-AzVirtualNetwork para criar uma rede virtual chamada vnet-1 com prefixo de endereço IP 10.0.0.0/16 no grupo de recursos test-rg e no local eastus2.

    $vnet = @{
        Name = 'vnet-1'
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        AddressPrefix = '10.0.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. O Azure implanta recursos em uma sub-rede dentro de uma rede virtual. Use Add-AzVirtualNetworkSubnetConfig para criar uma configuração de sub-rede chamada subnet-1 com prefixo de endereço 10.0.0.0/24.

    $subnet = @{
        Name = 'subnet-1'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. Em seguida, associe a configuração da sub-rede à rede virtual com Set-AzVirtualNetwork.

    $virtualNetwork | Set-AzVirtualNetwork
    

Implementar o Azure Bastion

O Azure Bastion usa seu navegador para se conectar a VMs em sua rede virtual por shell seguro (SSH) ou protocolo de área de trabalho remota (RDP) usando seus endereços IP privados. As VMs não precisam de endereços IP públicos, software cliente ou configuração especial. Para obter mais informações sobre o Azure Bastion, consulte Azure Bastion.

Nota

O preço por hora começa a partir do momento em que o Bastion é implantado, independentemente do uso de dados de saída. Para obter mais informações, consulte Preços e SKUs. Se você estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos excluir esse recurso depois de terminar de usá-lo.

  1. Configure uma sub-rede do Azure Bastion para sua rede virtual. Essa sub-rede é reservada exclusivamente para recursos do Azure Bastion e deve ser chamada AzureBastionSubnet.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Defina a configuração.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Crie um endereço IP público para o Azure Bastion. O host bastion usa o IP público para acessar o shell seguro (SSH) e o protocolo de área de trabalho remota (RDP) pela porta 443.

    $ip = @{
            ResourceGroupName = 'test-rg'
            Name = 'public-ip'
            Location = 'eastus2'
            AllocationMethod = 'Static'
            Sku = 'Standard'
            Zone = 1,2,3
    }
    New-AzPublicIpAddress @ip
    
  4. Use o comando New-AzBastion para criar um novo host Standard SKU Azure Bastion na AzureBastionSubnet.

    $bastion = @{
        Name = 'bastion'
        ResourceGroupName = 'test-rg'
        PublicIpAddressRgName = 'test-rg'
        PublicIpAddressName = 'public-ip'
        VirtualNetworkRgName = 'test-rg'
        VirtualNetworkName = 'vnet-1'
        Sku = 'Basic'
    }
    New-AzBastion @bastion
    

Os recursos do Bastion demoram vários minutos a ser implementados.

Criar um ponto final privado

Um serviço do Azure que dê suporte a pontos de extremidade privados é necessário para configurar o ponto de extremidade privado e a conexão com a rede virtual. Para os exemplos neste artigo, estamos usando um WebApp dos Serviços de Aplicativo do Azure a partir dos pré-requisitos. Para obter mais informações sobre os serviços do Azure que dão suporte a um ponto de extremidade privado, consulte Disponibilidade do Link Privado do Azure.

Um ponto de extremidade privado pode ter um endereço IP estático ou atribuído dinamicamente.

Importante

Você deve ter um WebApp dos Serviços de Aplicativo do Azure implantado anteriormente para prosseguir com as etapas neste artigo. Para obter mais informações, veja os Pré-requisitos.

Nesta seção, você:

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

Configurar a zona DNS privada

Uma zona DNS privada é usada para resolver o nome DNS do ponto de extremidade privado na rede virtual. Para este exemplo, estamos usando as informações de DNS para um aplicativo Web dos Serviços de Aplicativo do Azure, para obter mais informações sobre a configuração DNS de pontos de extremidade privados, consulte Configuração DNS do Ponto de Extremidade Privado do Azure.

Nesta seção, você:

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

Criar uma máquina virtual de teste

Para verificar o endereço IP estático e a funcionalidade do ponto de extremidade privado, é necessária uma máquina virtual de teste conectada à sua rede virtual.

Nesta seção, você:

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

Nota

As máquinas virtuais em uma rede virtual com um host bastion não precisam de endereços IP públicos. Bastion fornece o IP público, e as VMs usam IPs privados para se comunicar dentro da rede. Você pode remover os IPs públicos de qualquer VM em redes virtuais hospedadas por bastion. Para obter mais informações, consulte Dissociar um endereço IP público de uma VM do Azure.

Nota

O Azure fornece um IP de acesso de saída padrão para VMs que não recebem um endereço IP público ou estão no pool de back-end de um balanceador de carga básico interno do Azure. O mecanismo IP de acesso de saída padrão fornece um endereço IP de saída que não é configurável.

O IP de acesso de saída padrão é desativado quando um dos seguintes eventos acontece:

  • Um endereço IP público é atribuído à VM.
  • A VM é colocada no pool de back-end de um balanceador de carga padrão, com ou sem regras de saída.
  • Um recurso do Gateway NAT do Azure é atribuído à sub-rede da VM.

As VMs que você cria usando conjuntos de dimensionamento de máquina virtual no modo de orquestração flexível não têm acesso de saída padrão.

Para obter mais informações sobre conexões de saída no Azure, consulte Acesso de saída padrão no Azure e Usar SNAT (Conversão de Endereço de Rede de Origem) para conexões de saída.

Testar a conectividade com o ponto de extremidade privado

Use a máquina virtual que você criou anteriormente para se conectar ao aplicativo Web através do ponto de extremidade privado.

  1. Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais.

  2. Selecione vm-1.

  3. Na página de visão geral do vm-1, selecione Conectar e, em seguida, selecione a guia Bastion .

  4. Selecione Usar bastião.

  5. Insira o nome de usuário e a senha que você usou quando criou a VM.

  6. Selecione Ligar.

  7. Depois de se conectar, abra o PowerShell no servidor.

  8. Introduzir nslookup webapp-1.azurewebsites.net. Você recebe uma mensagem semelhante ao exemplo a seguir:

    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
    

    Um endereço IP privado de 10.0.0.10 é retornado para o nome do aplicativo Web se você escolher o endereço IP estático nas etapas anteriores. Esse endereço está na sub-rede da rede virtual criada anteriormente.

  9. Na conexão bastion com vm-1, abra o navegador da Web.

  10. Introduza o URL da sua aplicação Web, https://webapp-1.azurewebsites.net.

    Se o seu aplicativo Web não tiver sido implantado, você obterá a seguinte página padrão do aplicativo Web:

    Captura de ecrã da página predefinida da aplicação Web num browser.

Clean up resources (Limpar recursos)

Quando não for mais necessário, você poderá usar o comando Remove-AzResourceGroup para remover o grupo de recursos, a rede virtual e os recursos restantes.

Remove-AzResourceGroup -Name 'test-rg'

Próximos passos

Para obter mais informações sobre os serviços que oferecem suporte a pontos de extremidade privados, consulte: