Samouczek: tworzenie sieci wirtualnych platformy Azure i zarządzanie nimi za pomocą programu Azure PowerShell na maszynach wirtualnych z systemem WindowsTutorial: Create and manage Azure virtual networks for Windows virtual machines with Azure PowerShell

Maszyny wirtualne platformy Azure korzystają z sieci platformy Azure do wewnętrznej i zewnętrznej komunikacji sieciowej.Azure virtual machines use Azure networking for internal and external network communication. Ten samouczek przedstawia proces wdrażania dwóch maszyn wirtualnych i konfigurowania dla nich sieci platformy Azure.This tutorial walks through deploying two virtual machines and configuring Azure networking for these VMs. W przykładach w tym samouczku założono, że maszyny wirtualne hostują aplikację internetową z zapleczem bazy danych, jednak wdrożenie aplikacji nie zostało omówione w samouczku.The examples in this tutorial assume that the VMs are hosting a web application with a database back-end, however an application isn't deployed in the tutorial. Ten samouczek zawiera informacje na temat wykonywania następujących czynności:In this tutorial, you learn how to:

  • Tworzenie sieci wirtualnej i podsieciCreate a virtual network and subnet
  • Tworzenie publicznego adresu IPCreate a public IP address
  • Tworzenie maszyny wirtualnej frontonuCreate a front-end VM
  • Zabezpieczanie ruchu sieciowegoSecure network traffic
  • Tworzenie maszyny wirtualnej zapleczaCreate back-end VM

Omówienie sieci maszyn wirtualnychVM networking overview

Sieci wirtualne platformy Azure umożliwiają nawiązywanie bezpiecznych połączeń sieciowych pomiędzy maszynami wirtualnymi, Internetem i innymi usługami platformy Azure, na przykład bazą danych Azure SQL Database.Azure virtual networks enable secure network connections between virtual machines, the internet, and other Azure services such as Azure SQL database. Sieci wirtualne są podzielone na logiczne segmenty nazywane podsieciami.Virtual networks are broken down into logical segments called subnets. Podsieci są używane do sterowania przepływem sieciowym oraz pełnią funkcję granicy zabezpieczeń.Subnets are used to control network flow, and as a security boundary. Wdrażana maszyna wirtualna zwykle zawiera wirtualny interfejs sieciowy dołączony do podsieci.When deploying a VM, it generally includes a virtual network interface, which is attached to a subnet.

Podczas pracy z tym samouczkiem zostaną utworzone następujące zasoby:While completing this tutorial, you can see these resources created:

Sieć wirtualna z dwiema podsieciami

  • myVNet — sieć wirtualna, której maszyny wirtualne używają do komunikacji między sobą i z Internetem.myVNet - The virtual network that the VMs use to communicate with each other and the internet.
  • myFrontendSubnet — podsieć w sieci myVNet używana przez zasoby frontonu.myFrontendSubnet - The subnet in myVNet used by the front-end resources.
  • myPublicIPAddress — publiczny adres IP używany do uzyskania dostępu do maszyny myFrontendVM za pośrednictwem Internetu.myPublicIPAddress - The public IP address used to access myFrontendVM from the internet.
  • myFrontendNic — interfejs sieciowy używany przez maszynę wirtualną myFrontendVM do komunikacji z maszyną myBackendVM.myFrontendNic - The network interface used by myFrontendVM to communicate with myBackendVM.
  • myFrontendVM — maszyna wirtualna używana do komunikacji pomiędzy Internetem a maszyną myBackendVM.myFrontendVM - The VM used to communicate between the internet and myBackendVM.
  • myBackendNSG — sieciowa grupa zabezpieczeń, która kontroluje komunikację między maszyną myFrontendVM a maszyną myBackendVM.myBackendNSG - The network security group that controls communication between the myFrontendVM and myBackendVM.
  • myBackendSubnet — podsieć skojarzona z grupą myBackendNSG i używana przez zasoby zaplecza.myBackendSubnet - The subnet associated with myBackendNSG and used by the back-end resources.
  • myBackendNic — interfejs sieciowy używany przez maszynę wirtualną myBackendVM do komunikacji z maszyną myFrontendVM.myBackendNic - The network interface used by myBackendVM to communicate with myFrontendVM.
  • myBackendVM — maszyna wirtualna, która korzysta z portu 1433 do komunikacji z maszyną myFrontendVM.myBackendVM - The VM that uses port 1433 to communicate with myFrontendVM.

