Início rápido: usar o Azure PowerShell para criar uma rede virtual
Esse início rápido mostra como criar uma rede virtual usando o Azure PowerShell. Em seguida, crie duas máquinas virtuais (VMs) na rede, conecte-se com segurança às VMs a partir da Internet e inicie a comunicação privada entre as VMs.
A rede virtual é o bloco de construção fundamental para redes privadas no Azure. A Rede Virtual do Azure permite que os recursos do Azure, como VMs, se comuniquem com segurança entre si e com a Internet.
Pré-requisitos
Uma conta do Azure com uma assinatura ativa. Você pode criar uma conta gratuitamente.
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, em seguida, 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
Primeiro, use New-AzResourceGroup para criar um grupo de recursos para hospedar a rede virtual. Execute o seguinte código para criar um grupo de recursos chamado test-rg na região eastus2 do Azure:
$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 o prefixo de endereço IP 10.0.0.0/16 no grupo de recursos test-rg e na localização 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 em uma rede virtual. Use Add-AzVirtualNetworkSubnetConfig para criar uma configuração de sub-rede chamada subnet-1 com o 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
Associe a configuração da sub-rede à rede virtual usando 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 Secure Shell (SSH) ou Remote Desktop Protocol (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 Bastion, consulte O que é o Azure Bastion?.
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 estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos que você exclua esse recurso após terminar de usá-lo.
Configure uma sub-rede do Bastion para sua rede virtual. Essa sub-rede é reservada exclusivamente para recursos do 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 Bastion. O Bastion host usa o IP público para acessar SSH e 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 Bastion host de SKU Standard em 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 leva cerca de 10 minutos. É possível criar VMs na próxima seção enquanto o Bastion é implantado na rede virtual.
Criar máquinas virtuais
Use New-AzVM para criar duas VMs chamadas vm-1 e vm-2 na sub-rede vm-2 da rede virtual. Quando as credenciais forem solicitadas, insira os nomes de usuário e as senhas das VMs.
Para criar a primeira VM, execute o seguinte código:
# Set the administrator and password for the VM. ## $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 VM. ## $nic = @{ Name = "nic-1" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-1" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-1" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
Para criar a segunda VM, execute o seguinte código:
# Set the administrator and password for the VM. ## $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 VM. ## $nic = @{ Name = "nic-2" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-2" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-2" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
Dica
Você pode usar a opção -AsJob
para criar uma VM em segundo plano enquanto continua com as outras tarefas. Por exemplo, execute New-AzVM @vm1 -AsJob
. Quando o Azure começa a criar a VM em segundo plano, você obtém algo como a seguinte saída:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
O Azure leva alguns minutos para criar as VMs. Quando o Azure termina de criar as VMs, ele retorna a saída para o PowerShell.
Observação
As VMs 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 da 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.
Conectar-se a uma máquina virtual
No portal, pesquise e selecione Máquinas virtuais.
Na página Máquinas virtuais, selecione vm-1.
Nas informações Visão geral da vm-1, selecione Conectar.
Na página Conectar à máquina virtual, selecione a guia Bastion.
Selecione Usar Bastion.
Insira o nome de usuário e a senha criados quando vocês criou a máquina virtual e selecione Conectar.
Iniciar a comunicação entre as VMs
No prompt do Bash para vm-1, insira
ping -c 4 vm-2
.Você recebe uma resposta semelhante à seguinte mensagem:
azureuser@vm-1:~$ ping -c 4 vm-2 PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data. 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
Feche a conexão do Bastion para vm-1.
Repita as etapas em Conectar-se a uma máquina virtual para se conectar à vm-2.
No prompt do Bash para vm-2, insira
ping -c 4 vm-1
.Você recebe uma resposta semelhante à seguinte mensagem:
azureuser@vm-2:~$ ping -c 4 vm-1 PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data. 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
Feche a conexão do Bastion com a vm-2.
Limpar os recursos
Quando terminar com a rede virtual e as VMs, use Remove-AzResourceGroup para remover o grupo de recursos e todos os seus recursos:
Remove-AzResourceGroup -Name 'test-rg' -Force
Próximas etapas
Nesse início rápido, você criou uma rede virtual com uma sub-rede padrão que contém duas VMs. Você implantou o Azure Bastion e o usou para se conectar às VMs e se comunicou com segurança entre elas. Para saber mais sobre configurações de rede virtual, confira Criar, alterar ou excluir uma rede virtual.