Gestire reti virtuali di Azure e macchine virtuali Windows con Azure PowerShellManage Azure Virtual Networks and Windows Virtual Machines with Azure PowerShell

Le macchine virtuali di Azure usano la rete di Azure per la comunicazione di rete interna ed esterna.Azure virtual machines use Azure networking for internal and external network communication. Questa esercitazione illustra la distribuzione di due macchine virtuali e la configurazione della rete di Azure per tali VM.This tutorial walks through deploying two virtual machines and configuring Azure networking for these VMs. Gli esempi in questa esercitazione presuppongono che le VM ospitino un'applicazione Web con un back-end di database, ma nell'esercitazione non viene distribuita un'applicazione.The examples in this tutorial assume that the VMs are hosting a web application with a database back-end, however an application is not deployed in the tutorial. In questa esercitazione si apprenderà come:In this tutorial, you learn how to:

  • Creare una rete virtuale e una subnetCreate a virtual network and subnet
  • Creare un indirizzo IP pubblicoCreate a public IP address
  • Creare una macchina virtuale front-endCreate a front-end VM
  • Proteggono il traffico di reteSecure network traffic
  • Creare la VM back-endCreate back-end VM

Durante il completamento di questa esercitazione è possibile visualizzare queste risorse create:While completing this tutorial, you can see these resources created:

Rete virtuale con due subnet

  • myVNet: la rete virtuale usata dalle macchine virtuali per comunicare tra loro e con Internet.myVNet - The virtual network that the VMs use to communicate with each other and the internet.
  • myFrontendSubnet: la subnet in myVNet usata dalle risorse front-end.myFrontendSubnet - The subnet in myVNet used by the front-end resources.
  • myPublicIPAddress: l'indirizzo IP pubblico usato per accedere a myFrontendVM da Internet.myPublicIPAddress - The public IP address used to access myFrontendVM from the internet.
  • myFrontentNic: l'interfaccia di rete usata da myFrontendVM per comunicare con myBackendVM.myFrontentNic - The network interface used by myFrontendVM to communicate with myBackendVM.
  • myFrontendVM: la macchina virtuale usata per la comunicazione tra Internet e myBackendVM.myFrontendVM - The VM used to communicate between the internet and myBackendVM.
  • myBackendNSG: il gruppo di sicurezza di rete che controlla la comunicazione tra myFrontendVM e myBackendVM.myBackendNSG - The network security group that controls communication between the myFrontendVM and myBackendVM.
  • myBackendSubnet: la subnet associata a myBackendNSG e usata dalle risorse back-end.myBackendSubnet - The subnet associated with myBackendNSG and used by the back-end resources.
  • myBackendNic: l'interfaccia di rete usata da myBackendVM per comunicare con myFrontendVM.myBackendNic - The network interface used by myBackendVM to communicate with myFrontendVM.
  • myBackendVM: la macchina virtuale che usa la porta 1433 per comunicare con myFrontendVM.myBackendVM - The VM that uses port 1433 to communicate with myFrontendVM.

Questa esercitazione richiede il modulo Azure PowerShell 3.6 o versioni successive.This tutorial requires the Azure PowerShell module version 3.6 or later. Per trovare la versione, eseguire Get-Module -ListAvailable AzureRM.To find the version, run Get-Module -ListAvailable AzureRM. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module.

Panoramica della rete per le VMVM networking overview

Le reti virtuali di Azure consentono connessioni di rete sicure tra macchine virtuali, Internet e altri servizi di Azure come il database SQL di Azure.Azure virtual networks enable secure network connections between virtual machines, the internet, and other Azure services such as Azure SQL database. Le reti virtuali sono suddivise in segmenti logici denominati subnet.Virtual networks are broken down into logical segments called subnets. Le subnet vengono usate per controllare il flusso di rete e come limite di sicurezza.Subnets are used to control network flow, and as a security boundary. Quando si distribuisce una VM, questa include in genere un'interfaccia di rete virtuale collegata a una subnet.When deploying a VM, it generally includes a virtual network interface, which is attached to a subnet.

Creare una rete virtuale e una subnetCreate a virtual network and subnet

Per questa esercitazione viene creata una singola rete virtuale con due subnet:For this tutorial, a single virtual network is created with two subnets. una subnet front-end per ospitare un'applicazione Web e una subnet back-end per ospitare un server di database.A front-end subnet for hosting a web application, and a back-end subnet for hosting a database server.