Uruchamianie usługi Azure Cloud ShellLaunch Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.It has common Azure tools preinstalled and configured to use with your account.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com/powershell.You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. Wybierz przycisk Kopiuj, aby skopiować bloki kodu, wklej je do usługi Cloud Shell, a następnie naciśnij klawisz Enter, aby je uruchomić.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Tworzenie podsieciCreate subnet

W tym samouczku zostanie utworzona jedna sieć wirtualna z dwoma podsieciami.For this tutorial, a single virtual network is created with two subnets. Zostanie utworzona podsieć frontonu do hostowania aplikacji internetowej oraz podsieć zaplecza do hostowania serwera bazy danych.A front-end subnet for hosting a web application, and a back-end subnet for hosting a database server.

Przed utworzeniem sieci wirtualnej należy utworzyć grupę zasobów za pomocą polecenia New-AzResourceGroup.Before you can create a virtual network, create a resource group using New-AzResourceGroup. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myRGNetwork w lokalizacji EastUS:The following example creates a resource group named myRGNetwork in the EastUS location:

New-AzResourceGroup -ResourceGroupName myRGNetwork -Location EastUS

Utwórz konfigurację podsieci o nazwie myFrontendSubnet za pomocą polecenia New-AzVirtualNetworkSubnetConfig:Create a subnet configuration named myFrontendSubnet using New-AzVirtualNetworkSubnetConfig:

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

Następnie utwórz konfigurację podsieci o nazwie myBackendSubnet:And, create a subnet configuration named myBackendSubnet:

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

Tworzenie sieci wirtualnejCreate virtual network

Utwórz sieć wirtualną o nazwie myVNet na podstawie konfiguracji myFrontendSubnet i myBackendSubnet za pomocą polecenia New-AzVirtualNetwork:Create a VNET named myVNet using myFrontendSubnet and myBackendSubnet using New-AzVirtualNetwork:

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

W ten sposób utworzono sieć i podzielono ją na dwie podsieci — jedną dla usług frontonu i jedną dla usług zaplecza.At this point, a network has been created and segmented into two subnets, one for front-end services, and another for back-end services. W kolejnej sekcji zostaną utworzone maszyny wirtualne połączone z tymi podsieciami.In the next section, virtual machines are created and connected to these subnets.

Tworzenie publicznego adresu IPCreate a public IP address

Publiczny adres IP umożliwia dostęp do zasobów platformy Azure w Internecie.A public IP address allows Azure resources to be accessible on the internet. Można skonfigurować dynamiczną lub statyczną alokację publicznego adresu IP.The allocation method of the public IP address can be configured as dynamic or static. Domyślnie publiczny adres IP jest przydzielany dynamicznie.By default, a public IP address is dynamically allocated. Dynamiczne adresy IP są zwalniane, gdy przydział maszyny wirtualnej zostaje cofnięty.Dynamic IP addresses are released when a VM is deallocated. Dlatego adres IP zmienia się podczas każdej operacji, która obejmuje cofnięcie przydziału maszyny wirtualnej.This behavior causes the IP address to change during any operation that includes a VM deallocation.

Można też ustawić statyczną metodę alokacji, co gwarantuje, że adres IP pozostaje przydzielony do maszyny wirtualnej nawet wówczas, gdy jej przydział zostanie cofnięty.The allocation method can be set to static, which makes sure that the IP address stays assigned to a VM, even during a deallocated state. Jeśli używasz statycznego adresu IP, nie możesz określić samego adresu IP.If you are using a static IP address, the IP address itself can't be specified. Zamiast tego jest on przydzielany z puli dostępnych adresów.Instead, it's allocated from a pool of available addresses.

Na koniec utwórz publiczny adres IP o nazwie myPublicIPAddress, korzystając z polecenia New-AzPublicIpAddress:Create a public IP address named myPublicIPAddress using New-AzPublicIpAddress:

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

