Kurz: Vytvoření a správa virtuálních sítí Azure pro virtuální počítače s Linuxem pomocí Azure CLI

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

Virtuální počítače Azure používají sítě Azure pro interní a externí síťovou komunikaci. Tento kurz vás provede nasazením dvou virtuálních počítačů a konfigurací sítí Azure pro tyto virtuální počítače. Příklady v tomto kurzu předpokládají, že virtuální počítače hostují webovou aplikaci s back-endem databáze, ale v tomto kurzu není nasazená aplikace. V tomto kurzu se naučíte:

  • Vytvoření virtuální sítě a podsítě
  • Vytvoření veřejné IP adresy
  • Vytvoření front-endového virtuálního počítače
  • Zabezpečení síťového provozu
  • Vytvoření back-endového virtuálního počítače

V tomto kurzu se používá rozhraní příkazového řádku v Azure Cloud Shellu, které se neustále aktualizuje na nejnovější verzi. Cloud Shell otevřete tak, že v horní části libovolného bloku kódu vyberete Vyzkoušet .

Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku místně, musíte mít Azure CLI verze 2.0.30 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Přehled sítí virtuálních počítačů

Virtuální sítě Azure umožňují zabezpečená síťová připojení mezi virtuálními počítači, internetem a dalšími službami Azure, jako je Azure SQL Database. Virtuální sítě jsou rozdělené do logických segmentů označovaných jako podsítě. Podsítě slouží k řízení toku sítě a jako hranice zabezpečení. Při nasazování virtuálního počítače je obvykle zahrnuto virtuální síťové rozhraní, které je připojené k podsíti.

Po dokončení kurzu se vytvoří následující prostředky virtuální sítě:

Virtuální síť se dvěma podsítěmi

  • myVNet – virtuální síť, kterou virtuální počítače používají ke vzájemné komunikaci a internetu.
  • myFrontendSubnet – podsíť v síti myVNet , kterou používají front-endové prostředky.
  • myPublicIPAddress – veřejná IP adresa používaná pro přístup k virtuálnímu počítači myFrontendVM z internetu.
  • myFrontentNic – síťové rozhraní používané virtuálním počítačem myFrontendVM ke komunikaci s myBackendVM.
  • myFrontendVM – virtuální počítač používaný ke komunikaci mezi internetem a virtuálním počítačem myBackendVM.
  • myBackendNSG – skupina zabezpečení sítě, která řídí komunikaci mezi virtuálním počítačem myFrontendVM a myBackendVM.
  • myBackendSubnet – podsíť přidružená k myBackendNSG a používaná back-endovými prostředky.
  • myBackendNic – síťové rozhraní používané myBackendVM ke komunikaci s myFrontendVM.
  • myBackendVM – virtuální počítač, který ke komunikaci s virtuálním počítačem myFrontendVM používá port 22 a 3306.

Vytvoření virtuální sítě a podsítě

Pro účely tohoto kurzu se vytvoří jedna virtuální síť se dvěma podsítěmi. Front-endová podsíť pro hostování webové aplikace a back-endové podsítě pro hostování databázového serveru.

Než budete moct vytvořit virtuální síť, vytvořte pomocí příkazu az group create skupinu prostředků. Následující příklad vytvoří skupinu prostředků pojmenovanou myRGNetwork v lokalitě eastus.

az group create --name myRGNetwork --location eastus

Vytvoření virtuální sítě

K vytvoření virtuální sítě použijte příkaz az network vnet create . V tomto příkladu má síť název mvVNet a má předponu adresy 10.0.0.0/16. Vytvoří se také podsíť s názvem myFrontendSubnet a předponou 10.0.1.0/24. Později v tomto kurzu bude k této podsíti připojen front-endový virtuální počítač.

az network vnet create \
  --resource-group myRGNetwork \
  --name myVNet \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myFrontendSubnet \
  --subnet-prefix 10.0.1.0/24

Vytvoření podsítě

Do virtuální sítě se přidá nová podsíť pomocí příkazu az network vnet subnet create . V tomto příkladu má podsíť název myBackendSubnet a má předponu adresy 10.0.2.0/24. Tato podsíť se používá se všemi back-endovými službami.

az network vnet subnet create \
  --resource-group myRGNetwork \
  --vnet-name myVNet \
  --name myBackendSubnet \
  --address-prefix 10.0.2.0/24

V tomto okamžiku byla síť vytvořena a segmentována do dvou podsítí, jedné pro front-endové služby a další pro back-endové služby. V další části se vytvoří a připojí virtuální počítače k těmto podsítím.

Vytvoření veřejné IP adresy

Veřejná IP adresa umožňuje přístup k prostředkům Azure na internetu. Metodu přidělování veřejné IP adresy je možné nakonfigurovat jako dynamickou nebo statickou. Ve výchozím nastavení se veřejná IP adresa dynamicky přiděluje. Dynamické IP adresy jsou uvolněny, když je virtuální počítač odpojen. Toto chování vede ke změně IP adresy během jakékoli operace, která zahrnuje uvolnění přidělení virtuálního počítače.