Per poter creare una rete virtuale è prima necessario creare un gruppo di risorse con New-AzureRmResourceGroup.Before you can create a virtual network, create a resource group using New-AzureRmResourceGroup. L'esempio seguente crea un gruppo di risorse denominato myRGNetwork nella posizione EastUS:The following example creates a resource group named myRGNetwork in the EastUS location:

New-AzureRmResourceGroup -ResourceGroupName myRGNetwork -Location EastUS

Creare configurazioni subnetCreate subnet configurations

Creare una configurazione di subnet denominata myFrontendSubnet con New AzureRmVirtualNetworkSubnetConfig:Create a subnet configuration named myFrontendSubnet using New-AzureRmVirtualNetworkSubnetConfig:

$frontendSubnet = New-AzureRmVirtualNetworkSubnetConfig `
  -Name myFrontendSubnet `
  -AddressPrefix 10.0.0.0/24

Creare poi una configurazione di subnet denominata myBackendSubnet:And, create a subnet configuration named myBackendSubnet:

$backendSubnet = New-AzureRmVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

Creare una rete virtualeCreate virtual network

Creare una rete virtuale denominata myVNet che usa myFrontendSubnet e myBackendSubnet con New-AzureRmVirtualNetwork:Create a VNET named myVNet using myFrontendSubnet and myBackendSubnet using New-AzureRmVirtualNetwork:

$vnet = New-AzureRmVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $frontendSubnet, $backendSubnet

A questo punto, è stata creata una rete che è stata segmentata in due subnet, una per i servizi front-end e un'altra per i servizi back-end.At this point, a network has been created and segmented into two subnets, one for front-end services, and another for back-end services. Nella sezione successiva, le macchine virtuali verranno create e connesse a queste subnet.In the next section, virtual machines are created and connected to these subnets.

Creare un indirizzo IP pubblicoCreate a public IP address

Un indirizzo IP pubblico consente alle risorse di Azure di essere accessibili in Internet.A public IP address allows Azure resources to be accessible on the internet. Il metodo di allocazione dell'indirizzo IP pubblico può essere configurato come dinamico o statico.The allocation method of the public IP address can be configured as dynamic or static. Per impostazione predefinita, un indirizzo IP pubblico viene allocato in modo dinamico.By default, a public IP address is dynamically allocated. Gli indirizzi IP dinamici vengono rilasciati quando una VM viene deallocata.Dynamic IP addresses are released when a VM is deallocated. Questo comportamento determina la modifica dell'indirizzo IP durante qualsiasi operazione che includa la deallocazione di una VM.This behavior causes the IP address to change during any operation that includes a VM deallocation.

Il metodo di allocazione può essere impostato come statico affinché l'indirizzo IP resti assegnato a una macchina virtuale anche con lo stato deallocato.The allocation method can be set to static, which ensures that the IP address remains assigned to a VM, even during a deallocated state. Quando si usa un indirizzo IP con allocazione statica, l'indirizzo IP non può essere specificatoWhen using a statically allocated IP address, the IP address itself cannot be specified. e viene invece allocato da un pool di indirizzi disponibili.Instead, it is allocated from a pool of available addresses.

Creare un indirizzo IP pubblico denominato myPublicIPAddress con New AzureRmPublicIpAddress:Create a public IP address named myPublicIPAddress using New-AzureRmPublicIpAddress:

$pip = New-AzureRmPublicIpAddress `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -AllocationMethod Dynamic `
  -Name myPublicIPAddress

È possibile modificare il parametro -AllocationMethod impostandolo su Static per assegnare un indirizzo IP pubblico statico.You could change the -AllocationMethod parameter to Static to assign a static public IP address.

Creare una macchina virtuale front-endCreate a front-end VM

Per comunicare in una rete virtuale, una macchina virtuale deve avere un'interfaccia di rete (NIC) virtuale.For a VM to communicate in a virtual network, it needs a virtual network interface (NIC). Creare un'interfaccia di rete con New AzureRmNetworkInterface:Create a NIC using New-AzureRmNetworkInterface:

