Erfahren Sie, wie Sie ein virtuelles Azure-Netzwerk mithilfe des Azure-Portals, azure CLI, Azure PowerShell, Azure Resource Manager (ARM)-Vorlage, Bicep-Vorlage 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. Mit Azure Virtual Network können Azure-Ressourcen wie virtuelle Computer sicher miteinander und im Internet kommunizieren.
Verwenden Sie die folgenden Werte, um die Platzhalter von Ressourcen in diesem Artikel zu ersetzen:
Erstellen einer Ressourcengruppe
Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an.
Geben Sie oben im Portal im Suchfeld Ressourcengruppe ein. Wählen Sie in den Suchergebnissen Ressourcengruppen aus.
Wählen Sie + Erstellen aus.
Geben Sie auf der Registerkarte Grundlagen von Ressourcengruppe erstellen die folgenden Informationen ein, oder wählen Sie sie aus:
| Konfiguration |
Wert |
| Abonnement |
Wählen Sie Ihr Abonnement aus. |
| Ressourcengruppe |
Geben Sie <die Ressourcengruppe> ein. |
| Region |
Wählen Sie "Region"< aus>. |
Klicken Sie auf Überprüfen + erstellen.
Wählen Sie "Erstellen" aus.
Erstellen eines virtuellen Netzwerks
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtuelles Netzwerk ein. Wählen Sie in den Suchergebnissen Virtuelle Netzwerke aus.
Wählen Sie + 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 "Ressourcengruppe<"> aus. |
|
Instanzdetails |
|
| Name |
Geben Sie <das virtuelle Netzwerk> ein. |
| Region |
Wählen Sie "Region"< aus>. |
Wählen Sie Weiter aus, um zur Registerkarte Sicherheit zu gelangen.
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 in "Subnetz bearbeiten" die folgenden Informationen ein, oder wählen Sie sie aus:
| Konfiguration |
Wert |
|
Subnetzdetails |
|
| Subnetzvorlage |
Belassen Sie den Standard Default. |
| Name |
Geben Sie Subnetz< ein>. |
| Startadresse |
Lassen Sie den Standardwert 10.0.0.0. |
| Subnetzgröße |
Lassen Sie den Standardwert /24 (256 Adressen) bestehen. |
Wählen Sie Speichern aus.
Wählen Sie am unteren Bildschirmrand Überprüfen + erstellen aus, und wenn die Validierung erfolgreich ist, wählen Sie Erstellen aus.
Bereitstellen von Azure Bastion
Azure Bastion verwendet Ihren Browser, um eine Verbindung zu virtuellen Computern (VMs) in Ihrem virtuellen Netzwerk mithilfe ihrer privaten IP-Adressen über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die virtuellen Computer benötigen keine öffentlichen IP-Adressen, Clientsoftware oder spezielle Konfiguration. Weitere Informationen zu Azure Bastion finden Sie unter 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 am oberen Rand des Portals den Suchbegriff Bastion in das Suchfeld ein. Wählen Sie Bastionen in den Suchergebnissen aus.
Wählen Sie + Erstellen aus.
Geben Sie auf der Registerkarte " Grundlagen " von " Bastion erstellen" die folgenden Informationen ein, oder wählen Sie die folgenden Informationen aus:
| Konfiguration |
Wert |
|
Projektdetails |
|
| Abonnement |
Wählen Sie Ihr Abonnement aus. |
| Ressourcengruppe |
Wählen Sie "Ressourcengruppe<"> aus. |
|
Instanzdetails |
|
| Name |
Geben Sie <Bastion ein>. |
| Region |
Wählen Sie "Region"< aus>. |
| Tarif |
Wählen Sie Entwickler aus. |
|
Konfigurieren virtueller Netzwerke |
|
| Virtuelles Netzwerk |
Wählen Sie <virtuelles Netzwerk> aus. |
Klicken Sie auf Überprüfen + erstellen.
Wählen Sie "Erstellen" aus.
Erstellen von virtuellen Computern
Im folgenden Verfahren werden zwei virtuelle Computer mit dem Namen <"virtual-machine-1> " und <"virtual-machine-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 "Ressourcengruppe<"> aus. |
|
Instanzdetails |
|
| Name des virtuellen Computers |
Geben Sie <virtual-machine-1> ein. |
| Region |
Wählen Sie "Region"< aus>. |
| Verfügbarkeitsoptionen |
Wählen Sie die Option Keine Infrastrukturredundanz erforderlich aus. |
| Sicherheitstyp |
Lassen Sie die Voreinstellung auf Standard. |
| Image |
Wählen Sie Ubuntu Server 22.04 LTS – x64 Gen2 aus. |
| VM-Architektur |
Lassen Sie den Standardwert x64. |
| Size |
Wählen Sie eine Größe aus. |
|
Administratorkonto |
|
| Authentifizierungsart |
Wählen Sie Öffentlicher SSH-Schlüssel aus. |
| Nutzername |
Geben Sie azureuser ein. |
| Quelle für öffentlichen SSH-Schlüssel |
Wählen Sie Neues Schlüsselpaar generieren aus. |
| Schlüsselpaarname |
Geben Sie <"Virtual-machine-1>"-Schlüssel 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 <virtuelles Netzwerk> aus. |
| Subnetz |
Wählen Sie <subnetz> (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 < "network-security-group" > als Namen 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 <virtual-machine-2> ein. |
| Quelle für öffentlichen SSH-Schlüssel |
Wählen Sie Neues Schlüsselpaar generieren aus. |
| Schlüsselpaarname |
Geben Sie <"virtual-machine-2>"-Schlüssel ein. |
| Virtuelles Netzwerk |
Wählen Sie <virtuelles Netzwerk> aus. |
| Subnetz |
Wählen Sie <subnetz> (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 <"Netzwerksicherheitsgruppe>" 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 für das virtuelle Netzwerk zu erstellen. Führen Sie den folgenden Code aus, um eine Ressourcengruppe namens <"Ressourcengruppe> " in der <Region> Azure-Region zu erstellen:
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$rg = @{
Name = $resourceGroupName
Location = $location
}
New-AzResourceGroup @rg
Erstellen eines virtuellen Netzwerks
Verwenden Sie New-AzVirtualNetwork um ein virtuelles Netzwerk namens <virtual-network> mit dem IP-Adresspräfix 10.0.0.0/16 in der <resource-group> Ressourcengruppe und der <region> zu erstellen.
# Variable declarations
$virtualNetworkName = 'vnet-1' # <virtual-network>
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$vnet = @{
Name = $virtualNetworkName
ResourceGroupName = $resourceGroupName
Location = $location
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Azure stellt Ressourcen in einem Subnetz innerhalb eines virtuellen Netzwerks bereit. Verwenden Sie Add-AzVirtualNetworkSubnetConfig , um eine Subnetzkonfiguration namens <Subnetz> mit Adresspräfix 10.0.0.0/24 zu erstellen:
# Variable declarations
$subnetName = 'subnet-1' # <subnet>
$subnet = @{
Name = $subnetName
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 ihrer privaten IP-Adressen eine Verbindung mit virtuellen Computern in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder REMOTE Desktop Protocol (RDP) herzustellen. Die virtuellen Computer benötigen keine öffentlichen IP-Adressen, Clientsoftware oder spezielle Konfiguration. Weitere Informationen zu Azure 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.
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$ip = @{
ResourceGroupName = $resourceGroupName
Name = 'public-ip'
Location = $location
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
Verwenden Sie den Befehl "New-AzBastion ", um einen neuen Basic SKU Bastion-Host in AzureBastionSubnet zu erstellen:
# Variable declarations
$bastionName = 'bastion' # <bastion>
$resourceGroupName = 'test-rg' # <resource-group>
$virtualNetworkName = 'vnet-1' # <virtual-network>
$bastion = @{
Name = $bastionName
ResourceGroupName = $resourceGroupName
PublicIpAddressRgName = $resourceGroupName
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = $resourceGroupName
VirtualNetworkName = $virtualNetworkName
Sku = 'Basic'
}
New-AzBastion @bastion
Die Bereitstellung der Bastion-Ressourcen dauert etwa 10 Minuten. Sie können virtuelle Computer im nächsten Abschnitt erstellen, während Bastion in Ihrem virtuellen Netzwerk bereitgestellt wird.
Erstellen von virtuellen Computern
Erstellen des ersten virtuellen Computers
Erstellen Sie einen virtuellen Computer mit New-AzVM. Im folgenden Beispiel wird ein virtueller Computer namens <virtual-machine-1> im <virtuellen Netzwerk> erstellt.
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$vm1Name = 'vm-1' # <virtual-machine-1>
$virtualNetworkName = 'vnet-1' # <virtual-network>
$subnetName = 'subnet-1' # <subnet>
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = $resourceGroupName
Location = $location
Name = $vm1Name
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = $virtualNetworkName
SubnetName = $subnetName
PublicIpAddressName = "" # No public IP address
SshKeyName = "$vm1Name-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
Erstellen des zweiten virtuellen Computers
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$vm2Name = 'vm-2' # <virtual-machine-2>
$virtualNetworkName = 'vnet-1' # <virtual-network>
$subnetName = 'subnet-1' # <subnet>
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = $resourceGroupName
Location = $location
Name = $vm2Name
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = $virtualNetworkName
SubnetName = $subnetName
PublicIpAddressName = "" # No public IP address
SshKeyName = "$vm2Name-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
Es dauert ein paar Minuten, bis Azure die virtuellen Computer erstellt hat. Wenn Azure die Erstellung der virtuellen Computer abgeschlossen hat, wird die Ausgabe an PowerShell zurückgegeben.
Hinweis
Virtuelle Computer in einem virtuellen Netzwerk mit einem Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP bereit, und die virtuellen Computer verwenden private IPs, um innerhalb des Netzwerks zu kommunizieren. Sie können die öffentlichen IPs von allen virtuellen Computern in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen eine öffentliche IP-Adresse von einer virtuellen Azure-Maschine.
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. Verwenden Sie den folgenden Code, um eine Ressourcengruppe namens <"Ressourcengruppe> " in der <Region> Azure-Region zu erstellen:
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
location="eastus2" # <region>
az group create \
--name $resourceGroupName \
--location $location
Erstellen eines virtuellen Netzwerks und des Subnetzes
Verwenden Sie az network vnet create, um ein virtuelles Netzwerk namens <virtual-network> mit einem Subnetz namens <subnet> in der Ressourcengruppe <resource-group> zu erstellen.
# Variable declarations
virtualNetworkName="vnet-1" # <virtual-network>
resourceGroupName="test-rg" # <resource-group>
subnetName="subnet-1" # <subnet>
az network vnet create \
--name $virtualNetworkName \
--resource-group $resourceGroupName \
--address-prefix 10.0.0.0/16 \
--subnet-name $subnetName \
--subnet-prefixes 10.0.0.0/24
Bereitstellen von Azure Bastion
Azure Bastion verwendet Ihren Browser, um mithilfe ihrer privaten IP-Adressen eine Verbindung mit virtuellen Computern in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder REMOTE Desktop Protocol (RDP) herzustellen. Die virtuellen Computer benötigen keine öffentlichen IP-Adressen, Clientsoftware oder 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 Azure 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.
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
virtualNetworkName="vnet-1" # <virtual-network>
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group $resourceGroupName \
--vnet-name $virtualNetworkName \
--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 eine öffentliche IP-Adresse mit dem Namen „public-ip“ in der <Ressourcengruppe> zu erstellen.
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
location="eastus2" # <region>
az network public-ip create \
--resource-group $resourceGroupName \
--name public-ip \
--sku Standard \
--location $location \
--zone 1 2 3
Verwenden Sie az network bastion create, um einen Bastion-Host im AzureBastionSubnet Ihres virtuellen Netzwerks zu erstellen:
# Variable declarations
bastionName="bastion" # <bastion>
resourceGroupName="test-rg" # <resource-group>
virtualNetworkName="vnet-1" # <virtual-network>
location="eastus2" # <region>
az network bastion create \
--name $bastionName \
--public-ip-address public-ip \
--resource-group $resourceGroupName \
--vnet-name $virtualNetworkName \
--location $location \
--sku Basic
Die Bereitstellung der Bastion-Ressourcen dauert etwa 10 Minuten. Sie können virtuelle Computer im nächsten Abschnitt erstellen, während Bastion in Ihrem virtuellen Netzwerk bereitgestellt wird.
Erstellen von virtuellen Computern
Erstellen des ersten virtuellen Computers
Erstellen Sie einen virtuellen Computer mit az vm create. Im folgenden Beispiel wird ein virtueller Computer namens <virtual-machine-1> im <virtuellen Netzwerk> erstellt. Wenn SSH-Schlüssel nicht bereits an einem Standardschlüsselspeicherort vorhanden sind, werden sie durch den Befehl erstellt. Mit der --no-wait Option wird der virtuelle Computer im Hintergrund erstellt, sodass Sie mit dem nächsten Schritt fortfahren können.
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
vm1Name="vm-1" # <virtual-machine-1>
virtualNetworkName="vnet-1" # <virtual-network>
subnetName="subnet-1" # <subnet>
az vm create \
--resource-group $resourceGroupName \
--name $vm1Name \
--image Ubuntu2204 \
--vnet-name $virtualNetworkName \
--subnet $subnetName \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys \
--no-wait
Erstellen des zweiten virtuellen Computers
Erstellen Sie einen virtuellen Computer namens <virtual-machine-2> im <virtuellen Netzwerk> .
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
vm2Name="vm-2" # <virtual-machine-2>
virtualNetworkName="vnet-1" # <virtual-network>
subnetName="subnet-1" # <subnet>
az vm create \
--resource-group $resourceGroupName \
--name $vm2Name \
--image Ubuntu2204 \
--vnet-name $virtualNetworkName \
--subnet $subnetName \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys
Das Erstellen des virtuellen Computers dauert einige Minuten.
Hinweis
Virtuelle Computer in einem virtuellen Netzwerk mit einem Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP bereit, und die virtuellen Computer verwenden private IPs, um innerhalb des Netzwerks zu kommunizieren. Sie können die öffentlichen IPs von allen virtuellen Computern 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
Diese Schnellstartanleitung verwendet die Vorlage "Two VMs in virtual network Bicep" aus Azure Resource Manager Quickstart Templates , um das virtuelle Netzwerk, das Ressourcensubnetz und virtuelle Computer 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
Wenn die Bereitstellung abgeschlossen ist, 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 virtuellen Computern in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder REMOTE Desktop Protocol (RDP) herzustellen. Die virtuellen Computer benötigen keine öffentlichen IP-Adressen, Clientsoftware oder spezielle Konfiguration. Weitere Informationen zu Azure 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
Wenn die Bereitstellung abgeschlossen ist, gibt eine Meldung an, dass die Bereitstellung erfolgreich war.
Hinweis
Virtuelle Computer in einem virtuellen Netzwerk mit einem Bastion-Host benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP bereit, und die virtuellen Computer verwenden private IPs, um innerhalb des Netzwerks zu kommunizieren. Sie können die öffentlichen IPs von allen virtuellen Computern 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 virtuellen Computer 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.