Metodu přidělení je možné nastavit na statickou, což zajišťuje, že IP adresa zůstane přiřazená virtuálnímu počítači i během uvolněného stavu. Při použití staticky přidělené IP adresy nelze zadat samotnou IP adresu. Místo toho se přidělí z fondu dostupných adres.

az network public-ip create --resource-group myRGNetwork --name myPublicIPAddress

Při vytváření virtuálního počítače pomocí příkazu az vm create je výchozí metoda přidělování veřejných IP adres dynamická. Při vytváření virtuálního počítače pomocí příkazu az vm create zahrňte --public-ip-address-allocation static argument pro přiřazení statické veřejné IP adresy. Tato operace není v tomto kurzu ukázaná, ale v další části se dynamicky přidělená IP adresa změní na staticky přidělenou adresu.

Změna metody přidělování

Metodu přidělování IP adres je možné změnit pomocí příkazu az network public-ip update . V tomto příkladu se metoda přidělování IP adres front-endového virtuálního počítače změní na statickou.

Nejprve uvolněte virtuální počítač.

az vm deallocate --resource-group myRGNetwork --name myFrontendVM

Pomocí příkazu az network public-ip update aktualizujte metodu přidělování. V tomto případě --allocation-method je nastavená na statickou.

az network public-ip update --resource-group myRGNetwork --name myPublicIPAddress --allocation-method static

Spusťte virtuální počítač.

az vm start --resource-group myRGNetwork --name myFrontendVM --no-wait

Žádná veřejná IP adresa

Virtuální počítač často nemusí být přístupný přes internet. Pokud chcete vytvořit virtuální počítač bez veřejné IP adresy, použijte --public-ip-address "" argument s prázdnou sadou dvojitých uvozovek. Tuto konfiguraci si ukážeme později v tomto kurzu.

Vytvoření front-endového virtuálního počítače

Pomocí příkazu az vm create vytvořte virtuální počítač s názvem myFrontendVM pomocí myPublicIPAddress.

az vm create \
  --resource-group myRGNetwork \
  --name myFrontendVM \
  --vnet-name myVNet \
  --subnet myFrontendSubnet \
  --nsg myFrontendNSG \
  --public-ip-address myPublicIPAddress \
  --image Ubuntu2204 \
  --generate-ssh-keys

Zabezpečení síťového provozu

Skupina zabezpečení sítě (NSG) obsahuje seznam pravidel zabezpečení, která povolují nebo zakazují síťový provoz prostředkům připojeným k virtuálním sítím Azure. Skupiny zabezpečení sítě můžou být přidružené k podsítím nebo jednotlivým síťovým rozhraním. Pokud je skupina zabezpečení sítě přidružená k síťovému rozhraní, použije pouze přidružený virtuální počítač. Pokud je skupina zabezpečení sítě přidružená k podsíti, pravidla se vztahují na všechny prostředky, které jsou připojené k příslušné podsíti.

Pravidla skupiny zabezpečení sítě

Pravidla NSG definují síťové porty, u kterých je povolený nebo zakázaný provoz. Pravidla můžou zahrnovat rozsahy zdrojových a cílových IP adres, aby provoz byl řízen mezi konkrétními systémy nebo podsítěmi. Pravidla NSG také zahrnují prioritu (mezi 1 – a 4096). Pravidla se vyhodnocují v pořadí podle priority. Pravidlo s prioritou 100 se vyhodnocuje před pravidlem s prioritou 200.

Všechny NSG obsahují sadu výchozích pravidel. Výchozí pravidla nelze odstranit, ale protože mají přiřazenou nejnižší prioritu, lze je přepsat pravidly, která vytvoříte.

Výchozí pravidla pro NSG jsou:

  • Virtuální síť – Provoz pocházející z virtuální sítě a končící ve virtuální síti je povolený v příchozích i odchozích směrech.
  • Internet – Odchozí provoz je povolený, ale příchozí provoz je zablokovaný.
  • Nástroj pro vyrovnávání zatížení – Umožňuje nástroji pro vyrovnávání zatížení Azure testovat stav virtuálních počítačů a instancí rolí. Pokud nepoužíváte sadu s vyrovnáváním zatížení, můžete toto pravidlo přepsat.

Vytvoření skupin zabezpečení sítě

Skupinu zabezpečení sítě je možné vytvořit současně s virtuálním počítačem pomocí příkazu az vm create . Po provedení této akce se skupina zabezpečení sítě přidruží k síťovému rozhraní virtuálních počítačů a systém automaticky vytvoří pravidlo NSG, které povolí provoz na portu 22 z libovolného zdroje. Již dříve v tomto kurzu byla automaticky vytvořena front-endová skupina zabezpečení sítě (NSG) spolu s front-endovým virtuálním počítačem. Pravidlo NSG se také automaticky vytvořilo pro port 22.

V některých případech může být užitečné předem vytvořit skupinu zabezpečení sítě, například když se nemají vytvořit výchozí pravidla SSH nebo kdy by se skupina zabezpečení sítě měla připojit k podsíti.

Pomocí příkazu az network nsg create vytvořte skupinu zabezpečení sítě.