$frontendNic = New-AzureRmNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontendNic `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id

Impostare il nome utente e la password necessari per l'account amministratore della macchina virtuale con Get-Credential.Set the username and password needed for the administrator account on the VM using Get-Credential. Usare queste credenziali per connettersi alla macchina virtuale in una procedura aggiuntiva:You use these credentials to connect to the VM in additional steps:

$cred = Get-Credential

Creare le macchine virtuali con New-AzureRmVMConfig, Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Set-AzureRmVMOSDisk, Add-AzureRmVMNetworkInterface e New-AzureRmVM:Create the VMs using New-AzureRmVMConfig, Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Set-AzureRmVMOSDisk, Add-AzureRmVMNetworkInterface, and New-AzureRmVM:

$frontendVM = New-AzureRmVMConfig `
    -VMName myFrontendVM `
    -VMSize Standard_D1
$frontendVM = Set-AzureRmVMOperatingSystem `
    -VM $frontendVM `
    -Windows `
    -ComputerName myFrontendVM `
    -Credential $cred `
    -ProvisionVMAgent `
    -EnableAutoUpdate
$frontendVM = Set-AzureRmVMSourceImage `
    -VM $frontendVM `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
$frontendVM = Set-AzureRmVMOSDisk `
    -VM $frontendVM `
    -Name myFrontendOSDisk `
    -DiskSizeInGB 128 `
    -CreateOption FromImage `
    -Caching ReadWrite
$frontendVM = Add-AzureRmVMNetworkInterface `
    -VM $frontendVM `
    -Id $frontendNic.Id
New-AzureRmVM `
    -ResourceGroupName myRGNetwork `
    -Location EastUS `
    -VM $frontendVM

Proteggono il traffico di reteSecure network traffic

Un gruppo di sicurezza di rete (NSG) contiene un elenco di regole di sicurezza che consentono o rifiutano il traffico di rete verso le risorse connesse a reti virtuali di Azure.A network security group (NSG) contains a list of security rules that allow or deny network traffic to resources connected to Azure Virtual Networks (VNet). I gruppi di sicurezza di rete possono essere associati a subnet o singole interfacce di rete.NSGs can be associated to subnets or individual network interfaces. Quando un gruppo di sicurezza di rete è associato a un'interfaccia di rete, si applica solo alla VM associata.When an NSG is associated with a network interface, it applies only the associated VM. Quando un gruppo di sicurezza di rete è associato a una subnet, le regole si applicano a tutte le risorse connesse alla subnet.When an NSG is associated to a subnet, the rules apply to all resources connected to the subnet.

Regole dei gruppi di sicurezza di reteNetwork security group rules

Le regole dei gruppi di sicurezza di rete definiscono le porte di rete su cui il traffico viene consentito o negato.NSG rules define networking ports over which traffic is allowed or denied. Le regole possono includere intervalli di indirizzi IP di origine e di destinazione in modo da controllare il traffico tra subnet o sistemi specifici.The rules can include source and destination IP address ranges so that traffic is controlled between specific systems or subnets. Le regole dei gruppi di sicurezza di rete possono includere anche una priorità, compresa tra 1 e 4096.NSG rules also include a priority (between 1—and 4096). Le regole vengono valutate in ordine di priorità.Rules are evaluated in the order of priority. Una regola con priorità 100 viene valutata prima di una con priorità 200.A rule with a priority of 100 is evaluated before a rule with priority 200.

Tutti i gruppi di sicurezza di rete contengono un set di regole predefinite.All NSGs contain a set of default rules. Le regole predefinite non possono essere eliminate, ma poiché hanno la priorità più bassa, è possibile eseguirne l'override con le regole create dall'utente.The default rules cannot be deleted, but because they are assigned the lowest priority, they can be overridden by the rules that you create.

  • Rete virtuale: il traffico che ha origine e termina in una rete virtuale è consentito sia in ingresso che in uscita.Virtual network - Traffic originating and ending in a virtual network is allowed both in inbound and outbound directions.
  • Internet: il traffico in uscita è consentito, mentre il traffico in ingresso viene bloccato.Internet - Outbound traffic is allowed, but inbound traffic is blocked.
  • Servizio di bilanciamento del carico: viene consentito al servizio di bilanciamento del carico di Azure di verificare tramite probe l'integrità delle VM e delle istanze del ruolo.Load balancer - Allow Azure’s load balancer to probe the health of your VMs and role instances. Se non si usa un set con bilanciamento del carico, è possibile eseguire l'override di questa regola.If you are not using a load balanced set, you can override this rule.

Creare gruppi di sicurezza di reteCreate network security groups

Creare una regola in ingresso denominata myFrontendNSGRule per consentire il traffico Web in ingresso su myFrontendVM con New AzureRmNetworkSecurityRuleConfig:Create an inbound rule named myFrontendNSGRule to allow incoming web traffic on myFrontendVM using New-AzureRmNetworkSecurityRuleConfig:

$nsgFrontendRule = New-AzureRmNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

È possibile limitare il traffico interno verso myBackendVM solo da myFrontendVM creando un gruppo di sicurezza di rete per la subnet back-end.You can limit internal traffic to myBackendVM from only myFrontendVM by creating an NSG for the back-end subnet. Nell'esempio seguente viene creata una regola del gruppo di sicurezza di rete denominata myBackendNSGRule:The following example creates an NSG rule named myBackendNSGRule:

$nsgBackendRule = New-AzureRmNetworkSecurityRuleConfig `
  -Name myBackendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix 10.0.0.0/24 `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 1433 `
  -Access Allow

Aggiungere un gruppo di sicurezza di rete denominato myFrontendNSG con New-AzureRmNetworkSecurityGroup:Add a network security group named myFrontendNSG using New-AzureRmNetworkSecurityGroup:

$nsgFrontend = New-AzureRmNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

Aggiungere ora un gruppo di sicurezza di rete denominato myBackendNSG con New-AzureRmNetworkSecurityGroup:Now, add a network security group named myBackendNSG using New-AzureRmNetworkSecurityGroup:

$nsgBackend = New-AzureRmNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackendNSG `
  -SecurityRules $nsgBackendRule

Aggiungere i gruppi di sicurezza di rete alle subnet:Add the network security groups to the subnets:

$vnet = Get-AzureRmVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Name myVNet
$frontendSubnet = $vnet.Subnets[0]
$backendSubnet = $vnet.Subnets[1]
$frontendSubnetConfig = Set-AzureRmVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myFrontendSubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend
$backendSubnetConfig = Set-AzureRmVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myBackendSubnet `
  -AddressPrefix $backendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgBackend
Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

Creare una macchina virtuale back-endCreate a back-end VM

Il modo più semplice per creare la macchina virtuale back-end per questa esercitazione consiste nell'usare un'immagine di SQL Server.The easiest way to create the back-end VM for this tutorial is by using a SQL Server image. Questa esercitazione si limita a creare la VM con il server di database e non include informazioni sull'accesso al database.This tutorial only creates the VM with the database server, but doesn't provide information about accessing the database.

Creare myBackendNic:Create myBackendNic:

$backendNic = New-AzureRmNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackendNic `
  -SubnetId $vnet.Subnets[1].Id

Impostare il nome utente e la password necessari per l'account amministratore della VM con Get-Credential:Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

Creare myBackendVM:Create myBackendVM:

$backendVM = New-AzureRmVMConfig `
  -VMName myBackendVM `
  -VMSize Standard_D1
$backendVM = Set-AzureRmVMOperatingSystem `
  -VM $backendVM `
  -Windows `
  -ComputerName myBackendVM `
  -Credential $cred `
  -ProvisionVMAgent `
  -EnableAutoUpdate
$backendVM = Set-AzureRmVMSourceImage `
  -VM $backendVM `
  -PublisherName MicrosoftSQLServer `
  -Offer SQL2016SP1-WS2016 `
  -Skus Enterprise `
  -Version latest
$backendVM = Set-AzureRmVMOSDisk `
  -VM $backendVM `
  -Name myBackendOSDisk `
  -DiskSizeInGB 128 `
  -CreateOption FromImage `
  -Caching ReadWrite
$backendVM = Add-AzureRmVMNetworkInterface `
  -VM $backendVM `
  -Id $backendNic.Id
New-AzureRmVM `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -VM $backendVM

L'immagine, in cui è installato SQL Server, non viene usata in questa esercitazione.The image that is used has SQL Server installed, but is not used in this tutorial. È inclusa per illustrare come è possibile configurare una VM per il traffico Web e una VM per la gestione di database.It is included to show you how you can configure a VM to handle web traffic and a VM to handle database management.

Passaggi successiviNext steps

In questa esercitazione sono state create e protette reti di Azure in relazione a macchine virtuali.In this tutorial, you created and secured Azure networks as related to virtual machines.

  • Creare una rete virtuale e una subnetCreate a virtual network and subnet
  • Creare un indirizzo IP pubblicoCreate a public IP address
  • Creare una macchina virtuale front-endCreate a front-end VM
  • Proteggono il traffico di reteSecure network traffic
  • Creare una macchina virtuale back-endCreate a back-end VM

Passare all'esercitazione successiva per informazioni sul monitoraggio della protezione dei dati nelle macchine virtuali con Backup di Azure.Advance to the next tutorial to learn about monitoring securing data on virtual machines using Azure backup.