Guia de Início Rápido: Criar um ponto de extremidade privado usando o Azure PowerShell

Introdução ao Link Privado do Azure ao criar e usar 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 Aplicativos 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 Microsoft Azure.

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

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Se você ainda não tiver uma conta do Azure, crie uma conta gratuitamente.

  • Um Aplicativo Web do Azure com um PremiumV2-tier ou um plano de serviço de aplicativo mais alto implantado em sua assinatura do Azure.

  • Azure Cloud Shell ou Azure PowerShell.

    As etapas desse início rápido executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o 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 no portal do Azure.

    Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. As etapas desse artigo exigem o módulo do Azure PowerShell versão 5.4.1 ou posterior. Execute Get-Module -ListAvailable Az para localizar a versão instalada. Se precisar atualizar, confira 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 no qual 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 em 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
    

Implantar o Azure Bastion

O Azure Bastion usa seu navegador para se conectar a VMs em sua rede virtual por meio do secure shell (SSH) ou protocolo da á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, confira Azure Bastion.

Observação

Os preços por hora começam a partir do momento em que o Bastion é implantado, independentemente do uso de dados de saída. Para saber mais, confira Preços e SKUs. Se você estiver implantando o Bastion como parte de um tutorial ou teste, é recomendável 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 os 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 bastion host usa o IP público para acessar o secure shell (SSH) e o protocolo da á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 do Azure Bastion de SKU Padrão no AzureBastionSubnet.

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

A implantação dos recursos do Bastion demora alguns minutos.

Criar um ponto de extremidade privado

Para configurar o ponto de extremidade privado e a conexão com a rede virtual é necessário um serviço do Azure que dê suporte a pontos de extremidade privado. Para os exemplos neste artigo, usaremos o WebApp dos Serviços de Aplicativo do Azure a partir dos pré-requisitos. Para saber mais sobre os serviços do Azure que dão suporte a um ponto de extremidade privado, confira Disponibilidade do Link Privado do Azure.

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

Importante

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

Nesta seção, você vai:

## 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ço de Aplicativo do Azure. Para obter mais informações sobre a configuração DNS de pontos de extremidade privados, confira a Configuração do DNS do Ponto de Extremidade Privado do Azure.

Nesta seção, você vai:

## 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ário ter uma máquina virtual de teste conectada à rede virtual.

Nesta seção, você vai:

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

Observação

Máquinas virtuais em uma rede virtual com um bastion host não precisam de endereços IP públicos. O 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 no bastion. Para obter mais informações, confira dissociar um endereço IP público de uma VM do Azure.

Observação

O Azure fornece um IP de acesso de saída padrão para VMs que não receberam um endereço IP público ou que estão no pool de back-end de um balanceador de carga do Azure básico interno. O mecanismo de 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 é desabilitado 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 de Gateway da NAT do Azure é atribuído à sub-rede da VM.

As VMs criadas por conjuntos de dimensionamento de máquinas virtuais no modo de orquestração flexível não têm acesso de saída padrão.

Para mais informações sobre conexões de saída no Azure, confira Acesso de saída padrão no Azure e Usar SNAT (conversão de endereços de rede de origem) para conexões de saída.

Testar a conectividade com o ponto de extremidade privado

Use a VM que você criou anteriormente para se conectar ao aplicativo Web no ponto de extremidade privado.

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

  2. Selecione vm-1.

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

  4. Selecione Usar Bastion.

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

  6. Selecione Conectar.

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

  8. Digite 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ê tiver escolhido 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 do Bastion com vm-1, abra o navegador Web.

  10. Insira a URL do seu aplicativo web, https://webapp-1.azurewebsites.net.

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

    Captura de tela que mostra a página padrão do aplicativo Web em um navegador.

Limpar os recursos

Quando o grupo de recursos, a rede virtual e os recursos restantes não forem mais necessários, use o comando Remove-AzResourceGroup para removê-los.

Remove-AzResourceGroup -Name 'test-rg'

Próximas etapas

Para obter mais informações sobre os serviços que dão suporte a um ponto de extremidade privado, confira: