Z tego przewodnika Szybki start dowiesz się, jak utworzyć sieć wirtualną platformy Azure przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell, szablonu usługi Resource Manager, szablonu Bicep i programu Terraform. Dwie maszyny wirtualne i host usługi Azure Bastion są wdrażane w celu przetestowania łączności między maszynami wirtualnymi w tej samej sieci wirtualnej. Host usługi Azure Bastion ułatwia bezpieczną i bezproblemową łączność RDP i SSH z maszynami wirtualnymi bezpośrednio w witrynie Azure Portal za pośrednictwem protokołu SSL.
Sieć wirtualna to podstawowy blok konstrukcyjny dla sieci prywatnych na platformie Azure. Usługa Azure Virtual Network umożliwia zasobom platformy Azure, takich jak maszyny wirtualne, bezpieczne komunikowanie się ze sobą i Internetem.
Zaloguj się do Azure
Zaloguj się do witryny Azure Portal przy użyciu konta platformy Azure.
Tworzenie sieci wirtualnej i hosta usługi Azure Bastion
Poniższa procedura tworzy sieć wirtualną z podsiecią zasobów, podsiecią usługi Azure Bastion i hostem usługi Bastion:
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:
Ustawienia |
Wartość |
Szczegóły projektu |
|
Subskrypcja |
Wybierz swoją subskrypcję. |
Grupa zasobów |
Wybierz pozycję Utwórz nową.
Wprowadź test-rg jako nazwę.
Wybierz przycisk OK. |
Szczegóły wystąpienia |
|
Nazwa |
Wprowadź vnet-1. |
Rejon |
Wybierz East US 2. |
Wybierz przycisk Dalej , aby przejść do karty Zabezpieczenia .
W sekcji Azure Bastion wybierz pozycję Włącz usługę Azure Bastion.
Usługa Bastion używa przeglądarki do łączenia się z maszynami wirtualnymi w sieci wirtualnej za pośrednictwem protokołu Secure Shell (SSH) lub protokołu RDP (Remote Desktop Protocol) przy użyciu prywatnych adresów IP. Maszyny wirtualne nie potrzebują publicznych adresów IP, oprogramowania klienckiego ani specjalnej konfiguracji. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Bastion?.
Uwaga / Notatka
Ceny godzinowe zaczynają się od momentu wdrożenia usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Cennik i jednostki SKU. Jeśli wdrażasz Bastion w ramach samouczka lub testu, zalecamy usunięcie tego zasobu po zakończeniu jego używania.
W usłudze Azure Bastion wprowadź lub wybierz następujące informacje:
Ustawienia |
Wartość |
Nazwa hosta usługi Azure Bastion |
Wprowadź bastion. |
Publiczny adres IP usługi Azure Bastion |
Wybierz pozycję Utwórz publiczny adres IP.
Wprowadź public-ip-bastion w polu Nazwa.
Wybierz przycisk OK. |
Wybierz przycisk Dalej , aby przejść do karty Adresy IP .
W polu Przestrzeń adresowa w obszarze Podsieci wybierz domyślną podsieć.
W obszarze Edytuj podsieć wprowadź lub wybierz następujące informacje:
Ustawienia |
Wartość |
Cel podsieci |
Pozostaw domyślną opcję Default. |
Nazwa |
Wprowadź podsieć-1. |
Protokół IPv4 |
|
Zakres adresów IPv4 |
Pozostaw wartość domyślną 10.0.0.0/16. |
Adres początkowy |
Pozostaw wartość domyślną 10.0.0.0. |
Rozmiar |
Pozostaw wartość domyślną /24 (256 adresów). |
Wybierz pozycję Zapisz.
Wybierz pozycję Przejrzyj i utwórz w dolnej części okna. Po zakończeniu walidacji wybierz pozycję Utwórz.
Tworzenie maszyn wirtualnych
Poniższa procedura tworzy dwie maszyny wirtualne o nazwie vm-1 i vm-2 w sieci wirtualnej:
W portalu wyszukaj i wybierz pozycję Maszyny wirtualne.
W obszarze Maszyny wirtualne wybierz pozycję + Utwórz, a następnie wybierz pozycję Maszyna wirtualna platformy Azure.
Na karcie Podstawy tworzenia maszyny wirtualnej wprowadź lub wybierz następujące informacje:
Ustawienia |
Wartość |
Szczegóły projektu |
|
Subskrypcja |
Wybierz swoją subskrypcję. |
Grupa zasobów |
Wybierz pozycję test-rg. |
Szczegóły wystąpienia |
|
Nazwa maszyny wirtualnej |
Wprowadź vm-1. |
Rejon |
Wybierz East US 2. |
Opcje dostępności |
Wybierz pozycję Brak wymaganej nadmiarowości infrastruktury. |
Typ zabezpieczeń |
Pozostaw wartość domyślną standardu. |
Obraz |
Wybierz pozycję Ubuntu Server 22.04 LTS — x64 Gen2. |
Architektura maszyny wirtualnej |
Pozostaw wartość domyślną x64. |
Rozmiar |
Wybierz rozmiar. |
Konto administratora |
|
Typ uwierzytelniania |
Wybierz Hasło. |
Nazwa użytkownika |
Wprowadź azureuser. |
Hasło |
Wprowadź hasło. |
Potwierdź hasło |
Wprowadź ponownie hasło. |
Reguły portów przychodzących |
|
Publiczne porty ruchu przychodzącego |
Wybierz pozycję Brak. |
Wybierz kartę Sieć . Wprowadź lub wybierz następujące informacje:
Ustawienia |
Wartość |
Interfejs sieciowy |
|
Sieć wirtualna |
Wybierz pozycję vnet-1. |
Podsieć |
Wybierz podsieć-1 (10.0.0.0/24). |
Publiczny adres IP |
Wybierz pozycję Brak. |
Grupa zabezpieczeń sieciowych NIC |
Wybierz pozycję Zaawansowane. |
Konfigurowanie sieciowej grupy zabezpieczeń |
Wybierz pozycję Utwórz nową. Wprowadź nsg-1 jako nazwę.
Pozostaw wartości domyślne pozostałych i wybierz przycisk OK. |
Pozostaw pozostałe ustawienia domyślne i wybierz pozycję Przejrzyj i utwórz.
Przejrzyj ustawienia i wybierz pozycję Utwórz.
Poczekaj na wdrożenie pierwszej maszyny wirtualnej, a następnie powtórz poprzednie kroki, aby utworzyć drugą maszynę wirtualną z następującymi ustawieniami:
Ustawienia |
Wartość |
Nazwa maszyny wirtualnej |
Wprowadź vm-2. |
Sieć wirtualna |
Wybierz pozycję vnet-1. |
Podsieć |
Wybierz podsieć-1 (10.0.0.0/24). |
Publiczny adres IP |
Wybierz pozycję Brak. |
Grupa zabezpieczeń sieciowych NIC |
Wybierz pozycję Zaawansowane. |
Konfigurowanie sieciowej grupy zabezpieczeń |
Wybierz pozycję nsg-1. |
Uwaga / Notatka
Maszyny wirtualne w sieci wirtualnej z hostem usługi Azure Bastion nie wymagają publicznych adresów IP. Usługa Bastion udostępnia publiczny adres IP, a maszyny wirtualne używają prywatnych adresów IP do komunikacji w sieci. Publiczne adresy IP można usunąć ze wszystkich maszyn wirtualnych w sieciach wirtualnych hostowanych w usłudze Bastion. Aby uzyskać więcej informacji, zobacz Usuwanie skojarzenia publicznego adresu IP z maszyny wirtualnej Azure.
Uwaga / Notatka
Platforma Azure udostępnia domyślny adres IP dostępu wychodzącego dla maszyn wirtualnych, które nie są przypisane do publicznego adresu IP lub znajdują się w puli zaplecza wewnętrznego podstawowego modułu równoważenia obciążenia platformy Azure. Domyślny mechanizm adresów IP dostępu wychodzącego zapewnia wychodzący adres IP, który nie jest konfigurowalny.
Domyślny adres IP dostępu wychodzącego jest wyłączony, gdy wystąpi jedno z następujących zdarzeń:
- Publiczny adres IP jest przypisywany do maszyny wirtualnej.
- Maszyna wirtualna (VM) jest umieszczana w puli zaplecza standardowego modułu równoważenia obciążenia, z regułami wychodzącymi lub bez nich.
- Zasób usługi Azure NAT Gateway jest przypisywany do podsieci maszyny wirtualnej.
Maszyny wirtualne tworzone przy użyciu zestawów skalowania maszyn wirtualnych w trybie elastycznej aranżacji nie mają domyślnego dostępu wychodzącego.
Aby uzyskać więcej informacji na temat połączeń wychodzących na platformie Azure, zobacz Domyślny dostęp wychodzący na platformie Azure i Używanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla połączeń wychodzących.
Tworzenie grupy zasobów
Użyj New-AzResourceGroup, aby utworzyć grupę zasobów do hostowania sieci wirtualnej. Uruchom następujący kod, aby utworzyć grupę zasobów o nazwie test-rg w regionie platformy Azure eastus2 :
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Utwórz wirtualną sieć
Użyj New-AzVirtualNetwork, aby utworzyć sieć wirtualną o nazwie vnet-1 z prefiksem adresu IP 10.0.0.0/16 w grupie zasobów test-rg i lokalizacji eastus2 :
$vnet = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Azure wdraża zasoby do podsieci w sieci wirtualnej. Użyj polecenia Add-AzVirtualNetworkSubnetConfig , aby utworzyć konfigurację podsieci o nazwie subnet-1 z prefiksem adresu 10.0.0.0/24:
$subnet = @{
Name = 'subnet-1'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Skojarz konfigurację podsieci z siecią wirtualną przy użyciu polecenia Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
Wdrażanie usługi Azure Bastion
Usługa Azure Bastion używa przeglądarki do łączenia się z maszynami wirtualnymi w sieci wirtualnej za pośrednictwem protokołu Secure Shell (SSH) lub protokołu RDP (Remote Desktop Protocol) przy użyciu ich prywatnych adresów IP. Maszyny wirtualne nie potrzebują publicznych adresów IP, oprogramowania klienckiego ani specjalnej konfiguracji. Aby uzyskać więcej informacji na temat usługi Bastion, zobacz Co to jest usługa Azure Bastion?.
Ceny godzinowe zaczynają się od momentu wdrożenia usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Cennik i jednostki SKU. Jeśli wdrażasz Bastion w ramach samouczka lub testu, zalecamy usunięcie tego zasobu po zakończeniu jego używania.
Skonfiguruj podsieć bastionu dla sieci wirtualnej. Ta podsieć jest zarezerwowana wyłącznie dla zasobów usługi Bastion i musi mieć nazwę AzureBastionSubnet.
$subnet = @{
Name = 'AzureBastionSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.1.0/26'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Ustaw konfigurację:
$virtualNetwork | Set-AzVirtualNetwork
Utwórz publiczny adres IP dla usługi Bastion. Host usługi Bastion używa publicznego adresu IP do uzyskiwania dostępu do protokołu SSH i protokołu RDP za pośrednictwem portu 443.
$ip = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip'
Location = 'eastus2'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
Użyj polecenia New-AzBastion, aby utworzyć nowego hosta Bastion o jednostce SKU Standard w AzureBastionSubnet:
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion
Wdrożenie zasobów usługi Bastion trwa około 10 minut. Maszyny wirtualne można utworzyć w następnej sekcji podczas wdrażania usługi Bastion w sieci wirtualnej.
Tworzenie maszyn wirtualnych
Użyj New-AzVM, aby utworzyć dwie maszyny wirtualne o nazwie vm-1 i vm-2 w podsieci-1 sieci wirtualnej. Po wyświetleniu monitu o podanie poświadczeń wprowadź nazwy użytkownika i hasła dla maszyn wirtualnych.
Aby utworzyć pierwszą maszynę wirtualną, użyj następującego kodu:
# 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
Aby utworzyć drugą maszynę wirtualną, użyj następującego kodu:
# 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
Wskazówka
Możesz użyć -AsJob
opcji , aby utworzyć maszynę wirtualną w tle podczas wykonywania innych zadań. Na przykład uruchom New-AzVM @vm1 -AsJob
. Gdy platforma Azure zacznie tworzyć maszynę wirtualną w tle, otrzymujesz dane wyjściowe podobne do następujących:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
Utworzenie maszyn wirtualnych na platformie Azure zajmuje kilka minut. Po zakończeniu tworzenia maszyn wirtualnych platforma Azure zwraca dane wyjściowe do programu PowerShell.
Uwaga / Notatka
Maszyny wirtualne w sieci wirtualnej z hostem usługi Bastion nie wymagają publicznych adresów IP. Usługa Bastion udostępnia publiczny adres IP, a maszyny wirtualne używają prywatnych adresów IP do komunikacji w sieci. Publiczne adresy IP można usunąć ze wszystkich maszyn wirtualnych w sieciach wirtualnych hostowanych w usłudze Bastion. Aby uzyskać więcej informacji, zobacz Usuwanie skojarzenia publicznego adresu IP z maszyny wirtualnej Azure.
Uwaga / Notatka
Platforma Azure udostępnia domyślny adres IP dostępu wychodzącego dla maszyn wirtualnych, które nie są przypisane do publicznego adresu IP lub znajdują się w puli zaplecza wewnętrznego podstawowego modułu równoważenia obciążenia platformy Azure. Domyślny mechanizm adresów IP dostępu wychodzącego zapewnia wychodzący adres IP, który nie jest konfigurowalny.
Domyślny adres IP dostępu wychodzącego jest wyłączony, gdy wystąpi jedno z następujących zdarzeń:
- Publiczny adres IP jest przypisywany do maszyny wirtualnej.
- Maszyna wirtualna (VM) jest umieszczana w puli zaplecza standardowego modułu równoważenia obciążenia, z regułami wychodzącymi lub bez nich.
- Zasób usługi Azure NAT Gateway jest przypisywany do podsieci maszyny wirtualnej.
Maszyny wirtualne tworzone przy użyciu zestawów skalowania maszyn wirtualnych w trybie elastycznej aranżacji nie mają domyślnego dostępu wychodzącego.
Aby uzyskać więcej informacji na temat połączeń wychodzących na platformie Azure, zobacz Domyślny dostęp wychodzący na platformie Azure i Używanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla połączeń wychodzących.
Tworzenie grupy zasobów
Użyj az group create do utworzenia grupy zasobów do hostowania sieci wirtualnej. Użyj następującego kodu, aby utworzyć grupę zasobów o nazwie test-rg w regionie platformy Azure eastus2 :
az group create \
--name test-rg \
--location eastus2
Tworzenie sieci wirtualnej i podsieci
Użyj az network vnet create aby utworzyć sieć wirtualną o nazwie vnet-1, z podsiecią o nazwie subnet-1 w grupie zasobów test-rg.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.0.0.0/24
Wdrażanie usługi Azure Bastion
Usługa Azure Bastion używa przeglądarki do łączenia się z maszynami wirtualnymi w sieci wirtualnej za pośrednictwem protokołu Secure Shell (SSH) lub protokołu RDP (Remote Desktop Protocol) przy użyciu ich prywatnych adresów IP. Maszyny wirtualne nie potrzebują publicznych adresów IP, oprogramowania klienckiego ani specjalnej konfiguracji.
Ceny godzinowe zaczynają się od momentu wdrożenia usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Cennik i jednostki SKU. Jeśli wdrażasz Bastion w ramach samouczka lub testu, zalecamy usunięcie tego zasobu po zakończeniu jego używania. Aby uzyskać więcej informacji na temat usługi Bastion, zobacz Co to jest usługa Azure Bastion?.
Użyj az network vnet subnet create, aby utworzyć podsieć Bastion dla sieci wirtualnej. Ta podsieć jest zarezerwowana wyłącznie dla zasobów usługi Bastion i musi mieć nazwę AzureBastionSubnet.
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
Utwórz publiczny adres IP dla usługi Bastion. Ten adres IP służy do nawiązywania połączenia z hostem usługi Bastion z Internetu. Użyj az network public-ip create, aby utworzyć publiczny adres IP o nazwie public-ip w grupie zasobów test-rg:
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
Użyj az network bastion create, aby utworzyć hosta Bastion w AzureBastionSubnet dla swojej sieci wirtualnej.
az network bastion create \
--name bastion \
--public-ip-address public-ip \
--resource-group test-rg \
--vnet-name vnet-1 \
--location eastus2
Wdrożenie zasobów usługi Bastion trwa około 10 minut. Maszyny wirtualne można utworzyć w następnej sekcji podczas wdrażania usługi Bastion w sieci wirtualnej.
Tworzenie maszyn wirtualnych
Użyj az vm create, aby utworzyć dwie maszyny wirtualne o nazwie vm-1 i vm-2 w podsieci o nazwie subnet-1 sieci wirtualnej. Po wyświetleniu monitu o poświadczenia wprowadź nazwy użytkowników i hasła dla maszyn wirtualnych.
Aby utworzyć pierwszą maszynę wirtualną, użyj następującego polecenia:
az vm create \
--resource-group test-rg \
--admin-username azureuser \
--authentication-type password \
--name vm-1 \
--image Ubuntu2204 \
--public-ip-address ""
Aby utworzyć drugą maszynę wirtualną, użyj następującego polecenia:
az vm create \
--resource-group test-rg \
--admin-username azureuser \
--authentication-type password \
--name vm-2 \
--image Ubuntu2204 \
--public-ip-address ""
Wskazówka
Możesz również użyć --no-wait
opcji , aby utworzyć maszynę wirtualną w tle podczas wykonywania innych zadań.
Proces tworzenia maszyny wirtualnej może potrwać kilka minut. Po utworzeniu każdej maszyny wirtualnej przez platformę Azure interfejs wiersza polecenia platformy Azure zwraca dane wyjściowe podobne do następującego komunikatu:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.5",
"publicIpAddress": "",
"resourceGroup": "test-rg"
"zones": ""
}
Uwaga / Notatka
Maszyny wirtualne w sieci wirtualnej z hostem usługi Bastion nie wymagają publicznych adresów IP. Usługa Bastion udostępnia publiczny adres IP, a maszyny wirtualne używają prywatnych adresów IP do komunikacji w sieci. Publiczne adresy IP można usunąć ze wszystkich maszyn wirtualnych w sieciach wirtualnych hostowanych w usłudze Bastion. Aby uzyskać więcej informacji, zobacz Usuwanie skojarzenia publicznego adresu IP z maszyny wirtualnej Azure.
Uwaga / Notatka
Platforma Azure udostępnia domyślny adres IP dostępu wychodzącego dla maszyn wirtualnych, które nie są przypisane do publicznego adresu IP lub znajdują się w puli zaplecza wewnętrznego podstawowego modułu równoważenia obciążenia platformy Azure. Domyślny mechanizm adresów IP dostępu wychodzącego zapewnia wychodzący adres IP, który nie jest konfigurowalny.
Domyślny adres IP dostępu wychodzącego jest wyłączony, gdy wystąpi jedno z następujących zdarzeń:
- Publiczny adres IP jest przypisywany do maszyny wirtualnej.
- Maszyna wirtualna (VM) jest umieszczana w puli zaplecza standardowego modułu równoważenia obciążenia, z regułami wychodzącymi lub bez nich.
- Zasób usługi Azure NAT Gateway jest przypisywany do podsieci maszyny wirtualnej.
Maszyny wirtualne tworzone przy użyciu zestawów skalowania maszyn wirtualnych w trybie elastycznej aranżacji nie mają domyślnego dostępu wychodzącego.
Aby uzyskać więcej informacji na temat połączeń wychodzących na platformie Azure, zobacz Domyślny dostęp wychodzący na platformie Azure i Używanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla połączeń wychodzących.
Przegląd szablonu
Szablon używany w tym przewodniku szybkiego startu pochodzi z Azure Quickstart Templates.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.6.18.56646",
"templateHash": "10806234693722113459"
}
},
"parameters": {
"vnetName": {
"type": "string",
"defaultValue": "VNet1",
"metadata": {
"description": "VNet name"
}
},
"vnetAddressPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Address prefix"
}
},
"subnet1Prefix": {
"type": "string",
"defaultValue": "10.0.0.0/24",
"metadata": {
"description": "Subnet 1 Prefix"
}
},
"subnet1Name": {
"type": "string",
"defaultValue": "Subnet1",
"metadata": {
"description": "Subnet 1 Name"
}
},
"subnet2Prefix": {
"type": "string",
"defaultValue": "10.0.1.0/24",
"metadata": {
"description": "Subnet 2 Prefix"
}
},
"subnet2Name": {
"type": "string",
"defaultValue": "Subnet2",
"metadata": {
"description": "Subnet 2 Name"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-08-01",
"name": "[parameters('vnetName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('subnet1Name')]",
"properties": {
"addressPrefix": "[parameters('subnet1Prefix')]"
}
},
{
"name": "[parameters('subnet2Name')]",
"properties": {
"addressPrefix": "[parameters('subnet2Prefix')]"
}
}
]
}
}
]
}
Szablon definiuje następujące zasoby platformy Azure:
Wdrażanie szablonu
Wdróż szablon usługi Resource Manager na platformie Azure:
Wybierz pozycję Wdróż na platformie Azure, aby zalogować się na platformie Azure i otworzyć szablon. Szablon tworzy sieć wirtualną z dwiema podsieciami.
W portalu na stronie Tworzenie sieci wirtualnej z dwiema podsieciami wprowadź lub wybierz następujące wartości:
-
Grupa zasobów: wybierz pozycję Utwórz nową, wprowadź wartość CreateVNetQS-rg jako nazwę grupy zasobów, a następnie wybierz przycisk OK.
-
Nazwa sieci wirtualnej: wprowadź nazwę nowej sieci wirtualnej.
Wybierz Przejrzyj i utwórz, a następnie wybierz Utwórz.
Po zakończeniu wdrażania wybierz przycisk Przejdź do zasobu , aby przejrzeć wdrożone zasoby.
Przeglądanie wdrożonych zasobów
Zapoznaj się z zasobami utworzonymi za pomocą sieci wirtualnej, przeglądając okienka ustawień dla sieci VNet1:
Aby dowiedzieć się więcej o składni i właściwościach JSON dla sieci wirtualnej w szablonie, zobacz Microsoft.Network/virtualNetworks.
Tworzenie sieci wirtualnej i maszyn wirtualnych
Ten przewodnik szybkiego startu używa szablonu Bicep dwóch maszyn wirtualnych w VNET z szablonów szybkiego startu usługi Azure Resource Manager do utworzenia sieci wirtualnej, podsieci zasobów i maszyn wirtualnych. Szablon Bicep definiuje następujące zasoby platformy Azure:
Przejrzyj plik Bicep:
@description('Admin username')
param adminUsername string
@description('Admin password')
@secure()
param adminPassword string
@description('Prefix to use for VM names')
param vmNamePrefix string = 'BackendVM'
@description('Location for all resources.')
param location string = resourceGroup().location
@description('Size of the virtual machines')
param vmSize string = 'Standard_D2s_v3'
var availabilitySetName = 'AvSet'
var storageAccountType = 'Standard_LRS'
var storageAccountName = uniqueString(resourceGroup().id)
var virtualNetworkName = 'vNet'
var subnetName = 'backendSubnet'
var loadBalancerName = 'ilb'
var networkInterfaceName = 'nic'
var subnetRef = resourceId('Microsoft.Network/virtualNetworks/subnets', virtualNetworkName, subnetName)
var numberOfInstances = 2
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
}
resource availabilitySet 'Microsoft.Compute/availabilitySets@2023-09-01' = {
name: availabilitySetName
location: location
sku: {
name: 'Aligned'
}
properties: {
platformUpdateDomainCount: 2
platformFaultDomainCount: 2
}
}
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: subnetName
properties: {
addressPrefix: '10.0.2.0/24'
}
}
]
}
}
resource networkInterface 'Microsoft.Network/networkInterfaces@2023-09-01' = [for i in range(0, numberOfInstances): {
name: '${networkInterfaceName}${i}'
location: location
properties: {
ipConfigurations: [
{
name: 'ipconfig1'
properties: {
privateIPAllocationMethod: 'Dynamic'
subnet: {
id: subnetRef
}
loadBalancerBackendAddressPools: [
{
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', loadBalancerName, 'BackendPool1')
}
]
}
}
]
}
dependsOn: [
virtualNetwork
loadBalancer
]
}]
resource loadBalancer 'Microsoft.Network/loadBalancers@2023-09-01' = {
name: loadBalancerName
location: location
sku: {
name: 'Standard'
}
properties: {
frontendIPConfigurations: [
{
properties: {
subnet: {
id: subnetRef
}
privateIPAddress: '10.0.2.6'
privateIPAllocationMethod: 'Static'
}
name: 'LoadBalancerFrontend'
}
]
backendAddressPools: [
{
name: 'BackendPool1'
}
]
loadBalancingRules: [
{
properties: {
frontendIPConfiguration: {
id: resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', loadBalancerName, 'LoadBalancerFrontend')
}
backendAddressPool: {
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', loadBalancerName, 'BackendPool1')
}
probe: {
id: resourceId('Microsoft.Network/loadBalancers/probes', loadBalancerName, 'lbprobe')
}
protocol: 'Tcp'
frontendPort: 80
backendPort: 80
idleTimeoutInMinutes: 15
}
name: 'lbrule'
}
]
probes: [
{
properties: {
protocol: 'Tcp'
port: 80
intervalInSeconds: 15
numberOfProbes: 2
}
name: 'lbprobe'
}
]
}
dependsOn: [
virtualNetwork
]
}
resource vm 'Microsoft.Compute/virtualMachines@2023-09-01' = [for i in range(0, numberOfInstances): {
name: '${vmNamePrefix}${i}'
location: location
properties: {
availabilitySet: {
id: availabilitySet.id
}
hardwareProfile: {
vmSize: vmSize
}
osProfile: {
computerName: '${vmNamePrefix}${i}'
adminUsername: adminUsername
adminPassword: adminPassword
}
storageProfile: {
imageReference: {
publisher: 'MicrosoftWindowsServer'
offer: 'WindowsServer'
sku: '2019-Datacenter'
version: 'latest'
}
osDisk: {
createOption: 'FromImage'
}
}
networkProfile: {
networkInterfaces: [
{
id: networkInterface[i].id
}
]
}
diagnosticsProfile: {
bootDiagnostics: {
enabled: true
storageUri: storageAccount.properties.primaryEndpoints.blob
}
}
}
}]
output location string = location
output name string = loadBalancer.name
output resourceGroupName string = resourceGroup().name
output resourceId string = loadBalancer.id
Wdrażanie szablonu Bicep
Zapisz plik Bicep na komputerze lokalnym jako main.bicep.
Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell:
Interfejs Linii Komend (CLI)
az group create \
--name TestRG \
--location eastus
az deployment group create \
--resource-group TestRG \
--template-file main.bicep
PowerShell
$rgParams = @{
Name = 'TestRG'
Location = 'eastus'
}
New-AzResourceGroup @rgParams
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'main.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
Po zakończeniu wdrażania zostanie wyświetlony komunikat informujący o tym, że wdrożenie zakończyło się pomyślnie.
Wdrażanie usługi Azure Bastion
Usługa Bastion używa przeglądarki do łączenia się z maszynami wirtualnymi w sieci wirtualnej za pośrednictwem protokołu Secure Shell (SSH) lub protokołu RDP (Remote Desktop Protocol) przy użyciu prywatnych adresów IP. Maszyny wirtualne nie potrzebują publicznych adresów IP, oprogramowania klienckiego ani specjalnej konfiguracji. Aby uzyskać więcej informacji na temat usługi Bastion, zobacz Co to jest usługa Azure Bastion?.
Uwaga / Notatka
Ceny godzinowe zaczynają się od momentu wdrożenia usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Cennik i jednostki SKU. Jeśli wdrażasz Bastion w ramach samouczka lub testu, zalecamy usunięcie tego zasobu po zakończeniu jego używania.
Użyj szablonu Azure Bastion as a Service Bicep z szablonów szybkiego startu usługi Azure Resource Manager , aby wdrożyć i skonfigurować usługę Bastion w sieci wirtualnej. Ten szablon Bicep definiuje następujące zasoby platformy Azure:
Przejrzyj plik Bicep:
@description('Name of new or existing vnet to which Azure Bastion should be deployed')
param vnetName string = 'vnet01'
@description('IP prefix for available addresses in vnet address space')
param vnetIpPrefix string = '10.1.0.0/16'
@description('Specify whether to provision new vnet or deploy to existing vnet')
@allowed([
'new'
'existing'
])
param vnetNewOrExisting string = 'new'
@description('Bastion subnet IP prefix MUST be within vnet IP prefix address space')
param bastionSubnetIpPrefix string = '10.1.1.0/26'
@description('Name of Azure Bastion resource')
param bastionHostName string
@description('Azure region for Bastion and virtual network')
param location string = resourceGroup().location
var publicIpAddressName = '${bastionHostName}-pip'
var bastionSubnetName = 'AzureBastionSubnet'
resource publicIp 'Microsoft.Network/publicIPAddresses@2022-01-01' = {
name: publicIpAddressName
location: location
sku: {
name: 'Standard'
}
properties: {
publicIPAllocationMethod: 'Static'
}
}
// if vnetNewOrExisting == 'new', create a new vnet and subnet
resource newVirtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = if (vnetNewOrExisting == 'new') {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetIpPrefix
]
}
subnets: [
{
name: bastionSubnetName
properties: {
addressPrefix: bastionSubnetIpPrefix
}
}
]
}
}
// if vnetNewOrExisting == 'existing', reference an existing vnet and create a new subnet under it
resource existingVirtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' existing = if (vnetNewOrExisting == 'existing') {
name: vnetName
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2022-01-01' = if (vnetNewOrExisting == 'existing') {
parent: existingVirtualNetwork
name: bastionSubnetName
properties: {
addressPrefix: bastionSubnetIpPrefix
}
}
resource bastionHost 'Microsoft.Network/bastionHosts@2022-01-01' = {
name: bastionHostName
location: location
dependsOn: [
newVirtualNetwork
existingVirtualNetwork
]
properties: {
ipConfigurations: [
{
name: 'IpConf'
properties: {
subnet: {
id: subnet.id
}
publicIPAddress: {
id: publicIp.id
}
}
}
]
}
}
Wdrażanie szablonu Bicep
Zapisz plik Bicep na komputerze lokalnym jako bastion.bicep.
Użyj tekstu lub edytora kodu, aby wprowadzić następujące zmiany w pliku:
- Zmień
param vnetName string
z 'vnet01'
na 'VNet'
.
- Wiersz 5: Zmień
param vnetIpPrefix string
z '10.1.0.0/16'
na '10.0.0.0/16'
.
- Wiersz 12: Zmień
param vnetNewOrExisting string
z 'new'
na 'existing'
.
- Wiersz 15: Zmień
param bastionSubnetIpPrefix string
z '10.1.1.0/26'
na '10.0.1.0/26'
.
- Wiersz 18: Zmień
param bastionHostName string
na param bastionHostName = 'VNet-bastion'
.
Pierwsze 18 wierszy pliku Bicep powinno teraz wyglądać następująco:
@description('Name of new or existing vnet to which Azure Bastion should be deployed')
param vnetName string = 'VNet'
@description('IP prefix for available addresses in vnet address space')
param vnetIpPrefix string = '10.0.0.0/16'
@description('Specify whether to provision new vnet or deploy to existing vnet')
@allowed([
'new'
'existing'
])
param vnetNewOrExisting string = 'existing'
@description('Bastion subnet IP prefix MUST be within vnet IP prefix address space')
param bastionSubnetIpPrefix string = '10.0.1.0/26'
@description('Name of Azure Bastion resource')
param bastionHostName = 'VNet-bastion'
Zapisz plik bastion.bicep .
Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell:
Interfejs Linii Komend (CLI)
az deployment group create \
--resource-group TestRG \
--template-file bastion.bicep
PowerShell
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'bastion.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
Po zakończeniu wdrażania zostanie wyświetlony komunikat informujący o tym, że wdrożenie zakończyło się pomyślnie.
Uwaga / Notatka
Maszyny wirtualne w sieci wirtualnej z hostem usługi Bastion nie wymagają publicznych adresów IP. Usługa Bastion udostępnia publiczny adres IP, a maszyny wirtualne używają prywatnych adresów IP do komunikacji w sieci. Publiczne adresy IP można usunąć ze wszystkich maszyn wirtualnych w sieciach wirtualnych hostowanych w usłudze Bastion. Aby uzyskać więcej informacji, zobacz Usuwanie skojarzenia publicznego adresu IP z maszyny wirtualnej Azure.
Przeglądanie wdrożonych zasobów
Użyj interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal, aby przejrzeć wdrożone zasoby:
Interfejs Linii Komend (CLI)
az resource list --resource-group TestRG
PowerShell
Get-AzResource -ResourceGroupName TestRG
Portal
W witrynie Azure Portal wyszukaj i wybierz grupy zasobów. Na stronie Grupy zasobów wybierz pozycję TestRG z listy grup zasobów.
Na stronie Przegląd grupy TestRG przejrzyj wszystkie utworzone zasoby, w tym sieć wirtualną, dwie maszyny wirtualne i host usługi Bastion.
Wybierz sieć wirtualną VNet. Na stronie Przegląd sieci wirtualnej zanotuj zdefiniowaną przestrzeń adresową 10.0.0.0/16.
W menu po lewej stronie wybierz pozycję Podsieci. Na stronie Podsieci zanotuj wdrożone podsieci backendSubnet i AzureBastionSubnet wraz z przypisanymi wartościami z plików Bicep.