az network nsg create --resource-group myRGNetwork --name myBackendNSG

Místo toho, aby byla síťová bezpečnostní skupina přidružena k síťovému rozhraní, je přidružena k podsíti. V této konfiguraci dědí všechny virtuální počítače připojené k podsíti pravidla NSG.

Aktualizujte existující podsíť s názvem myBackendSubnet novou skupinou zabezpečení sítě.

az network vnet subnet update \
  --resource-group myRGNetwork \
  --vnet-name myVNet \
  --name myBackendSubnet \
  --network-security-group myBackendNSG

Zabezpečení příchozího provozu

Po vytvoření front-endového virtuálního počítače se vytvořilo pravidlo NSG, které povolí příchozí provoz na portu 22. Toto pravidlo umožňuje připojení SSH k virtuálnímu počítači. V tomto příkladu by měl být povolený i provoz na portu 80. Tato konfigurace umožňuje přístup k webové aplikaci na virtuálním počítači.

Pomocí příkazu az network nsg rule create vytvořte pravidlo pro port 80.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myFrontendNSG \
  --name http \
  --access allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 80

Front-endový virtuální počítač je přístupný jenom na portu 22 a portu 80. Všechny ostatní příchozí přenosy jsou ve skupině zabezpečení sítě blokované. Může být užitečné vizualizovat konfigurace pravidel NSG. Pomocí příkazu az network rule list vraťte konfiguraci pravidla NSG.

az network nsg rule list --resource-group myRGNetwork --nsg-name myFrontendNSG --output table

Zabezpečení provozu mezi virtuálními počítači

Pravidla skupin zabezpečení sítě se můžou použít také mezi virtuálními počítači. V tomto příkladu musí front-endový virtuální počítač komunikovat s back-endovým virtuálním počítačem na portu 22 a 3306. Tato konfigurace umožňuje připojení SSH z front-endového virtuálního počítače a také umožňuje aplikaci na virtuálním počítači front-endu komunikovat s back-endovou databází MySQL. Veškerý ostatní provoz by se měl blokovat mezi front-endovými a back-endovými virtuálními počítači.

Pomocí příkazu az network nsg rule create vytvořte pravidlo pro port 22. Všimněte si, že --source-address-prefix argument určuje hodnotu 10.0.1.0/24. Tato konfigurace zajišťuje, že přes NSG je povolen pouze provoz z front-endové podsítě.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name SSH \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix 10.0.1.0/24 \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "22"

Teď přidejte pravidlo pro provoz MySQL na portu 3306.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name MySQL \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix 10.0.1.0/24 \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "3306"

A konečně, protože skupiny zabezpečení sítě mají výchozí pravidlo, které povoluje veškerý provoz mezi virtuálními počítači ve stejné virtuální síti, je možné vytvořit pravidlo, které v back-endových skupinách zabezpečení sítě zablokuje veškerý provoz. Všimněte si zde, že --priority má hodnotu 300, která je nižší než obě pravidla NSG a MySQL. Tato konfigurace zajišťuje, že provoz SSH a MySQL je nadále povolen prostřednictvím NSG.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name denyAll \
  --access Deny \
  --protocol Tcp \
  --direction Inbound \
  --priority 300 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "*"

Vytvoření back-endového virtuálního počítače

Teď vytvořte virtuální počítač, který je připojený k podsítě myBackendSubnet. Všimněte si, že --nsg argument má hodnotu prázdných dvojitých uvozovek. Skupinu zabezpečení sítě není nutné vytvořit zároveň s virtuálním počítačem. Virtuální počítač je připojený k back-endové podsíti, která je chráněna předem vytvořenou back-endovou skupinou zabezpečení sítě. Tato skupina zabezpečení sítě (NSG) se vztahuje na virtuální počítač. Všimněte si také, že --public-ip-address argument má hodnotu prázdných dvojitých uvozovek. Tato konfigurace vytvoří virtuální počítač bez veřejné IP adresy.

az vm create \
  --resource-group myRGNetwork \
  --name myBackendVM \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --public-ip-address "" \
  --nsg "" \
  --image Ubuntu2204 \
  --generate-ssh-keys

Back-endový virtuální počítač je přístupný jenom na portu 22 a portu 3306 z front-endové podsítě. Všechny ostatní příchozí přenosy jsou ve skupině zabezpečení sítě blokované. Může být užitečné vizualizovat konfigurace pravidel NSG. Pomocí příkazu az network rule list vraťte konfiguraci pravidla NSG.

az network nsg rule list --resource-group myRGNetwork --nsg-name myBackendNSG --output table

Další kroky

V tomto kurzu jste vytvořili a zabezpečili sítě Azure v souvislosti s virtuálními počítači. Naučili jste se:

  • Vytvoření virtuální sítě a podsítě
  • Vytvoření veřejné IP adresy
  • Vytvoření front-endového virtuálního počítače
  • Zabezpečení síťového provozu
  • Vytvoření back-endového virtuálního počítače

Další informace o ochraně disků virtuálních počítačů najdete v tématu Zálohování a zotavení po havárii pro disky.