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.
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.
Para obter mais informações e um exemplo, consulte Guia de início rápido: criar um aplicativo Web ASP.NET Core no Azure.
O exemplo de webapp neste artigo é chamado webapp-1. Substitua o exemplo pelo nome do seu aplicativo web.
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
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
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
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.
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
Defina a configuração.
$virtualNetwork | Set-AzVirtualNetwork
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
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ê:
Crie uma conexão de serviço de link privado com New-AzPrivateLinkServiceConnection.
Crie o ponto de extremidade privado com New-AzPrivateEndpoint.
Opcionalmente, crie a configuração IP estática do ponto de extremidade privado com New-AzPrivateEndpointIpConfiguration.
## 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ê:
Criar uma nova zona DNS privada do Azure com New-AzPrivateDnsZone
Vincule a zona DNS à rede virtual criada anteriormente com New-AzPrivateDnsVirtualNetworkLink
Criar uma configuração de zona DNS com New-AzPrivateDnsZoneConfig
Criar um grupo de zonas DNS com New-AzPrivateDnsZoneGroup
## 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ê:
Criar uma credencial de entrada para a máquina virtual com Get-Credential
Criar uma interface de rede para a máquina virtual com New-AzNetworkInterface
Crie uma configuração de máquina virtual com New-AzVMConfig, Set-AzVMOperatingSystem, Set-AzVMSourceImage e Add-AzVMNetworkInterface
Criar a máquina virtual com New-AzVM
## 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.
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais.
Selecione vm-1.
Na página de visão geral do vm-1, selecione Conectar e, em seguida, selecione a guia Bastion .
Selecione Usar bastião.
Insira o nome de usuário e a senha que você usou quando criou a VM.
Selecione Ligar.
Depois de se conectar, abra o PowerShell no servidor.
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.
Na conexão bastion com vm-1, abra o navegador da Web.
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:
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: