Sieciową grupę zabezpieczeń można używać do filtrowania przychodzącego i wychodzącego ruchu sieciowego do i z zasobów platformy Azure w sieci wirtualnej platformy Azure.
Sieciowe grupy zabezpieczeń zawierają reguły zabezpieczeń, które filtrują ruch sieciowy według adresów IP, portów i protokołów. Gdy sieciowa grupa zabezpieczeń jest skojarzona z podsiecią, reguły zabezpieczeń są stosowane do zasobów wdrożonych w tej podsieci.
- Konto platformy Azure z aktywną subskrypcją. Możesz bezpłatnie utworzyć konto.
- Konto platformy Azure z aktywną subskrypcją. Możesz bezpłatnie utworzyć konto.
Azure Cloud Shell
Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.
Aby uruchomić środowisko Azure Cloud Shell:
Opcja |
Przykład/link |
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. |
|
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. |
|
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. |
|
Aby użyć usługi Azure Cloud Shell:
Uruchom usługę Cloud Shell.
Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.
Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając Ctrl+Shift V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift++V w systemie macOS.
Wybierz Enter, aby uruchomić kod lub polecenie.
Jeśli zdecydujesz się zainstalować program PowerShell i korzystać z niego lokalnie, ten artykuł wymaga modułu Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az
, aby dowiedzieć się, jaka wersja jest zainstalowana. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount
, aby utworzyć połączenie z platformą Azure.
Poniższa procedura tworzy sieć wirtualną z podsiecią zasobów.
W portalu wyszukaj i wybierz pozycję Sieci wirtualne.
Na stronie Sieci wirtualne wybierz pozycję + Utwórz.
Na karcie Podstawy tworzenia sieci wirtualnej wprowadź lub wybierz następujące informacje:
Ustawienie |
Wartość |
Szczegóły projektu |
|
Subskrypcja |
Wybierz subskrypcję. |
Grupa zasobów |
Wybierz pozycjęUtwórz nowy. Wprowadź ciąg test-rg w polu Nazwa. Wybierz przycisk OK. |
Szczegóły wystąpienia |
|
Nazwisko |
Wprowadź wartość vnet-1. |
Region (Region) |
Wybierz pozycję East US 2 (Wschodnie stany USA 2). |
Wybierz przycisk Dalej , aby przejść do karty Zabezpieczenia .
Wybierz przycisk Dalej , aby przejść do karty Adresy IP.
W polu Przestrzeń adresowa w obszarze Podsieci wybierz domyślną podsieć.
W okienku Edytowanie podsieci wprowadź lub wybierz następujące informacje:
Ustawienie |
Wartość |
Szczegóły podsieci |
|
Szablon podsieci |
Pozostaw wartość domyślną jako Domyślna. |
Nazwisko |
Wprowadź podsieć-1. |
Adres początkowy |
Pozostaw wartość domyślną 10.0.0.0. |
Rozmiar podsieci |
Pozostaw wartość domyślną /24(256 adresów). |
Wybierz pozycję Zapisz.
Wybierz pozycję Przejrzyj i utwórz w dolnej części ekranu. Po zakończeniu walidacji wybierz pozycję Utwórz.
Najpierw utwórz grupę zasobów dla wszystkich zasobów utworzonych w tym artykule za pomocą polecenia New-AzResourceGroup. Poniższy przykład tworzy grupę zasobów w lokalizacji westus2 :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Utwórz sieć wirtualną przy użyciu polecenia New-AzVirtualNetwork. Poniższy przykład tworzy wirtualną o nazwie vnet-1:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Utwórz konfigurację podsieci za pomocą polecenia New-AzVirtualNetworkSubnetConfig, a następnie zapisz konfigurację podsieci w sieci wirtualnej za pomocą polecenia Set-AzVirtualNetwork. Poniższy przykład dodaje do sieci wirtualnej podsieć o nazwie subnet-1 i kojarzy z nią sieciową grupę zabezpieczeń nsg-1 :
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Najpierw utwórz grupę zasobów dla wszystkich zasobów utworzonych w tym artykule za pomocą polecenia az group create. Poniższy przykład tworzy grupę zasobów w lokalizacji westus2 :
az group create \
--name test-rg \
--location westus2
Utwórz sieć wirtualną za pomocą polecenia az network vnet create. Poniższy przykład tworzy wirtualną o nazwie vnet-1:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Dodaj podsieć do sieci wirtualnej za pomocą polecenia az network vnet subnet create. Poniższy przykład dodaje do sieci wirtualnej podsieć o nazwie subnet-1 i kojarzy z nią sieciową grupę zabezpieczeń nsg-1 :
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
W tej sekcji skojarzysz sieciową grupę zabezpieczeń z podsiecią utworzonej wcześniej sieci wirtualnej.
Wybierz pozycję Reguły zabezpieczeń dla ruchu przychodzącego w sekcji Ustawienia sieciowej grupy zabezpieczeń-1.
Na stronie Reguły zabezpieczeń dla ruchu przychodzącego wybierz pozycję + Dodaj.
Utwórz regułę zabezpieczeń zezwalającą portom 80 i 443 na grupę zabezpieczeń aplikacji asg-web . Na stronie Dodawanie reguły zabezpieczeń dla ruchu przychodzącego wprowadź lub wybierz następujące informacje:
Ustawienie |
Wartość |
Lokalizacja źródłowa |
Pozostaw wartość domyślną Dowolna. |
Zakresy portów źródłowych |
Pozostaw wartość domyślną (*). |
Element docelowy |
Wybierz pozycję Grupa zabezpieczeń aplikacji. |
Docelowe grupy zabezpieczeń aplikacji |
Wybierz pozycję asg-web. |
Usługa |
Pozostaw wartość domyślną Niestandardowe. |
Zakresy portów docelowych |
Wprowadź wartość 80 443. |
Protokół |
Wybierz pozycję TCP. |
Akcja |
Pozostaw wartość domyślną Zezwalaj. |
Priorytet |
Pozostaw wartość domyślną 100. |
Nazwisko |
Wprowadź wartość allow-web-all. |
Wybierz Dodaj.
Wykonaj poprzednie kroki, wykonując następujące informacje:
Ustawienie |
Wartość |
Lokalizacja źródłowa |
Pozostaw wartość domyślną Dowolna. |
Zakresy portów źródłowych |
Pozostaw wartość domyślną (*). |
Element docelowy |
Wybierz pozycję Grupa zabezpieczeń aplikacji. |
Docelowa grupa zabezpieczeń aplikacji |
Wybierz pozycję asg-mgmt. |
Usługa |
Wybierz pozycję RDP. |
Akcja |
Pozostaw wartość domyślną Zezwalaj. |
Priorytet |
Pozostaw wartość domyślną 110. |
Nazwisko |
Wprowadź wartość allow-rdp-all. |
Wybierz Dodaj.
Uwaga
W tym artykule protokół RDP (port 3389) jest uwidoczniony w Internecie dla maszyny wirtualnej przypisanej do grupy zabezpieczeń aplikacji asg-mgmt .
W przypadku środowisk produkcyjnych, zamiast uwidaczniać port 3389 w Internecie, zaleca się nawiązanie połączenia z zasobami platformy Azure, którymi chcesz zarządzać przy użyciu sieci VPN, prywatnego połączenia sieciowego lub usługi Azure Bastion.
Aby uzyskać więcej informacji na temat usługi Azure Bastion, zobacz Co to jest usługa Azure Bastion?.
Utwórz regułę zabezpieczeń za pomocą polecenia New-AzNetworkSecurityRuleConfig. Poniższy przykład tworzy regułę zezwalającą na ruch przychodzący z Internetu do grupy zabezpieczeń aplikacji asg-web przez porty 80 i 443:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-Web-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80,443
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
Poniższy przykład tworzy regułę zezwalającą na ruch przychodzący z Internetu do grupy zabezpieczeń aplikacji asg-mgmt przez port 3389:
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-RDP-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 3389
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Użyj polecenia Get-AzNetworkSecurityGroup , aby pobrać istniejącą sieciową grupę zabezpieczeń, a następnie dodaj nowe reguły z operatorem +=
. Na koniec zaktualizuj sieciową grupę zabezpieczeń za pomocą polecenia Set-AzNetworkSecurityGroup:
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Uwaga
W tym artykule protokół RDP (port 3389) jest uwidoczniony w Internecie dla maszyny wirtualnej przypisanej do grupy zabezpieczeń aplikacji asg-mgmt .
W przypadku środowisk produkcyjnych, zamiast uwidaczniać port 3389 w Internecie, zaleca się nawiązanie połączenia z zasobami platformy Azure, którymi chcesz zarządzać przy użyciu sieci VPN, prywatnego połączenia sieciowego lub usługi Azure Bastion.
Aby uzyskać więcej informacji na temat usługi Azure Bastion, zobacz Co to jest usługa Azure Bastion?.
Utwórz regułę zabezpieczeń za pomocą polecenia az network nsg rule create. Poniższy przykład tworzy regułę zezwalającą na ruch przychodzący z Internetu do grupy zabezpieczeń aplikacji asg-web przez porty 80 i 443:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Web-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80 443
Poniższy przykład tworzy regułę zezwalającą na ruch przychodzący z Internetu do grupy zabezpieczeń aplikacji asg-mgmt przez port 22:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 22
Uwaga
W tym artykule protokół SSH (port 22) jest uwidoczniony w Internecie dla maszyny wirtualnej przypisanej do grupy zabezpieczeń aplikacji asg-mgmt .
W przypadku środowisk produkcyjnych, zamiast uwidaczniać port 22 w Internecie, zaleca się nawiązanie połączenia z zasobami platformy Azure, którymi chcesz zarządzać przy użyciu sieci VPN, prywatnego połączenia sieciowego lub usługi Azure Bastion.
Aby uzyskać więcej informacji na temat usługi Azure Bastion, zobacz Co to jest usługa Azure Bastion?.
Utwórz dwie maszyny wirtualne w sieci wirtualnej.
W portalu wyszukaj i wybierz pozycję Maszyny wirtualne.
W obszarze Maszyny wirtualne wybierz pozycję + Utwórz, a następnie maszynę wirtualną platformy Azure.
W obszarze Tworzenie maszyny wirtualnej wprowadź lub wybierz te informacje na karcie Podstawy :
Ustawienie |
Wartość |
Szczegóły projektu |
|
Subskrypcja |
Wybierz subskrypcję. |
Grupa zasobów |
Wybierz pozycję test-rg. |
Szczegóły wystąpienia |
|
Virtual machine name |
Wprowadź ciąg vm-web. |
Region (Region) |
Wybierz pozycję (USA) Wschodnie stany USA 2. |
Opcje dostępności |
Pozostaw wartość domyślną Brak wymaganej nadmiarowości infrastruktury. |
Typ zabezpieczeń |
Wybierz opcję Standardowa. |
Obraz |
Wybierz pozycję Windows Server 2022 Datacenter — x64 Gen2. |
Wystąpienie usługi Azure Spot |
Pozostaw wartość domyślną niezaznaczonego. |
Rozmiar |
Wybierz rozmiar. |
Konto administratora |
|
Username |
Wprowadź nazwę użytkownika. |
Hasło |
Wprowadź hasło. |
Potwierdź hasło |
Ponownie wprowadź hasło. |
Reguły portów przychodzących |
|
Wybierz porty wejściowe |
Wybierz pozycję Brak. |
Wybierz pozycję Dalej: Dyski , a następnie Dalej: Sieć.
Na karcie Sieć wprowadź lub wybierz następujące informacje:
Ustawienie |
Wartość |
Interfejs sieciowy |
|
Sieć wirtualna |
Wybierz pozycję vnet-1. |
Podsieć |
Wybierz podsieć-1 (10.0.0.0/24). |
Publiczny adres IP |
Pozostaw wartość domyślną nowego publicznego adresu IP. |
Sieciowa grupa zabezpieczeń karty sieciowej |
Wybierz pozycję Brak. |
Wybierz kartę Przeglądanie + tworzenie lub wybierz niebieski przycisk Przejrzyj i utwórz w dolnej części strony.
Wybierz pozycję Utwórz. Wdrożenie maszyny wirtualnej może potrwać kilka minut.
Powtórz poprzednie kroki, aby utworzyć drugą maszynę wirtualną o nazwie vm-mgmt.
Przed utworzeniem maszyn wirtualnych pobierz obiekt sieci wirtualnej z podsiecią za pomocą polecenia Get-AzVirtualNetwork:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Utwórz publiczny adres IP dla każdej maszyny wirtualnej przy użyciu polecenia New-AzPublicIpAddress:
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Utwórz dwa interfejsy sieciowe za pomocą polecenia New-AzNetworkInterface i przypisz publiczny adres IP do interfejsu sieciowego. Poniższy przykład tworzy interfejs sieciowy, kojarzy z nim publiczny adres IP-ip-vm-web .
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
Poniższy przykład tworzy interfejs sieciowy, kojarzy z nim publiczny adres IP ip-vm-mgmt .
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Utwórz dwie maszyny wirtualne w sieci wirtualnej, aby umożliwić weryfikację filtrowania ruchu w kolejnym kroku.
Utwórz konfigurację maszyny wirtualnej za pomocą polecenia New-AzVMConfig, a następnie utwórz maszynę wirtualną za pomocą polecenia New-AzVM. Poniższy przykład tworzy maszynę wirtualną, która służy jako serwer internetowy. Opcja -AsJob
tworzy maszynę wirtualną w tle, dzięki czemu można przejść do następnego kroku:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-web"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $webNic.Id
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Utwórz maszynę wirtualną, która będzie służyć jako serwer zarządzania:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-mgmt"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $mgmtNic.Id
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
Tworzenie maszyny wirtualnej zajmuje kilka minut. Nie przechodź do następnego kroku, dopóki platforma Azure nie ukończy tworzenia maszyny wirtualnej.
Utwórz dwie maszyny wirtualne w sieci wirtualnej, aby umożliwić weryfikację filtrowania ruchu w kolejnym kroku.
Utwórz maszynę wirtualną za pomocą polecenia az vm create. Poniższy przykład tworzy maszynę wirtualną, która służy jako serwer internetowy. Określono --nsg ""
opcję uniemożliwiającą platformie Azure utworzenie domyślnej sieciowej grupy zabezpieczeń dla interfejsu sieciowego tworzonego przez platformę Azure podczas tworzenia maszyny wirtualnej. Polecenie wyświetla monit o utworzenie hasła dla maszyny wirtualnej. Klucze SSH nie są używane w tym przykładzie, aby ułatwić późniejsze kroki opisane w tym artykule. W środowisku produkcyjnym użyj kluczy SSH na potrzeby zabezpieczeń.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--authentication-type password \
--assign-identity
W ciągu kilku minut zostanie utworzona maszyna wirtualna. Po utworzeniu maszyny wirtualnej zwracane są dane wyjściowe podobne do następującego przykładu:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Utwórz maszynę wirtualną za pomocą polecenia az vm create. Poniższy przykład tworzy maszynę wirtualną, która służy jako serwer zarządzania.
Poniższy przykład tworzy maszynę wirtualną i dodaje konto użytkownika. Parametr --generate-ssh-keys
powoduje, że interfejs wiersza polecenia szuka dostępnego klucza SSH w pliku ~/.ssh
. Jeśli zostanie znaleziony, zostanie użyty ten klucz. Jeśli tak nie jest, jest generowany i przechowywany w pliku ~/.ssh
. Na koniec wdrożymy najnowszy Ubuntu 22.04
obraz.
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys \
--assign-identity
W ciągu kilku minut zostanie utworzona maszyna wirtualna. Nie przechodź do następnego kroku, dopóki platforma Azure nie ukończy tworzenia maszyny wirtualnej.
Po utworzeniu maszyn wirtualnych platforma Azure utworzyła interfejs sieciowy dla każdej maszyny wirtualnej i dołączyła ją do maszyny wirtualnej.
Dodaj interfejs sieciowy każdej maszyny wirtualnej do jednej z utworzonych wcześniej grup zabezpieczeń aplikacji:
W polu wyszukiwania w górnej części portalu wprowadź ciąg Maszyna wirtualna. Wybierz pozycję Maszyny wirtualne w wynikach wyszukiwania, a następnie wybierz pozycję vm-web.
Wybierz pozycję Grupy zabezpieczeń aplikacji w sekcji Sieć w sieci vm-web.
Wybierz pozycję Dodaj grupy zabezpieczeń aplikacji, a następnie na karcie Dodaj grupy zabezpieczeń aplikacji wybierz pozycję asg-web. Na koniec wybierz pozycję Dodaj.
Powtórz poprzednie kroki dla narzędzia vm-mgmt, wybierając pozycję asg-mgmt na karcie Dodawanie grup zabezpieczeń aplikacji.
Użyj polecenia Get-AzNetworkInterface , aby pobrać interfejs sieciowy maszyny wirtualnej, a następnie pobierz grupę zabezpieczeń aplikacji za pomocą polecenia Get-AzApplicationSecurityGroup . Na koniec użyj polecenia Set-AzNetworkInterface , aby skojarzyć grupę zabezpieczeń aplikacji z interfejsem sieciowym. Poniższy przykład kojarzy grupę zabezpieczeń aplikacji asg-web z interfejsem sieciowym vm-web-nic:
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Powtórz polecenie, aby skojarzyć grupę zabezpieczeń aplikacji asg-mgmt z interfejsem sieciowym vm-mgmt-nic .
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Użyj polecenia az network nic update , aby skojarzyć interfejs sieciowy z grupą zabezpieczeń aplikacji. Poniższy przykład kojarzy grupę zabezpieczeń aplikacji asg-web z interfejsem sieciowym vm-web-nic:
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Powtórz polecenie, aby skojarzyć grupę zabezpieczeń aplikacji asg-mgmt z interfejsem sieciowym vm-mgmt-nic .
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
W polu wyszukiwania w górnej części portalu wprowadź ciąg Maszyna wirtualna. Wybierz pozycję Maszyny wirtualne w wynikach wyszukiwania.
Wybierz pozycję vm-mgmt.
Na stronie Przegląd wybierz przycisk Połącz, a następnie wybierz pozycję Natywny protokół RDP.
Wybierz pozycję Pobierz plik RDP.
Otwórz pobrany plik RDP i wybierz opcję Połącz. Wprowadź nazwę użytkownika i hasło określone podczas tworzenia maszyny wirtualnej.
Wybierz przycisk OK.
Podczas procesu połączenia może zostać wyświetlone ostrzeżenie o certyfikacie. Jeśli zostanie wyświetlone ostrzeżenie, wybierz pozycję Tak lub Kontynuuj, aby kontynuować połączenie.
Połączenie powiedzie się, ponieważ ruch przychodzący z Internetu do grupy zabezpieczeń aplikacji asg-mgmt jest dozwolony przez port 3389.
Interfejs sieciowy maszyny wirtualnej vm-mgmt jest skojarzony z grupą zabezpieczeń aplikacji asg-mgmt i zezwala na połączenie.
Otwórz sesję programu PowerShell na maszynie wirtualnej vm-mgmt. Nawiąż połączenie z maszyną wirtualną w Sieci Web , korzystając z następujących elementów:
mstsc /v:vm-web
Połączenie RDP z vm-mgmt z maszyny wirtualnej do sieci web powiedzie się, ponieważ maszyny wirtualne w tej samej sieci mogą domyślnie komunikować się ze sobą za pośrednictwem dowolnego portu.
Nie można utworzyć połączenia RDP z maszyną wirtualną vm-web z Internetu. Reguła zabezpieczeń dla aplikacji asg-web uniemożliwia nawiązywanie połączeń z portem 3389 przychodzącym z Internetu. Ruch przychodzący z Internetu jest domyślnie blokowany do wszystkich zasobów.
Aby zainstalować usługi Microsoft IIS na maszynie wirtualnej vm-web , wprowadź następujące polecenie z sesji programu PowerShell na maszynie wirtualnej vm-web :
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Po zakończeniu instalacji usług IIS odłącz się od maszyny wirtualnej vm-web , która pozostawia cię w połączeniu pulpitu zdalnego maszyny wirtualnej vm-mgmt .
Odłącz się od maszyny wirtualnej vm-mgmt .
Wyszukaj ciąg vm-web w polu wyszukiwania portalu.
Na stronie Przegląd maszyny wirtualnej vm-web zanotuj publiczny adres IP maszyny wirtualnej. Adres pokazany w poniższym przykładzie to 203.0.113.103. Twój adres jest inny:
Aby potwierdzić, że możesz uzyskać dostęp do serwera internetowego vm-web z Internetu, otwórz przeglądarkę internetową na komputerze i przejdź do http://<public-ip-address-from-previous-step>
adresu .
Zostanie wyświetlona domyślna strona usług IIS, ponieważ ruch przychodzący z Internetu do grupy zabezpieczeń aplikacji asg-web jest dozwolony za pośrednictwem portu 80.
Interfejs sieciowy dołączony do sieci vm-web jest skojarzony z grupą zabezpieczeń aplikacji asg-web i zezwala na połączenie.
Użyj polecenia Get-AzPublicIpAddress, aby uzyskać publiczny adres IP maszyny wirtualnej. Poniższy przykład zwraca publiczny adres IP maszyny wirtualnej vm-mgmt :
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Użyj następującego polecenia, aby utworzyć sesję pulpitu zdalnego z maszyną wirtualną vm-mgmt z komputera lokalnego.
mstsc /v:$publicIP
Wprowadź nazwę użytkownika i hasło określone podczas tworzenia maszyny wirtualnej (może być konieczne wybranie pozycji Więcej opcji, a następnie użyj innego konta, aby określić poświadczenia wprowadzone podczas tworzenia maszyny wirtualnej), a następnie wybierz przycisk OK. Podczas procesu logowania może pojawić się ostrzeżenie o certyfikacie. Wybierz pozycję Tak, aby nawiązać połączenie.
Połączenie powiedzie się. Port 3389 jest dozwolony dla ruchu przychodzącego z Internetu do grupy zabezpieczeń aplikacji asg-mgmt . Interfejs sieciowy dołączony do maszyny wirtualnej vm-mgmt znajduje się w tej grupie.
Użyj następującego polecenia, aby utworzyć połączenie pulpitu zdalnego z maszyną wirtualną internetową vm-web na maszynie wirtualnej vm-mgmt za pomocą następującego polecenia z poziomu programu PowerShell:
mstsc /v:vm-web
Połączenie powiedzie się, ponieważ domyślne reguły zabezpieczeń w każdej sieciowej grupie zabezpieczeń zezwalają na ruch na wszystkich portach pomiędzy wszystkimi adresami IP w sieci wirtualnej. Nie można utworzyć połączenia pulpitu zdalnego z maszyną wirtualną internetową z Internetu, ponieważ reguła zabezpieczeń dla aplikacji asg-web nie zezwala na ruch przychodzący z Internetu przez port 3389.
Użyj następującego polecenia, aby zainstalować usługi Microsoft IIS na maszynie wirtualnej wirtualnej sieci Web z poziomu programu PowerShell:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Po zakończeniu instalacji usług IIS odłącz się od maszyny wirtualnej vm-web , która pozostawi Cię w połączeniu pulpitu zdalnego maszyny wirtualnej vm-mgmt . Aby wyświetlić ekran powitalny usług IIS, otwórz przeglądarkę internetową i przejdź do http://vm-web.
Odłącz się od maszyny wirtualnej vm-mgmt .
Na komputerze wprowadź następujące polecenie z programu PowerShell, aby pobrać publiczny adres IP serwera vm-web :
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Aby potwierdzić, że możesz uzyskać dostęp do serwera internetowego vm-web spoza platformy Azure, otwórz przeglądarkę internetową na komputerze i przejdź do http://<public-ip-address-from-previous-step>
adresu . Połączenie powiedzie się. Port 80 jest dozwolony dla ruchu przychodzącego z Internetu do grupy zabezpieczeń aplikacji asg-web . Interfejs sieciowy dołączony do maszyny wirtualnej vm-web znajduje się w tej grupie.
Korzystając z wybranego klienta SSH, połącz się z utworzonymi wcześniej maszynami wirtualnymi. Na przykład następujące polecenie można użyć z poziomu interfejsu wiersza polecenia, takiego jak Podsystem Windows dla systemu Linux, aby utworzyć sesję SSH z maszyną wirtualną vm-mgmt. Możesz zalogować się do maszyn wirtualnych przy użyciu poświadczeń identyfikatora Entra firmy Microsoft lub użyć klucza SSH użytego do utworzenia maszyn wirtualnych. W poniższym przykładzie użyjemy klucza SSH, aby zalogować się do maszyny wirtualnej zarządzania, a następnie zalogować się do internetowej maszyny wirtualnej z maszyny wirtualnej zarządzania przy użyciu hasła.
Aby uzyskać więcej informacji na temat sposobu nawiązywania połączenia SSH z maszyną wirtualną z systemem Linux i logowania się przy użyciu identyfikatora Entra firmy Microsoft, zobacz Logowanie się do maszyny wirtualnej z systemem Linux na platformie Azure przy użyciu identyfikatora Microsoft Entra ID i protokołu OpenSSH.
Przechowywanie adresu IP maszyny wirtualnej w celu SSH
Uruchom następujące polecenie, aby zapisać adres IP maszyny wirtualnej jako zmienną środowiskową:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Połączenie powiedzie się, ponieważ interfejs sieciowy dołączony do maszyny wirtualnej vm-mgmt znajduje się w grupie zabezpieczeń aplikacji asg-mgmt, która zezwala na ruch przychodzący z Internetu przez port 22.
Użyj następującego polecenia, aby za pomocą protokołu SSH połączyć się z maszyną wirtualną vm-web z maszyny wirtualnej vm-mgmt :
ssh -o StrictHostKeyChecking=no azureuser@vm-web
Połączenie powiedzie się, ponieważ domyślne reguły zabezpieczeń w każdej sieciowej grupie zabezpieczeń zezwalają na ruch na wszystkich portach pomiędzy wszystkimi adresami IP w sieci wirtualnej. Nie można połączyć protokołu SSH z maszyną wirtualną vm-web z Internetu, ponieważ reguła zabezpieczeń dla sieci Asg-Web nie zezwala na ruch przychodzący z Internetu przez port 22.
Użyj następujących poleceń, aby zainstalować serwer internetowy nginx na maszynie wirtualnej vm-web :
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
Maszyna wirtualna wirtualna sieci Web jest dozwolona dla ruchu wychodzącego do Internetu w celu pobrania serwera nginx, ponieważ domyślna reguła zabezpieczeń zezwala na cały ruch wychodzący do Internetu. Zamknij sesję SSH maszyny wirtualnej vm-web, która pozostawi Ci monit o maszynę wirtualną username@vm-mgmt:~$
vm-mgmt. Aby pobrać ekran powitalny serwera nginx z maszyny wirtualnej vm-web , wprowadź następujące polecenie:
curl vm-web
Wyloguj się z maszyny wirtualnej vm-mgmt . Aby potwierdzić, że możesz uzyskać dostęp do serwera internetowego vm-web spoza platformy Azure, wprowadź curl <publicIpAddress>
z własnego komputera. Połączenie powiedzie się, ponieważ grupa zabezpieczeń aplikacji asg-web , w której znajduje się interfejs sieciowy dołączony do maszyny wirtualnej vm-web , zezwala na ruch przychodzący z Internetu przez port 80.
Platforma Azure domyślnie kieruje ruch pomiędzy podsieciami. Zamiast tego możesz wybrać kierowanie ruchu między podsieciami za pośrednictwem maszyny wirtualnej, na przykład jako zapora.
Aby dowiedzieć się więcej o sposobie tworzenia tabeli tras, przejdź do następnego samouczka.