Możesz zmienić parametr -AllocationMethod na Static, aby przypisać statyczny publiczny adres IP.You could change the -AllocationMethod parameter to Static to assign a static public IP address.

Tworzenie maszyny wirtualnej frontonuCreate a front-end VM

Aby maszyna wirtualna mogła komunikować się w sieci wirtualnej, potrzebuje wirtualnego interfejsu sieciowego.For a VM to communicate in a virtual network, it needs a virtual network interface (NIC). Utwórz interfejs sieciowy za pomocą polecenia New-AzNetworkInterface:Create a NIC using New-AzNetworkInterface:

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

Ustaw nazwę użytkownika i hasło potrzebne dla konta administratora na maszynie wirtualnej przy użyciu polecenia Get-Credential.Set the username and password needed for the administrator account on the VM using Get-Credential. Te poświadczenia służą do nawiązywania połączenia z maszyną wirtualną w dodatkowych krokach:You use these credentials to connect to the VM in additional steps:

$cred = Get-Credential

Utwórz maszyny wirtualne za pomocą polecenia New-AzVM.Create the VMs using New-AzVM.

New-AzVM `
   -Credential $cred `
   -Name myFrontend `
   -PublicIpAddressName myPublicIPAddress `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -Size Standard_D1 `
   -SubnetName myFrontendSubnet `
   -VirtualNetworkName myVNet

Zabezpieczanie ruchu sieciowegoSecure network traffic

Sieciowa grupa zabezpieczeń (NSG, network security group) zawiera listę reguł zabezpieczeń, które blokują lub zezwalają na ruch sieciowy do zasobów połączonych z usługami Azure Virtual Network (VNet).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). Sieciowe grupy zabezpieczeń można skojarzyć z podsieciami lub pojedynczymi interfejsami sieciowymi.NSGs can be associated to subnets or individual network interfaces. Sieciowa grupa zabezpieczeń skojarzona z interfejsem sieciowym jest stosowana wyłącznie do skojarzonej maszyny wirtualnej.An NSG is associated with a network interface only applies to the associated VM. Jeśli sieciowa grupa zabezpieczeń jest skojarzona z podsiecią, te reguły są stosowane do wszystkich zasobów połączonych z tą podsiecią.When an NSG is associated to a subnet, the rules apply to all resources connected to the subnet.

Reguły sieciowych grup zabezpieczeńNetwork security group rules

Reguły sieciowych grup zabezpieczeń określają porty sieciowe, dla których ruch jest dozwolony lub niedozwolony.NSG rules define networking ports over which traffic is allowed or denied. Reguły mogą zawierać zakresy źródłowych lub docelowych adresów IP, umożliwiając kontrolę ruchu pomiędzy określonymi systemami lub podsieciami.The rules can include source and destination IP address ranges so that traffic is controlled between specific systems or subnets. Reguły sieciowych grup zabezpieczeń mają również priorytet (od 1 do 4096).NSG rules also include a priority (between 1—and 4096). Priorytet określa kolejność oceny reguł.Rules are evaluated in the order of priority. Reguła z priorytetem 100 jest oceniana przed regułą z priorytetem 200.A rule with a priority of 100 is evaluated before a rule with priority 200.

Wszystkie sieciowe grupy zabezpieczeń zawierają zestaw reguł domyślnych.All NSGs contain a set of default rules. Reguł domyślnych nie można usunąć, ale ponieważ mają przypisany najniższy priorytet, mogą być zastąpione przez tworzone zasady.The default rules can't be deleted, but because they are assigned the lowest priority, they can be overridden by the rules that you create.

  • Sieć wirtualna — ruch pochodzący z sieci wirtualnej i kończący się w niej jest dozwolony zarówno w kierunku przychodzącym, jak i wychodzącym.Virtual network - Traffic originating and ending in a virtual network is allowed both in inbound and outbound directions.
  • Internet — ruch wychodzący jest dozwolony, ale ruch przychodzący jest blokowany.Internet - Outbound traffic is allowed, but inbound traffic is blocked.
  • Moduł równoważenia obciążenia — umożliwia modułowi równoważenia obciążenia platformy Azure badanie kondycji maszyn wirtualnych i wystąpień ról.Load balancer - Allow Azure’s load balancer to probe the health of your VMs and role instances. Jeśli nie używasz zestawu z równoważeniem obciążenia, możesz przesłonić tę regułę.If you are not using a load balanced set, you can override this rule.

Tworzenie sieciowych grup zabezpieczeńCreate network security groups

Utwórz regułę ruchu przychodzącego o nazwie myFrontendNSGRule, aby zezwolić na przychodzący ruch internetowy na maszynie myFrontendVM za pomocą polecenia New-AzNetworkSecurityRuleConfig:Create an inbound rule named myFrontendNSGRule to allow incoming web traffic on myFrontendVM using New-AzNetworkSecurityRuleConfig:

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

Możesz zezwalać na ruch wewnętrzny do maszyny myBackendVM pochodzący jedynie z maszyny myFrontendVM, tworząc dla podsieci zaplecza sieciową grupę zabezpieczeń.You can limit internal traffic to myBackendVM from only myFrontendVM by creating an NSG for the back-end subnet. W poniższym przykładzie pokazano tworzenie sieciowej grupy zabezpieczeń o nazwie myBackendNSGRule:The following example creates an NSG rule named myBackendNSGRule:

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

Dodaj sieciową grupę zabezpieczeń o nazwie myFrontendNSG przy użyciu polecenia New-AzNetworkSecurityGroup:Add a network security group named myFrontendNSG using New-AzNetworkSecurityGroup:

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

Teraz dodaj sieciową grupę zabezpieczeń o nazwie myBackendNSG przy użyciu polecenia New-AzNetworkSecurityGroup:Now, add a network security group named myBackendNSG using New-AzNetworkSecurityGroup:

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

Dodaj sieciowe grupy zabezpieczeń do podsieci:Add the network security groups to the subnets:

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

Tworzenie maszyny wirtualnej zapleczaCreate a back-end VM

Na potrzeby tego samouczka najprostszym sposobem tworzenia maszyny wirtualnej zaplecza jest wykorzystanie obrazu programu SQL Server.The easiest way to create the back-end VM for this tutorial is by using a SQL Server image. Samouczek obejmuje wyłącznie tworzenie maszyny wirtualnej z serwerem baz danych. Nie podaje żadnych informacji na temat uzyskiwania dostępu do bazy danych.This tutorial only creates the VM with the database server, but doesn't provide information about accessing the database.

Utwórz interfejs myBackendNic:Create myBackendNic:

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

Ustaw nazwę użytkownika i hasło potrzebne dla konta administratora na maszynie wirtualnej przy użyciu polecenia Get-Credential:Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

Utwórz maszynę myBackendVM.Create myBackendVM.

New-AzVM `
   -Credential $cred `
   -Name myBackend `
   -ImageName "MicrosoftSQLServer:SQL2016SP1-WS2016:Enterprise:latest" `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -SubnetName MyBackendSubnet `
   -VirtualNetworkName myVNet

Obraz w tym przykładzie ma zainstalowany program SQL Server, ale nie jest używany w ramach tego samouczka.The image in this example has SQL Server installed, but it isn't used in this tutorial. Został on uwzględniony, aby zademonstrować sposób konfigurowania maszyny wirtualnej do obsługiwania ruchu internetowego albo do zarządzania bazami danych.It's included to show you how you can configure a VM to handle web traffic and a VM to handle database management.

Następne krokiNext steps

W tym samouczku utworzono i zabezpieczono sieci platformy Azure na potrzeby maszyn wirtualnych.In this tutorial, you created and secured Azure networks as related to virtual machines.

  • Tworzenie sieci wirtualnej i podsieciCreate a virtual network and subnet
  • Tworzenie publicznego adresu IPCreate a public IP address
  • Tworzenie maszyny wirtualnej frontonuCreate a front-end VM
  • Zabezpieczanie ruchu sieciowegoSecure network traffic
  • Tworzenie maszyny wirtualnej zapleczaCreate a back-end VM

Przejdź do kolejnego samouczka, aby dowiedzieć się więcej na temat monitorowania i zabezpieczania danych na maszynach wirtualnych za pomocą usługi Azure Backup.Advance to the next tutorial to learn about monitoring securing data on virtual machines using Azure backup.