Sie können eine Netzwerksicherheitsgruppe verwenden, um eingehenden und ausgehenden Netzwerkdatenverkehr von und zu Azure-Ressourcen in einem virtuellen Azure-Netzwerk zu filtern.
Netzwerksicherheitsgruppen enthalten Sicherheitsregeln, die Netzwerkdatenverkehr nach IP-Adresse, Port und Protokoll filtern. Wenn eine Netzwerksicherheitsgruppe einem Subnetz zugeordnet ist, werden Sicherheitsregeln auf Ressourcen angewendet, die in diesem Subnetz bereitgestellt werden.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
| Option |
Beispiel/Link |
| Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. |
|
| Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. |
|
| Wählen Sie im Azure-Portal rechts oben auf der Menüleiste die Schaltfläche Cloud Shell aus. |
|
So verwenden Sie Azure Cloud Shell
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.
Wenn Sie PowerShell lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens Version 1.0.0 des Azure PowerShell-Moduls verwenden. Führen Sie Get-Module -ListAvailable Az aus, um die installierte Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
- Für diesen Artikel ist mindestens Version 2.0.28 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Mit dem folgenden Verfahren wird ein virtuelles Netzwerk mit einem Ressourcensubnetz 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:
| Einstellung |
Wert |
|
Projektdetails |
|
| Abonnement |
Wählen Sie Ihr Abonnement aus. |
| Ressourcengruppe |
Wählen Sie Neu erstellen.
Geben Sie test-rg für Name ein.
Wählen Sie OK aus. |
|
Instanzendetails |
|
| 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 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 im Bereich Subnetz bearbeiten die folgenden Informationen ein, oder wählen Sie sie aus:
| Einstellung |
Wert |
|
Subnetzdetails |
|
| Subnetzvorlage |
Behalten Sie die Standardeinstellung als Standard bei. |
| Name |
Geben Sie Subnetz-1 ein. |
| Startadresse |
Behalten Sie die Standardeinstellung von 10.0.0.0 bei. |
| Subnetzgröße |
Übernehmen Sie den Standardwert: /24 (256 Adressen). |
Wählen Sie Speichern aus.
Wählen Sie unten auf dem Bildschirm die Option Überprüfen + erstellen aus. Wenn die Überprüfung erfolgreich war, wählen Sie Erstellen aus.
Erstellen Sie mit New-AzResourceGroup eine Ressourcengruppe für alle Ressourcen, die im Rahmen dieses Artikels erstellt werden. Im folgenden Beispiel wird eine Ressourcengruppe am Standort westus2 erstellt:
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Erstellen Sie mit New-AzVirtualNetwork ein virtuelles Netzwerk. Im folgenden Beispiel wird ein virtuelles Netzwerk namens vnet-1 erstellt:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Erstellen Sie mit New-AzVirtualNetworkSubnetConfig eine Subnetzkonfiguration, und schreiben Sie sie anschließend mit Set-AzVirtualNetwork in das virtuelle Netzwerk. Das folgende Beispiel fügt dem virtuellen Netzwerk ein Subnetz namens subnet-1 hinzu und weist ihm die Netzwerksicherheitsgruppe nsg-1 zu:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Erstellen Sie mit az group create eine Ressourcengruppe für alle in diesem Artikel erstellten Ressourcen. Im folgenden Beispiel wird eine Ressourcengruppe am Standort westus2 erstellt:
az group create \
--name test-rg \
--location westus2
Erstellen Sie mit az network vnet create ein virtuelles Netzwerk. Im folgenden Beispiel wird ein virtuelles Netzwerk namens vnet-1 erstellt:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Fügen Sie einem virtuellen Netzwerk mit az network vnet subnet create ein Subnetz hinzu. Das folgende Beispiel fügt dem virtuellen Netzwerk ein Subnetz namens subnet-1 hinzu und weist ihm die Netzwerksicherheitsgruppe nsg-1 zu:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
In diesem Abschnitt ordnen Sie die Netzwerksicherheitsgruppe dem Subnetz des zuvor erstellten virtuellen Netzwerks zu.
Wählen Sie im Abschnitt Einstellungen von nsg-1 die Option Eingangssicherheitsregeln aus.
Wählen Sie auf der Seite Eingangssicherheitsregeln die Option + Hinzufügen aus.
Erstellen Sie eine Sicherheitsregel, die Port 80 für die asg-web Anwendungssicherheitsgruppe freigibt. Geben Sie auf der Seite Eingangssicherheitsregel hinzufügen die folgenden Informationen ein, bzw. wählen Sie sie aus:
| Einstellung |
Wert |
| `Source` |
Übernehmen Sie den Standardwert Beliebig. |
| Quellportbereiche |
Übernehmen Sie den Standardwert (*). |
| Bestimmungsort |
Wählen Sie Anwendungssicherheitsgruppe aus. |
| Ziel-Anwendungssicherheitsgruppen |
Wählen Sie asg-web aus. |
| Dienst |
Übernehmen Sie den Standardwert Benutzerdefiniert. |
| Zielportbereiche |
Geben Sie 80 ein. |
| Protokoll |
Wählen Sie TCP aus. |
| Aktion |
Übernehmen Sie den Standardwert Zulassen. |
| Priority |
Übernehmen Sie den Standardwert 100. |
| Name |
Geben Sie "allow-http-web" ein. |
Wählen Sie Hinzufügen.
Führen Sie die vorherigen Schritte mit den folgenden Informationen aus:
| Einstellung |
Wert |
| `Source` |
Übernehmen Sie den Standardwert Beliebig. |
| Quellportbereiche |
Übernehmen Sie den Standardwert (*). |
| Bestimmungsort |
Wählen Sie Anwendungssicherheitsgruppe aus. |
| Ziel-Anwendungssicherheitsgruppe |
Wählen Sie asg-mgmt aus. |
| Dienst |
Übernehmen Sie den Standardwert Benutzerdefiniert. |
| Zielportbereiche |
Geben Sie 8080 ein. |
| Protokoll |
Wählen Sie TCP aus. |
| Aktion |
Übernehmen Sie den Standardwert Zulassen. |
| Priority |
Übernehmen Sie den Standardwert 110. |
| Name |
Geben Sie allow-8080-mgmt ein. |
Wählen Sie Hinzufügen.
Erstellen Sie mit New-AzNetworkSecurityRuleConfig eine Sicherheitsregel. Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet zur Anwendungssicherheitsgruppe asg-web über Port 80 zulässt:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-HTTP-Web"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet zur asg-mgmt-Anwendungssicherheitsgruppe über Port 8080 zulässt.
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-8080-Mgmt"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 8080
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Verwenden Sie Get-AzNetworkSecurityGroup, um die vorhandene Netzwerksicherheitsgruppe abzurufen, und fügen Sie dann die neuen Regeln mit dem +=-Operator hinzu. Aktualisieren Sie schließlich die Netzwerksicherheitsgruppe mit Set-AzNetworkSecurityGroup:
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Erstellen Sie mit az network nsg rule create eine Sicherheitsregel. Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet zur Anwendungssicherheitsgruppe asg-web über Port 80 zulässt.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-HTTP-Web \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80
Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet zur ASG-mgmt-Anwendungssicherheitsgruppe über Port 8080 zulässt.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-8080-Mgmt \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 8080
Erstellen Sie zwei virtuelle Computer (VMs) im virtuellen Netzwerk.
Suchen Sie im Portal nach Virtuelle Computer, und klicken Sie darauf.
Wählen Sie unter Virtuelle Maschinen die Option + Erstellen, dann Virtuelle Maschine.
Geben Sie unter Virtuellen Computer erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, bzw. wählen Sie sie aus:
| Einstellung |
Wert |
|
Projektdetails |
|
| Abonnement |
Wählen Sie Ihr Abonnement aus. |
| Ressourcengruppe |
Wählen Sie test-rg aus. |
|
Instanzendetails |
|
| Name des virtuellen Computers |
Geben Sie vm-web ein. |
| Region |
Wählen Sie USA, Westen 2 aus. |
| Verfügbarkeitsoptionen |
Übernehmen Sie den Standardwert Keine Infrastrukturredundanz erforderlich. |
| Sicherheitstyp |
Wählen Sie Standard aus. |
| Image |
Wählen Sie Ubuntu Server 24.04 LTS – x64 Gen2 aus. |
| Azure Spot-Instanz |
Übernehmen Sie die Standardeinstellung (deaktiviert). |
| 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. |
| Name des Schlüsselpaars |
Geben Sie vm-web-key ein. |
|
Regeln für eingehende Ports |
|
| Eingangsports auswählen |
Wählen Sie Keine. |
Wählen Sie Weiter: Datenträger und dann Weiter: Netzwerk aus.
Geben Sie auf der Registerkarte Netzwerk die folgenden Informationen ein, bzw. wählen Sie sie aus:
| Einstellung |
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 |
Übernehmen Sie den Standardwert einer neuen öffentlichen IP-Adresse. |
| NIC-Netzwerksicherheitsgruppe |
Wählen Sie Keine. |
Wählen Sie die Registerkarte Überprüfen + erstellen oder unten auf der Seite die blaue Schaltfläche Überprüfen + erstellen aus.
Klicken Sie auf Erstellen.
Wenn Sie aufgefordert werden, ein neues Schlüsselpaar zu generieren, wählen Sie "Privaten Schlüssel herunterladen" und "Ressource erstellen" aus. Der private Schlüssel wird auf Ihren lokalen Computer heruntergeladen. Die Bereitstellung der VM kann einige Minuten dauern.
Wiederholen Sie die vorherigen Schritte, um einen zweiten virtuellen Computer mit dem Namen "vm-mgmt " mit dem Schlüsselpaar " vm-mgmt-key" zu erstellen.
Rufen Sie vor dem Erstellen der virtuellen Computer mithilfe von Get-AzVirtualNetwork das virtuelle Netzwerkobjekt mit dem Subnetz ab:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Erstellen Sie mit New-AzPublicIpAddress eine öffentliche IP-Adresse für die einzelnen virtuellen Computer:
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Erstellen Sie mit New-AzNetworkInterface zwei Netzwerkschnittstellen, und weisen Sie ihnen eine öffentliche IP-Adresse zu. Im folgenden Beispiel wird eine Netzwerkschnittstelle erstellt, der die öffentliche IP-Adresse public-ip-vm-web zugeordnet wird.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
Im folgenden Beispiel wird eine Netzwerkschnittstelle erstellt, der die öffentliche IP-Adresse public-ip-vm-mgmt zugeordnet wird.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Erstellen Sie zwei virtuelle Computer im virtuellen Netzwerk, im in einem späteren Schritt die Datenverkehrsfilterung überprüfen zu können.
Generieren Sie SSH-Schlüssel in Azure mit New-AzSshKey. Im folgenden Beispiel werden SSH-Schlüsselressourcen für jeden virtuellen Computer erstellt:
# Create SSH key for vm-web
$webSshKeyParams = @{
ResourceGroupName = "test-rg"
Name = "vm-web-key"
}
New-AzSshKey @webSshKeyParams
# Create SSH key for vm-mgmt
$mgmtSshKeyParams = @{
ResourceGroupName = "test-rg"
Name = "vm-mgmt-key"
}
New-AzSshKey @mgmtSshKeyParams
Erstellen Sie mit New-AzVMConfig eine VM-Konfiguration und anschließend mit New-AzVM den virtuellen Computer. Das folgende Beispiel erstellt einen virtuellen Computer, der als Webserver fungiert. Mit der Option -AsJob wird der virtuelle Computer im Hintergrund erstellt, sodass Sie mit dem nächsten Schritt fortfahren können:
# Get the SSH public key
$sshKey = Get-AzSshKey -Name "vm-web-key" -ResourceGroupName "test-rg"
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmImageParams = @{
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | `
Set-AzVMOperatingSystem -Linux -ComputerName "vm-web" -Credential (New-Object System.Management.Automation.PSCredential("azureuser", (ConvertTo-SecureString "DummyP@ssw0rd" -AsPlainText -Force))) -DisablePasswordAuthentication | `
Set-AzVMSourceImage @vmImageParams | `
Add-AzVMNetworkInterface -Id $webNic.Id | `
Set-AzVMOSDisk -CreateOption FromImage | `
Set-AzVMBootDiagnostic -Disable | `
Add-AzVMSshPublicKey -KeyData $sshKey.publicKey -Path "/home/azureuser/.ssh/authorized_keys"
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Erstellen Sie einen virtuellen Computer, der als Verwaltungsserver fungiert:
# Get the SSH public key
$sshKey = Get-AzSshKey -Name "vm-mgmt-key" -ResourceGroupName "test-rg"
$mgmtVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmImageParams = @{
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @mgmtVmConfigParams | `
Set-AzVMOperatingSystem -Linux -ComputerName "vm-mgmt" -Credential (New-Object System.Management.Automation.PSCredential("azureuser", (ConvertTo-SecureString "DummyP@ssw0rd" -AsPlainText -Force))) -DisablePasswordAuthentication | `
Set-AzVMSourceImage @vmImageParams | `
Add-AzVMNetworkInterface -Id $mgmtNic.Id | `
Set-AzVMOSDisk -CreateOption FromImage | `
Set-AzVMBootDiagnostic -Disable | `
Add-AzVMSshPublicKey -KeyData $sshKey.publicKey -Path "/home/azureuser/.ssh/authorized_keys"
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
Das Erstellen des virtuellen Computers dauert einige Minuten. Fahren Sie mit dem nächsten Schritt erst fort, wenn Azure die Erstellung des virtuellen Computers abgeschlossen hat.
Erstellen Sie zwei virtuelle Computer im virtuellen Netzwerk, im in einem späteren Schritt die Datenverkehrsfilterung überprüfen zu können.
Erstellen Sie mit az vm create einen virtuellen Computer. Das folgende Beispiel erstellt einen virtuellen Computer, der als Webserver fungiert. Die --nsg ""-Option wird angegeben, um zu verhindern, dass Azure eine standardmäßige Netzwerksicherheitsgruppe für die Netzwerkschnittstelle erstellt, die Azure während der Erstellung des virtuellen Computers erstellt. Der Parameter --generate-ssh-keys bewirkt, dass die CLI in ~/.ssh nach einem verfügbaren SSH-Schlüssel sucht. Wenn ein Schlüssel gefunden wird, wird dieser Schlüssel verwendet. Wenn nicht, wird eine generiert und in ~/.ssh gespeichert.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2404 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys
Die Erstellung des virtuellen Computers dauert einige Minuten. Nachdem der virtuelle Computer erstellt wurde, wird eine Ausgabe ähnlich des folgenden Beispiels zurückgegeben:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Erstellen Sie mit az vm create einen virtuellen Computer. Im folgenden Beispiel wird eine VM erstellt, die als Verwaltungsserver dient:
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2404 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys
Die Erstellung des virtuellen Computers dauert einige Minuten. Fahren Sie mit dem nächsten Schritt erst fort, wenn Azure die Erstellung des virtuellen Computers abgeschlossen hat.
Als Sie die VMs erstellt haben, hat Azure eine Netzwerkschnittstelle für jede VM erstellt und an die VM angefügt.
Fügen Sie die Netzwerkschnittstellen der einzelnen virtuellen Computer einer der Anwendungssicherheitsgruppen hinzu, die Sie zuvor erstellt haben:
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtueller Computer ein. Wählen Sie in den Suchergebnissen Virtuelle Computer und dann vm-web aus.
Wählen Sie im Abschnitt Netzwerk von vm-web die Option Anwendungssicherheitsgruppen aus.
Wählen Sie Anwendungssicherheitsgruppen hinzufügen und dann auf der Registerkarte Anwendungssicherheitsgruppen hinzufügen die Option asg-web aus. Klicken Sie abschließend auf Hinzufügen.
Wiederholen Sie die vorherigen Schritte für vm-mgmt, und wählen Sie auf der Registerkarte Anwendungssicherheitsgruppen hinzufügen die Option asg-mgmt aus.
Verwenden Sie Get-AzNetworkInterface, um die Netzwerkschnittstelle des virtuellen Computers abzurufen, und verwenden Sie dann Get-AzApplicationSecurityGroup, um die Anwendungssicherheitsgruppe abzurufen. Verwenden Sie schließlich Set-AzNetworkInterface, um die Anwendungssicherheitsgruppe der Netzwerkschnittstelle zuzuordnen. Im folgenden Beispiel wird die Anwendungssicherheitsgruppe asg-web der Netzwerkschnittstelle vm-web-nic zugeordnet:
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Wiederholen Sie den Befehl, um die Anwendungssicherheitsgruppe asg-mgmt der Netzwerkschnittstelle vm-mgmt-nic zuzuordnen.
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Verwenden Sie az network nic update, um die Netzwerkschnittstelle der Anwendungssicherheitsgruppe zuzuordnen. Im folgenden Beispiel wird die Anwendungssicherheitsgruppe asg-web der Netzwerkschnittstelle vm-web-nic zugeordnet:
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Wiederholen Sie den Befehl, um die Anwendungssicherheitsgruppe asg-mgmt der Netzwerkschnittstelle vm-mgmt-nic zuzuordnen.
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtueller Computer ein. Wählen Sie in den Suchergebnissen Virtuelle Computer aus.
Wählen Sie "vm-web" aus.
Wählen Sie im Abschnitt "Vorgänge" den Befehl "Ausführen" aus.
Wählen Sie RunShellScript aus.
Geben Sie im Bereich "Befehlsskript ausführen " die folgenden Befehle ein:
sudo apt-get update -y
sudo apt-get install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Klicken Sie auf Ausführen. Warten Sie, bis das Skript erfolgreich abgeschlossen wurde.
Notieren Sie sich auf der Seite Übersicht unter vm-web die Angabe für Öffentliche IP-Adresse für Ihre VM.
Um zu bestätigen, dass Sie über Port 80 über das Internet auf den vm-web-Webserver zugreifen können, öffnen Sie einen Internetbrowser auf Ihrem Computer, und navigieren Sie zu http://<public-ip-address-from-previous-step>.
Die nginx-Standardseite wird angezeigt, da eingehender Datenverkehr vom Internet zur Sicherheitsgruppe der Asg-Webanwendung über Port 80 zulässig ist.
Die für vm-web angefügte Netzwerkschnittstelle ist der Anwendungssicherheitsgruppe asg-web zugeordnet und lässt die Verbindung zu.
Versuchen Sie, auf vm-web auf Port 443 zuzugreifen, indem Sie in Ihrem Browser zu https://<public-ip-address-vm-web> navigieren. Die Verbindung schlägt fehl oder wird in einem Timeout unterbrochen, weil die Sicherheitsregel für asg-web keine Möglichkeit bietet, Port 443 aus dem Internet einzugeben.
Konfigurieren Sie jetzt vm-mgmt mit nginx auf Port 8080. Wählen Sie "vm-mgmt " auf der Seite "Virtuelle Computer " aus.
Wählen Sie im Abschnitt "Vorgänge" den Befehl "Ausführen" aus.
Wählen Sie RunShellScript aus.
Geben Sie im Bereich "Befehlsskript ausführen " die folgenden Befehle ein, um nginx auf Port 8080 zu installieren:
sudo apt-get update -y
sudo apt-get install -y nginx
# Configure nginx to listen on port 8080
sudo tee /etc/nginx/sites-available/default > /dev/null <<EOF
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
sudo systemctl restart nginx
Klicken Sie auf Ausführen. Warten Sie, bis das Skript erfolgreich abgeschlossen wurde.
Notieren Sie sich auf der Seite "Übersicht" von vm-mgmt die öffentliche IP-Adresse für Ihren virtuellen Computer.
Um zu bestätigen, dass Sie über port 8080 über das Internet auf den webserver vm-mgmt zugreifen können, öffnen Sie einen Internetbrowser auf Ihrem Computer, und navigieren Sie zu http://<public-ip-address-vm-mgmt>:8080.
Die nginx-Standardseite wird angezeigt, da eingehender Datenverkehr vom Internet zur Asg-mgmt-Anwendungssicherheitsgruppe über Port 8080 zulässig ist.
Versuchen Sie, auf vm-mgmt auf Port 80 zuzugreifen, indem Sie http://<public-ip-address-vm-mgmt> in Ihrem Browser aufrufen. Die Verbindung schlägt fehl oder wird in einem Timeout unterbrochen, weil keine Sicherheitsregel für die Anwendungssicherheitsgruppe asg-mgmt die Möglichkeit bietet, Port 80 einzugeben.
Die für vm-web angefügte Netzwerkschnittstelle ist der Anwendungssicherheitsgruppe asg-web zugeordnet und lässt die Verbindung zu.
Installieren Sie nginx auf vm-web mit Invoke-AzVMRunCommand:
$webInstallParams = @{
ResourceGroupName = "test-rg"
VMName = "vm-web"
CommandId = "RunShellScript"
ScriptString = @"
sudo apt-get update -y
sudo apt-get install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
"@
}
Invoke-AzVMRunCommand @webInstallParams
Die Ausführung des Befehls kann einige Minuten dauern. Testen Sie nach Abschluss den Webzugriff auf vm-web.
Rufen Sie die öffentliche IP-Adresse von vm-web ab:
$webIPParams = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
$webIP = Get-AzPublicIpAddress @webIPParams
Write-Host "vm-web IP: $($webIP.IpAddress)"
Um zu bestätigen, dass Sie über Port 80 über das Internet auf den vm-web-Webserver zugreifen können, öffnen Sie einen Internetbrowser auf Ihrem Computer, und navigieren Sie zu http://<vm-web-ip-address>.
Die nginx-Standardseite wird angezeigt, da eingehender Datenverkehr aus dem Internet zur Sicherheitsgruppe der Asg-Webanwendung über Port 80 zulässig ist. Die an die VM vm-web angefügte Netzwerkschnittstelle befindet sich in dieser Gruppe.
Versuchen Sie, über Ihren Browser auf vm-web auf Port 443 zuzugreifen, indem Sie auf https://<vm-web-ip-address> surfen. Die Verbindung schlägt fehl oder wird in einem Timeout unterbrochen, weil die Sicherheitsregel für asg-web keine Möglichkeit bietet, Port 443 aus dem Internet einzugeben.
Installieren Sie jetzt nginx auf Port 8080 auf vm-mgmt:
$mgmtInstallParams = @{
ResourceGroupName = "test-rg"
VMName = "vm-mgmt"
CommandId = "RunShellScript"
ScriptString = @"
sudo apt-get update -y
sudo apt-get install -y nginx
# Configure nginx to listen on port 8080
sudo tee /etc/nginx/sites-available/default > /dev/null <<'EOF'
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
sudo systemctl restart nginx
"@
}
Invoke-AzVMRunCommand @mgmtInstallParams
Rufen Sie die öffentliche IP-Adresse von vm-mgmt ab:
$mgmtIPParams = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtIP = Get-AzPublicIpAddress @mgmtIPParams
Write-Host "vm-mgmt IP: $($mgmtIP.IpAddress)"
Um zu bestätigen, dass Sie über port 8080 über das Internet auf den webserver vm-mgmt zugreifen können, öffnen Sie einen Internetbrowser auf Ihrem Computer, und navigieren Sie zu http://<vm-mgmt-ip-address>:8080.
Die nginx-Standardseite wird angezeigt, da eingehender Datenverkehr vom Internet zur Asg-mgmt-Anwendungssicherheitsgruppe über Port 8080 zulässig ist.
Versuchen Sie, auf vm-mgmt auf Port 80 zuzugreifen, indem Sie in Ihrem Browser zu http://<vm-mgmt-ip-address> navigieren. Die Verbindung schlägt fehl oder wird in einem Timeout unterbrochen, weil keine Sicherheitsregel für die Anwendungssicherheitsgruppe asg-mgmt die Möglichkeit bietet, Port 80 einzugeben.
Installieren Sie nginx auf vm-web mit az vm run-command invoke:
az vm run-command invoke \
--resource-group test-rg \
--name vm-web \
--command-id RunShellScript \
--scripts "sudo apt-get update -y && sudo apt-get install -y nginx && sudo systemctl enable nginx && sudo systemctl start nginx"
Rufen Sie die öffentliche IP-Adresse von vm-web ab:
webIP=$(az vm show --show-details --resource-group test-rg --name vm-web --query publicIps --output tsv)
echo "vm-web IP: $webIP"
Um zu bestätigen, dass Sie über port 80 über das Internet auf den vm-web-Webserver zugreifen können, verwenden Sie curl:
curl http://$webIP
Die Verbindung wird erfolgreich hergestellt, da die Anwendungssicherheitsgruppe asg-web, in der sich die an die VM vm-web angefügte Netzwerkschnittstelle befindet, eingehenden Datenverkehr aus dem Internet über Port 80 zulässt.
Versuchen Sie, auf vm-web auf Port 443 zuzugreifen:
curl -k https://$webIP
Die Verbindung schlägt fehl oder wird in einem Timeout unterbrochen, weil die Sicherheitsregel für asg-web keine Möglichkeit bietet, Port 443 aus dem Internet einzugeben.
Installieren Sie jetzt nginx auf Port 8080 auf vm-mgmt:
az vm run-command invoke \
--resource-group test-rg \
--name vm-mgmt \
--command-id RunShellScript \
--scripts "sudo apt-get update -y && \
sudo apt-get install -y nginx && \
sudo bash -c 'cat > /etc/nginx/sites-available/default <<EOF
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files \\\$uri \\\$uri/ =404;
}
}
EOF' && \
sudo systemctl restart nginx"
Rufen Sie die öffentliche IP-Adresse von vm-mgmt ab:
mgmtIP=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
echo "vm-mgmt IP: $mgmtIP"
Um zu bestätigen, dass Sie über port 8080 über das Internet auf den webserver vm-mgmt zugreifen können, verwenden Sie curl:
curl http://$mgmtIP:8080
Die Verbindung ist erfolgreich, da eingehender Datenverkehr vom Internet zur Asg-mgmt-Anwendungssicherheitsgruppe über Port 8080 zulässig ist.
Versuchen Sie, auf vm-mgmt auf Port 80 zuzugreifen:
curl http://$mgmtIP
Die Verbindung schlägt fehl oder wird in einem Timeout unterbrochen, weil keine Sicherheitsregel für die Anwendungssicherheitsgruppe asg-mgmt die Möglichkeit bietet, Port 80 einzugeben.
Azure leitet standardmäßig Datenverkehr zwischen Subnetzen weiter. Sie können Datenverkehr zwischen Subnetzen aber beispielsweise auch über einen virtuellen Computer weiterleiten, der als Firewall fungiert.
Im nächsten Tutorial erfahren Sie, wie Sie eine Routingtabelle erstellen.