In dieser Schnellstartanleitung erfahren Sie, wie Sie ein Virtuelles Azure-Netzwerk (VNet) mithilfe des Azure-Portals, der Azure CLI, der Azure PowerShell-Vorlage, der Vorlage "Ressourcen-Manager", der Vorlage "Bicep" und "Terraform" erstellen. Zwei virtuelle Computer und ein Azure Bastion-Host werden bereitgestellt, um die Konnektivität zwischen den virtuellen Computern im selben virtuellen Netzwerk zu testen. Der Azure Bastion-Host erleichtert sichere und nahtlose RDP- und SSH-Konnektivität mit den virtuellen Computern direkt im Azure-Portal über SSL.
Ein virtuelles Netzwerk ist der grundlegende Baustein für private Netzwerke in Azure. Azure Virtual Network ermöglicht Azure-Ressourcen wie VMs die sichere Kommunikation mit einander und dem Internet.
Anmelden bei Azure
Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an.
Erstellen eines virtuellen Netzwerks und eines Azure Bastion-Hosts
Mit den folgenden Schritten wird ein virtuelles Netzwerk mit einem Ressourcensubnetz, einem Azure Bastion-Subnetz und einem Bastion-Host erstellt:
Suchen Sie im Portal nach der Option Virtuelle Netzwerke und wählen Sie sie aus.
Wählen Sie auf der Seite Virtuelle Netzwerke die Option + Erstellen aus.
Geben Sie unter Virtuelles Netzwerk erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, oder wählen Sie sie aus:
Konfiguration |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie "Neu erstellen" aus.
Geben Sie test-rg für den Namen ein.
Wählen Sie OK aus. |
Instanzdetails |
|
Name |
Geben Sie vnet-1 ein. |
Region |
Wählen Sie USA, Osten 2 aus. |
Wählen Sie Weiter aus, um zur Registerkarte Sicherheit zu gelangen.
Wählen Sie im Abschnitt Azure Bastion die Option Azure Bastion aktivieren aus.
Bastion verwendet Ihren Browser, um mithilfe ihrer privaten IP-Adressen eine Verbindung mit VMs in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die VMs benötigen keine öffentlichen IP-Adressen, keine Clientsoftware und keine spezielle Konfiguration. Weitere Informationen finden Sie unter Was ist Azure Bastion?.
Hinweis
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion als Teil eines Tutorials oder Tests einsetzen, empfehlen wir Ihnen, diese Ressource zu löschen, nachdem Sie diese benutzt haben.
Geben Sie unter Azure Bastion die folgenden Informationen ein, oder wählen Sie diese aus:
Konfiguration |
Wert |
Azure Bastion-Hostname |
Geben Sie bastion ein. |
Öffentliche Azure Bastion-IP-Adresse |
Wählen Sie Öffentliche IP-Adresse erstellen aus.
Geben Sie public-ip-bastion als Namen ein.
Wählen Sie OK aus. |
Wählen Sie Weiter aus, um zur Registerkarte IP-Adressen zu gelangen.
Wählen Sie im Feld für den Adressraum unter Subnetze das Standardsubnetz aus.
Geben Sie unter Subnetz bearbeiten die folgenden Informationen ein, oder wählen Sie sie aus:
Konfiguration |
Wert |
Subnetzzweck |
Lassen Sie den Standardwert auf Default. |
Name |
Geben Sie subnet-1 ein. |
IPv4 |
|
IPv4-Adressbereich |
Belassen Sie die Standardeinstellung 10.0.0.0/16. |
Startadresse |
Lassen Sie den Standardwert 10.0.0.0. |
Größe |
Lassen Sie den Standardwert /24 (256 Adressen) bestehen. |
Wählen Sie Speichern aus.
Wählen Sie unten im Fenster die Option Überprüfen + erstellen aus. Wenn die Überprüfung erfolgreich ist, wählen Sie "Erstellen" aus.
Erstellen von virtuellen Computern
Mit der folgenden Prozedur werden zwei VMs mit den Namen vm-1 und vm-2 im virtuellen Netzwerk erstellt:
Suchen Sie im Portal nach Virtuelle Computer, und klicken Sie darauf.
Wählen Sie unter VMs die Option + Erstellen und dann Azure-VM aus.
Geben Sie unter Virtuellen Computer erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, oder wählen Sie sie aus:
Konfiguration |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie test-rg aus. |
Instanzdetails |
|
Name des virtuellen Computers |
Geben Sie vm-1 ein. |
Region |
Wählen Sie USA, Osten 2 aus. |
Verfügbarkeitsoptionen |
Wählen Sie die Option Keine Infrastrukturredundanz erforderlich aus. |
Sicherheitstyp |
Lassen Sie die Voreinstellung auf Standard. |
Abbildung |
Wählen Sie Ubuntu Server 22.04 LTS – x64 Gen2 aus. |
VM-Architektur |
Lassen Sie den Standardwert x64. |
Größe |
Wählen Sie eine Größe aus. |
Administratorkonto |
|
Authentifizierungsart |
Wählen Sie Kennwort aus. |
Nutzername |
Geben Sie azureuser ein. |
Passwort |
Geben Sie ein Kennwort ein. |
Kennwort bestätigen |
Geben Sie das Kennwort erneut ein. |
Regeln für eingehende Ports |
|
Öffentliche Eingangsports |
Wählen Sie Keine aus. |
Wählen Sie die Registerkarte Netzwerk aus. Geben Sie die folgenden Informationen an:
Konfiguration |
Wert |
Netzwerkschnittstelle |
|
Virtuelles Netzwerk |
Wählen Sie vnet-1 aus. |
Subnetz |
Wählen Sie Subnetz-1 (10.0.0.0/24) aus. |
Öffentliche IP-Adresse |
Wählen Sie Keine aus. |
NIC-Netzwerksicherheitsgruppe |
Wählen Sie "Erweitert" aus. |
Konfigurieren von Netzwerksicherheitsgruppen |
Wählen Sie "Neu erstellen" aus.
Geben Sie nsg-1 für Name ein.
Behalten Sie für den Rest die Standards bei, und wählen Sie OK aus. |
Behalten Sie für die restlichen Einstellungen die Standards bei, und wählen Sie dann Überprüfen + erstellen aus.
Überprüfen Sie die Einstellungen, und wählen Sie Erstellen aus.
Warten Sie, bis die erste VM bereitgestellt wird, und wiederholen Sie dann die vorherigen Schritte, um eine zweite VM mit den folgenden Einstellungen zu erstellen:
Konfiguration |
Wert |
Name des virtuellen Computers |
Geben Sie vm-2 ein. |
Virtuelles Netzwerk |
Wählen Sie vnet-1 aus. |
Subnetz |
Wählen Sie Subnetz-1 (10.0.0.0/24) aus. |
Öffentliche IP-Adresse |
Wählen Sie Keine aus. |
NIC-Netzwerksicherheitsgruppe |
Wählen Sie "Erweitert" aus. |
Konfigurieren von Netzwerksicherheitsgruppen |
Wählen Sie nsg-1 aus. |
Hinweis
VMs in einem virtuellen Netzwerk mit einem Azure Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP-Adresse bereit und die VMs verwenden private IP-Adressen für die Kommunikation innerhalb des Netzwerks. Sie können die öffentlichen IP-Adressen von allen VMs in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen einer öffentlichen IP-Adresse von einer Azure-VM.
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:
- Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Backend-Pool eines Standard-Load-Balancers platziert, mit oder ohne ausgehende Regeln.
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Erstellen einer Ressourcengruppe
Verwenden Sie New-AzResourceGroup, um eine Ressourcengruppe zum Hosten des virtuellen Netzwerks zu erstellen. Führen Sie den folgenden Code aus, um eine Ressourcengruppe mit dem Namen test-rg in der Azure-Region eastus2 zu erstellen.
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Erstellen eines virtuellen Netzwerks
Verwenden Sie New-AzVirtualNetwork, um ein virtuelles Netzwerk mit dem Namen vnet-1 und dem IP-Adresspräfix 10.0.0.0/16 in der Ressourcengruppe test-rg am Speicherort eastus2 zu erstellen.
$vnet = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Azure stellt Ressourcen in einem Subnetz innerhalb eines virtuellen Netzwerks bereit. Erstellen Sie mit Add-AzVirtualNetworkSubnetConfig eine Subnetzkonfiguration namens subnet-1 mit dem Adresspräfix 10.0.0.0/24.
$subnet = @{
Name = 'subnet-1'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Verknüpfen Sie mithilfe von Set-AzVirtualNetwork die Subnetzkonfiguration mit dem virtuellen Netzwerk.
$virtualNetwork | Set-AzVirtualNetwork
Bereitstellen von Azure Bastion
Azure Bastion verwendet Ihren Browser, um mithilfe der privaten IP-Adressen eine Verbindung mit VMs in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die VMs benötigen keine öffentlichen IP-Adressen, keine Clientsoftware und keine spezielle Konfiguration. Weitere Informationen zu Bastion finden Sie unter Was ist Azure Bastion?.
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion als Teil eines Tutorials oder Tests einsetzen, empfehlen wir Ihnen, diese Ressource zu löschen, nachdem Sie diese benutzt haben.
Konfigurieren Sie ein Bastion-Subnetz für Ihr virtuelles Netzwerk. Dieses Subnetz ist ausschließlich für Bastion-Ressourcen reserviert und muss den Namen AzureBastionSubnet haben.
$subnet = @{
Name = 'AzureBastionSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.1.0/26'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Legen Sie die Konfiguration fest:
$virtualNetwork | Set-AzVirtualNetwork
Erstellen Sie eine öffentliche IP-Adresse für Bastion. Der Bastion-Host verwendet die öffentliche IP-Adresse für den Zugriff auf SSH und RDP über Port 443.
$ip = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip'
Location = 'eastus2'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
Verwenden Sie den Befehl New-AzBastion, um einen neuen Azure Bastion-Host der Standard-SKU in AzureBastionSubnet zu erstellen:
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion
Die Bereitstellung der Bastion-Ressourcen dauert etwa 10 Minuten. Sie können im nächsten Abschnitt VMs erstellen, während Bastion in Ihrem virtuellen Netzwerk bereitgestellt wird.
Erstellen von virtuellen Computern
Verwenden Sie New-AzVM, um zwei VMs mit den Namen vm-1 und vm-2 im Subnetz subnet-1 des virtuellen Netzwerks zu erstellen. Wenn Sie zur Eingabe von Anmeldeinformationen aufgefordert werden, geben Sie Benutzernamen und Kennwörter für die VMs ein.
Erstellen Sie die erste VM mit folgendem Code:
# 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
Erstellen Sie die zweite VM mit folgendem Code:
# 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
Tipp
Sie können die Option -AsJob
verwenden, um im Hintergrund eine VM zu erstellen, während Sie mit anderen Aufgaben fortfahren. Führen Sie beispielsweise aus New-AzVM @vm1 -AsJob
. Wenn Azure beginnt, die VM im Hintergrund zu erstellen, wird in etwas folgendes zurückgegeben:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
Azure benötigt für das Erstellen der VMs einige Minuten. Wenn Azure die Erstellung der VMs abgeschlossen hat, wird eine Ausgabe an PowerShell zurückgegeben.
Hinweis
VMs in einem virtuellen Netzwerk mit einem Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP-Adresse bereit und die VMs verwenden private IP-Adressen für die Kommunikation innerhalb des Netzwerks. Sie können die öffentlichen IP-Adressen von allen VMs in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen einer öffentlichen IP-Adresse von einer Azure-VM.
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:
- Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Backend-Pool eines Standard-Load-Balancers platziert, mit oder ohne ausgehende Regeln.
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Erstellen einer Ressourcengruppe
Erstellen Sie zunächst mit az group create eine Ressourcengruppe zum Hosten des virtuellen Netzwerks. Führen Sie den folgenden Code aus, um eine Ressourcengruppe mit dem Namen test-rg in der Azure-Region eastus2 zu erstellen.
az group create \
--name test-rg \
--location eastus2
Erstellen eines virtuellen Netzwerks und des Subnetzes
Erstellen Sie mit az network vnet create ein virtuelles Netzwerk namens vnet-1 mit dem Subnetznamen subnet-1 in der Ressourcengruppe 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
Bereitstellen von Azure Bastion
Azure Bastion verwendet Ihren Browser, um mithilfe der privaten IP-Adressen eine Verbindung mit VMs in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die VMs benötigen keine öffentlichen IP-Adressen, keine Clientsoftware und keine spezielle Konfiguration.
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion als Teil eines Tutorials oder Tests einsetzen, empfehlen wir Ihnen, diese Ressource zu löschen, nachdem Sie diese benutzt haben. Weitere Informationen zu Bastion finden Sie unter Was ist Azure Bastion?.
Verwenden Sie az network vnet subnet create, um ein Bastion-Subnetz für Ihr virtuelles Netzwerk zu erstellen. Dieses Subnetz ist ausschließlich für Bastion-Ressourcen reserviert und muss den Namen AzureBastionSubnet haben.
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
Erstellen Sie eine öffentliche IP-Adresse für Bastion. Diese IP-Adresse dient zur Verbindung mit dem Bastion-Host über das Internet. Verwenden Sie az network public-ip create, um die öffentlich IP-Adresse public-ip in der Ressourcengruppe test-rg zu erstellen:
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
Verwenden Sie az network bastion create, um einen Bastion-Host im AzureBastionSubnet Ihres virtuellen Netzwerks zu erstellen:
az network bastion create \
--name bastion \
--public-ip-address public-ip \
--resource-group test-rg \
--vnet-name vnet-1 \
--location eastus2
Die Bereitstellung der Bastion-Ressourcen dauert etwa 10 Minuten. Sie können im nächsten Abschnitt VMs erstellen, während Bastion in Ihrem virtuellen Netzwerk bereitgestellt wird.
Erstellen von virtuellen Computern
Verwenden Sie az vm create, um zwei VMs mit den Namen vm-1 und vm-2 im Subnetz subnet-1 des virtuellen Netzwerks zu erstellen. Wenn Sie zur Eingabe von Anmeldeinformationen aufgefordert werden, geben Sie Benutzernamen und Kennwörter für die VMs ein.
Führen Sie folgenden Befehl aus, um die erste VM zu erstellen:
az vm create \
--resource-group test-rg \
--admin-username azureuser \
--authentication-type password \
--name vm-1 \
--image Ubuntu2204 \
--public-ip-address ""
Erstellen Sie die zweite VM mit folgendem Befehl:
az vm create \
--resource-group test-rg \
--admin-username azureuser \
--authentication-type password \
--name vm-2 \
--image Ubuntu2204 \
--public-ip-address ""
Tipp
Sie können auch die Option --no-wait
verwenden, um im Hintergrund eine VM zu erstellen, während Sie mit anderen Aufgaben fortfahren.
Die Erstellung der VMs kann einige Minuten dauern. Nachdem Azure eine VM erstellt hat, gibt die Azure CLI eine Ausgabe ähnlich der folgenden Meldung zurück:
{
"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": ""
}
Hinweis
VMs in einem virtuellen Netzwerk mit einem Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP-Adresse bereit und die VMs verwenden private IP-Adressen für die Kommunikation innerhalb des Netzwerks. Sie können die öffentlichen IP-Adressen von allen VMs in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen einer öffentlichen IP-Adresse von einer Azure-VM.
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:
- Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Backend-Pool eines Standard-Load-Balancers platziert, mit oder ohne ausgehende Regeln.
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Überprüfen der Vorlage
Die in dieser Schnellstartanleitung verwendete Vorlage stammt aus den Azure-Schnellstartvorlagen.
{
"$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')]"
}
}
]
}
}
]
}
Die Vorlage definiert die folgenden Azure-Ressourcen:
Implementieren der Vorlage
Bereitstellen der Ressourcen-Manager-Vorlage in Azure:
Wählen Sie "In Azure bereitstellen" aus, um sich bei Azure anzumelden und die Vorlage zu öffnen. Die Vorlage erstellt ein virtuelles Netzwerk mit zwei Subnetzen.
Geben Sie im Portal auf der Seite "Virtuelles Netzwerk mit zwei Subnetzen erstellen " die folgenden Werte ein, oder wählen Sie sie aus:
-
Ressourcengruppe: Wählen Sie "Neu erstellen" aus, geben Sie "CreateVNetQS-rg " für den Namen der Ressourcengruppe ein, und wählen Sie dann "OK" aus.
-
Name des virtuellen Netzwerks: Geben Sie einen Namen für das neue virtuelle Netzwerk ein.
Klicken Sie auf Überprüfen und erstellen und dann auf Erstellen.
Wenn die Bereitstellung abgeschlossen ist, wählen Sie die Schaltfläche "Zur Ressource wechseln " aus, um die von Ihnen bereitgestellten Ressourcen zu überprüfen.
Überprüfen der bereitgestellten Ressourcen
Erkunden Sie die Ressourcen, die Sie mit dem virtuellen Netzwerk erstellt haben, indem Sie die Einstellungsbereiche für VNet1 durchsuchen:
Auf der Registerkarte "Übersicht " wird der definierte Adressraum 10.0.0.0/16 angezeigt.
Auf der Registerkarte " Subnetze " werden die bereitgestellten Subnetze von Subnetz1 und Subnetz2 mit den entsprechenden Werten aus der Vorlage angezeigt.
Informationen zur JSON-Syntax und -Eigenschaften für ein virtuelles Netzwerk in einer Vorlage finden Sie unter Microsoft.Network/virtualNetworks.
Erstellen des virtuellen Netzwerks und der virtuellen Computer
In dieser Schnellstartanleitung wird die Bicep-Vorlage Zwei VMs in VNet aus Azure Resource Manager-Schnellstartvorlagen verwendet, um das virtuelle Netzwerk, das Ressourcensubnetz und die VMs zu erstellen. In der Bicep-Vorlage sind folgende Azure-Ressourcen definiert:
Überprüfen der Bicep-Datei:
@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
Bereitstellen der Bicep-Vorlage
Speichern Sie die Bicep-Datei unter dem Namenmain.bicep auf Ihrem lokalen Computer.
Stellen Sie die Bicep-Datei entweder mit der Azure CLI oder mit Azure PowerShell bereit:
Befehlszeilenschnittstelle (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
Nach Abschluss der Bereitstellung gibt eine Meldung an, dass die Bereitstellung erfolgreich war.
Bereitstellen von Azure Bastion
Bastion verwendet Ihren Browser, um mithilfe ihrer privaten IP-Adressen eine Verbindung mit VMs in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die VMs benötigen keine öffentlichen IP-Adressen, keine Clientsoftware und keine spezielle Konfiguration. Weitere Informationen zu Bastion finden Sie unter Was ist Azure Bastion?.
Hinweis
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion als Teil eines Tutorials oder Tests einsetzen, empfehlen wir Ihnen, diese Ressource zu löschen, nachdem Sie diese benutzt haben.
Verwenden Sie die Bicep-Vorlage Azure Bastion-as-a-Service aus Azure Resource Manager-Schnellstartvorlagen, um Bastion in Ihrem virtuellen Netzwerk bereitzustellen und zu konfigurieren. In der Bicep-Vorlage sind die folgenden Azure-Ressourcen definiert:
Überprüfen der Bicep-Datei:
@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
}
}
}
]
}
}
Bereitstellen der Bicep-Vorlage
Speichern Sie die Bicep-Datei unter dem Namenbastion.bicep auf Ihrem lokalen Computer.
Verwenden Sie einen Text- oder Code-Editor, um die folgenden Änderungen an der Datei vorzunehmen:
- Zeile 2: Ändern Sie
param vnetName string
von 'vnet01'
in 'VNet'
.
- Zeile 5: Ändern Sie
param vnetIpPrefix string
von '10.1.0.0/16'
in '10.0.0.0/16'
.
- Zeile 12: Ändern Sie
param vnetNewOrExisting string
von 'new'
in 'existing'
.
- Zeile 15: Ändern Sie
param bastionSubnetIpPrefix string
von '10.1.1.0/26'
in '10.0.1.0/26'
.
- Zeile 18: Ändern Sie
param bastionHostName string
in param bastionHostName = 'VNet-bastion'
.
Die ersten 18 Zeilen Ihrer Bicep-Datei sollten nun wie das folgende Beispiel aussehen:
@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'
Speichern Sie die Datei bastion.bicep.
Stellen Sie die Bicep-Datei entweder mit der Azure CLI oder mit Azure PowerShell bereit:
Befehlszeilenschnittstelle (CLI)
az deployment group create \
--resource-group TestRG \
--template-file bastion.bicep
PowerShell
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'bastion.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
Nach Abschluss der Bereitstellung gibt eine Meldung an, dass die Bereitstellung erfolgreich war.
Hinweis
VMs in einem virtuellen Netzwerk mit einem Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP-Adresse bereit und die VMs verwenden private IP-Adressen für die Kommunikation innerhalb des Netzwerks. Sie können die öffentlichen IP-Adressen von allen VMs in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen einer öffentlichen IP-Adresse von einer Azure-VM.
Überprüfen der bereitgestellten Ressourcen
Verwenden Sie die Azure CLI, Azure PowerShell oder das Azure-Portal zur Überprüfung der bereitgestellten Ressourcen:
Befehlszeilenschnittstelle (CLI)
az resource list --resource-group TestRG
PowerShell
Get-AzResource -ResourceGroupName TestRG
Portal
Suchen Sie im Azure-Portal nach Ressourcengruppen, und wählen Sie die entsprechende Option aus. Wählen Sie auf der Seite Ressourcengruppen in der Liste der Ressourcengruppen TestRG aus.
Überprüfen Sie auf der Seite Übersicht für TestRG alle Ressourcen, die Sie erstellt haben, einschließlich des virtuellen Netzwerks, der beiden VMs und des Bastion-Hosts.
Wählen Sie das virtuelle Netzwerk VNet aus. Auf der Seite Übersicht für VNet wird der definierte Adressraum 10.0.0.0/16 angezeigt.
Wählen Sie im linken Menü Subnetze aus. Beachten Sie auf der Seite Subnetze die bereitgestellten Subnetze backendSubnet und AzureBastionSubnet mit den zugewiesenen Werten aus den Bicep-Dateien.