Einrichten von Azure App Service-Zugriffseinschränkungen

Durch die Einrichtung von Zugriffseinschränkungen können Sie eine nach Priorität sortierte Zulassungs-/Verweigerungsliste definieren, über die der Zugriff auf Ihre App gesteuert wird. Die Liste kann IP-Adressen oder Azure Virtual Network-Subnetze enthalten. Wenn mindestens ein Eintrag vorhanden ist, enthält die Liste am Ende einen impliziten Eintrag vom Typ Alle ablehnen. Weitere Informationen zu Zugriffsbeschränkungen finden Sie in der Übersicht über Zugriffsbeschränkungen.

Die Funktion für die Zugriffseinschränkung kann für alle Workloads genutzt werden, die von Azure App Service gehostet werden. Diese Workloads können Web-Apps, API-Apps, Linux-Apps, benutzerdefinierte Linux-Container und Funktionen umfassen.

Wenn eine Anforderung an Ihre App gesendet wird, wird die VON-Adresse anhand der Regeln in Ihrer Liste mit den Zugriffseinschränkungen ausgewertet. Wenn die VON-Adresse in einem Subnetz enthalten ist, das mit Dienstendpunkten für Microsoft.Web konfiguriert ist, wird das Quellsubnetz mit den VNET-Regeln in Ihrer Liste mit den Zugriffseinschränkungen verglichen. Wenn der Zugriff für die Adresse basierend auf den Regeln in der Liste nicht zugelassen wird, antwortet der Dienst mit dem Statuscode HTTP 403.

Die Funktion „Zugriffseinschränkungen“ wird in den App Service-Front-End-Rollen implementiert, die den Workerhosts vorgeschaltet sind, auf denen Ihr Code ausgeführt wird. Es handelt sich somit bei Zugriffseinschränkungen im Grunde um Zugriffssteuerungslisten (ACLs) für das Netzwerk.

Die Möglichkeit, den Zugriff auf Ihre Web-App auf ein virtuelles Azure-Netzwerk zu beschränken, basiert auf der Nutzung von Dienstendpunkten. Mit Dienstendpunkten können Sie den Zugriff auf einen mehrinstanzenfähigen Dienst auf ausgewählte Subnetze beschränken. Der Datenverkehr für Apps, die in einer App Service-Umgebung gehostet werden, kann hierdurch nicht eingeschränkt werden. In einer App Service-Umgebung können Sie den Zugriff auf Ihre App steuern, indem Sie IP-Adressregeln anwenden.

Hinweis

Die Dienstendpunkte müssen sowohl für die Netzwerkseite als auch für den Azure-Dienst aktiviert werden, der für die Aktivierung verwendet wird. Eine Liste der Azure-Dienste, die Dienstendpunkte unterstützen, finden Sie unter Virtual Network-Dienstendpunkte.

Diagram of the flow of access restrictions.

Verwalten von Zugriffseinschränkungsregeln im Portal

Gehen Sie wie folgt vor, um Ihrer App eine Zugriffseinschränkungsregel hinzuzufügen:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie die App aus, der Sie Zugriffseinschränkungen hinzufügen möchten.

  3. Wählen Sie im linken Menü Netzwerk aus.

  4. Wählen Sie auf der Seite Netzwerk unter Konfiguration des eingehenden Datenverkehrs die Einstellung Öffentlicher Netzwerkzugriff aus.

    Screenshot of the App Service networking options page in the Azure portal.

  5. Sehen Sie sich auf der Seite Zugriffseinschränkungen die Liste mit den Zugriffseinschränkungsregeln an, die für Ihre App definiert sind.

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected app.

    In der Liste werden alle aktuellen Einschränkungen angezeigt, die auf die App angewendet werden. Falls Sie über eine VNET-Einschränkung für Ihre App verfügen, wird in der Tabelle angezeigt, ob die Dienstendpunkte für Microsoft.Web aktiviert sind. Wenn keine Einschränkungen für Ihre App definiert sind und Ihre Nichtübereinstimmungsregel nicht auf „Verweigern“ festgelegt ist, kann von praktisch überall aus auf die App zugegriffen werden.

Berechtigungen

Die folgenden rollenbasierten Zugriffssteuerungsberechtigungen für das Subnetz oder auf einer höheren Ebene sind erforderlich, um Zugriffsbeschränkungen über das Azure-Portal, die CLI oder das direkte Festlegen der Websitekonfigurationseigenschaften zu konfigurieren:

Aktion BESCHREIBUNG
Microsoft.Web/sites/config/read Dient zum Abrufen von Web-App-Konfigurationseinstellungen.
Microsoft.Web/sites/config/write Dient zum Aktualisieren der Konfigurationseinstellungen der Web-App.
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Verknüpft Ressourcen wie etwa ein Speicherkonto oder eine SQL-Datenbank mit einem Subnetz.
Microsoft.Web/sites/write** Aktualisieren von Web-App-Einstellungen

*Nur beim Hinzufügen einer Regel für ein virtuelles Netzwerk (Dienstendpunkt) erforderlich

**nur erforderlich, wenn Sie Zugriffsbeschränkungen über Azure-Portal aktualisieren.

Wenn Sie eine auf einem Dienstendpunkt basierende Regel hinzufügen und sich das virtuelle Netzwerk in einem anderen Abonnement als die App befindet, müssen Sie sicherstellen, dass das Abonnement mit dem virtuellen Netzwerk für den Microsoft.Web-Ressourcenanbieter registriert ist. Sie können den Anbieter explizit registrieren, indem Sie diese Dokumentation befolgen. Er wird aber auch automatisch registriert, wenn Sie die erste Web-App in einem Abonnement erstellen.

Hinzufügen einer Zugriffseinschränkungsregel

Wählen Sie zum Hinzufügen einer Zugriffseinschränkungsregel zu Ihrer App im Bereich Zugriffseinschränkungen die Option Hinzufügen aus. Die Regel ist erst nach dem Speichern wirksam.

Regeln werden in der Reihenfolge ihrer Priorität erzwungen, wobei mit der niedrigsten Zahl in der Spalte Priorität begonnen wird. Wenn Sie eine nicht übereinstimmende Regel nicht konfigurieren, wird eine implizite Alle ablehnen-Regel wirksam, selbst nachdem Sie eine einzelne Regel hinzugefügt haben.

Gehen Sie beim Erstellen einer Regel im Bereich Zugriffseinschränkung hinzufügen wie folgt vor:

  1. Wählen Sie unter Aktion entweder die Option Zulassen oder Ablehnen aus.

    Screenshot of the 'Add Access Restriction' pane.

  2. Geben Sie optional einen Namen und eine Beschreibung für die Regel ein.

  3. Geben Sie im Feld Priorität einen Prioritätswert ein.

  4. Wählen Sie in der Dropdownliste Typ den Typ der Regel aus. Die unterschiedlichen Typen von Regeln werden in den folgenden Abschnitten beschrieben.

  5. Wählen Sie Regel hinzufügen aus, nachdem Sie die regelspezifische Eingabe eingegeben haben, um die Regel zur Liste hinzuzufügen.

Wählen Sie schließlich wieder auf der Seite ZugriffseinschränkungenSpeichern aus.

Hinweis

  • Es gibt einen Grenzwert von 512 Zugriffseinschränkungsregeln. Falls Sie mehr als 512 Zugriffseinschränkungsregeln benötigen, empfehlen wir Ihnen, die Installation eines eigenständigen Sicherheitsprodukts zu erwägen, z. B. Azure Front Door, Azure App Gateway oder eine alternative WAF.

Festlegen einer Regel auf Basis einer IP-Adresse

Befolgen Sie die Schritte des vorherigen Abschnitts, aber achten Sie auf die folgende Ergänzung:

  • Wählen Sie in Schritt 4 in der Dropdownliste Typ die Option IPv4 oder IPv6 aus.

Geben Sie den IP-Adressblock sowohl für IPv4- als auch für IPv6-Adressen in CIDR-Notation (Classless Inter-Domain Routing) an. Zum Angeben einer Adresse können Sie beispielsweise 1.2.3.4/32 verwenden, wobei die ersten vier Oktette für Ihre IP-Adresse stehen und mit /32 die Maske angegeben wird. Die IPv4-CIDR-Notation für alle Adressen ist 0.0.0.0/0. Weitere Informationen zur CIDR-Notation finden Sie unter Classless Inter-Domain Routing.

Hinweis

Auf IP-Adressen basierende Zugriffseinschränkungsregeln behandeln nur Adressbereiche für virtuelle Netzwerke, wenn sich Ihre App in einer App Service-Umgebung befindet. Wenn sich Ihre App im mehrinstanzenfähigen Dienst befindet, müssen Sie Dienstendpunkte verwenden, um den Datenverkehr so einzuschränken, dass Subnetze in Ihrem virtuellen Netzwerk ausgewählt werden.

Festlegen einer dienstendpunktbasierten Regel

  • Wählen Sie in Schritt 4 in der Dropdownliste Typ die Option Virtuelles Netzwerk aus.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

Geben Sie in den Dropdownlisten Abonnement, Virtuelles Netzwerk und Subnetz die Elemente an, auf die Sie den Zugriff einschränken möchten.

Die Verwendung von Dienstendpunkten ermöglicht das Einschränken des Zugriffs auf ausgewählte Subnetze virtueller Azure-Netzwerke. Falls für das von Ihnen ausgewählte Subnetz nicht bereits Dienstendpunkte mit Microsoft.Web aktiviert sind, wird dies automatisch durchgeführt, sofern Sie nicht das Kontrollkästchen Fehlende Microsoft.Web-Dienstendpunkte ignorieren aktivieren. In einem Szenario, bei dem Sie Dienstendpunkte in der App aktivieren möchten, aber nicht im Subnetz, hängt es vor allem davon ab, ob Sie über die Berechtigungen für die Aktivierung im Subnetz verfügen.

Falls die Dienstendpunkte im Subnetz bei Ihnen von einer anderen Person aktiviert werden müssen, sollten Sie das Kontrollkästchen Fehlende Microsoft.Web-Dienstendpunkte ignorieren aktivieren. Ihre App wird für Dienstendpunkte konfiguriert, weil damit zu rechnen ist, dass diese später im Subnetz aktiviert werden.

Sie können Dienstendpunkte nicht nutzen, um den Zugriff auf Apps einzuschränken, die in einer App Service-Umgebung ausgeführt werden. Wenn Ihre App in einer App Service-Umgebung enthalten ist, können Sie den Zugriff darauf steuern, indem Sie IP-Zugriffsregeln anwenden.

Bei Dienstendpunkten können Sie Ihre App mit Anwendungsgateways oder anderen WAF-Geräten (Web Application Firewall) konfigurieren. Sie können auch Anwendungen mit mehreren Ebenen und sicheren Back-Ends konfigurieren. Weitere Informationen finden Sie unter App Service-Netzwerkfunktionen und Application Gateway-Integration mit Dienstendpunkten.

Hinweis

  • Dienstendpunkte werden nicht für Web-Apps unterstützt, für die IP-basierte TLS/SSL-Bindungen mit einer virtuellen IP (VIP) verwendet werden.

Festlegen einer diensttagbasierten Regel

  • Wählen Sie in Schritt 4 in der Dropdownliste Typ die Option Diensttag aus.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

Alle verfügbaren Diensttags werden in Zugriffseinschränkungsregeln unterstützt. Jedes Diensttag steht für eine Liste von IP-Adressbereichen aus Azure-Diensten. Eine Liste dieser Dienste und Verknüpfungen mit den spezifischen Bereichen finden Sie in der Diensttagdokumentation. Verwenden Sie Azure Resource Manager-Vorlagen oder Skripts, um komplexere Regeln zu konfigurieren, z. B. für regionale Bereiche.

Bearbeiten einer Regel

  1. Wählen Sie auf der Seite Zugriffseinschränkungen die Regel aus, die Sie bearbeiten möchten, um mit der Bearbeitung einer vorhandenen Zugriffseinschränkungsregel zu beginnen.

  2. Nehmen Sie im Bereich Zugriffseinschränkung bearbeiten Ihre Änderungen vor, und wählen Sie anschließend die Option Regel aktualisieren aus.

  3. Klicken Sie zum Speichern der Änderungen auf Speichern.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Hinweis

    Wenn Sie eine Regel bearbeiten, können Sie nicht zwischen den Regeltypen wechseln.

Löschen einer Regel

  1. Aktivieren Sie zum Löschen einer Regel auf der Seite Zugriffseinschränkungen die Regeln, die Sie löschen möchten, und klicken Sie auf Löschen.

  2. Klicken Sie zum Speichern der Änderungen auf Speichern.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

Erweiterte Szenarien für die Zugriffseinschränkung

In den folgenden Abschnitten werden einige erweiterte Szenarien beschrieben, in denen Zugriffseinschränkungen verwendet werden.

Filtern nach HTTP-Header

Im Rahmen einer beliebigen Regel können Sie Filter nach HTTP-Header hinzufügen. Die folgenden HTTP-Headernamen werden unterstützt:

  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Für jeden Headernamen können Sie bis zu acht durch Trennzeichen getrennte Werte hinzufügen. Die Filter nach HTTP-Header werden nach der Regel selbst ausgewertet, und nur wenn beide Bedingungen erfüllt sind, wird die Regel angewandt.

Regeln für mehrere Quellen

Mithilfe von Regeln für mehrere Quellen können Sie bis zu acht IP-Bereiche oder acht Diensttags in einer einzigen Regel kombinieren. Wenn Sie über mehr als 512 IP-Bereiche verfügen oder logische Regeln erstellen möchten, verwenden Sie Regeln mit mehreren Quellen. Logische Regeln können darin bestehen, dass mehrere IP-Bereiche mit einem einzelnen HTTP-Headerfilter kombiniert werden.

Regeln mit mehreren Quellen werden auf die gleiche Weise definiert wie Regeln mit einer Quelle, wobei die einzelnen Bereiche durch Kommas voneinander getrennt werden.

PowerShell-Beispiel:

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
  -Priority 100 -Action Allow

Blockieren einer einzelnen IP-Adresse

Fügen Sie in einem Szenario, in dem Sie eine einzelne IP-Adresse oder einen Block von IP-Adressen explizit blockieren möchten, den Zugriff auf alles andere jedoch zulassen möchten, eine Ablehnungsregel für die betreffende IP-Adresse hinzu, und legen Sie die Aktion „Regel ohne Entsprechung“ auf Zulassen fest.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

Beschränken des Zugriffs auf eine SCM-Website

Neben der Möglichkeit, den Zugriff auf Ihre App zu steuern, können Sie auch den Zugriff auf die von der App verwendete SCM-Website (erweitertes Tool) einschränken. Die SCM-Website fungiert sowohl als Web Deploy-Endpunkt als auch als Kudu-Konsole. Sie können die Zugriffseinschränkungen für die SCM-Website getrennt von der App zuweisen oder den gleichen Satz mit Einschränkungen sowohl für die App als auch für die SCM-Website verwenden. Wenn Sie das Kontrollkästchen Regeln der Hauptsite verwenden aktivieren, wird die Regelliste ausgeblendet, und die Regeln der Hauptsite werden verwendet. Wenn Sie das Kontrollkästchen deaktivieren, werden Ihre Einstellungen für die SCM-Website wieder angezeigt.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

Einschränken des Zugriffs auf eine bestimmte Azure Front Door-Instanz

Datenverkehr von Azure Front Door zu Ihrer Anwendung stammt aus einer bekannten Gruppe von IP-Bereichen, die im Diensttag AzureFrontDoor.Backend definiert sind. Mithilfe einer Einschränkungsregel für Diensttags können Sie den Ursprung des Datenverkehrs auf ausschließlich Azure Front Door einschränken. Um sicherzustellen, dass der Datenverkehr nur von Ihrer spezifischen Instanz stammt, müssen Sie die eingehenden Anforderungen noch weiter filtern, basierend auf dem eindeutigen HTTP-Header, der von Azure Front Door gesendet wird.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

PowerShell-Beispiel:

$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
  -HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}

Programmgesteuertes Verwalten von Zugriffseinschränkungen

Sie können Zugriffseinschränkungen programmgesteuert verwalten. Im Folgenden finden Sie Beispiele, wie Sie Regeln zu Zugriffseinschränkungen hinzufügen und wie Sie Aktion bei nicht übereinstimmender Regel sowohl für die Hauptsite als auch für die Erweiterte Toolsite ändern.

Hinzufügen von Zugriffseinschränkungsregeln für die Hauptsite

Sie können Zugriffseinschränkungsregeln für die Hauptsite programmgesteuert hinzufügen, indem Sie eine der folgenden Optionen auswählen:

Sie können den folgenden Befehl in der Cloud Shell ausführen. Weitere Informationen zum Befehl az webapp config access-restriction finden Sie auf dieser Seite.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
  --http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Hinzufügen von Zugriffseinschränkungsregeln für die erweiterte Toolsite

Sie können Zugriffseinschränkungsregeln für die Erweiterte Toolsite programmgesteuert hinzufügen, indem Sie eine der folgenden Optionen auswählen:

Sie können den folgenden Befehl in der Cloud Shell ausführen. Weitere Informationen zum Befehl az webapp config access-restriction finden Sie auf dieser Seite.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true

Ändern von „Aktion bei nicht übereinstimmender Regel“ für die Hauptsite

Sie können die Aktion bei nicht übereinstimmender Regel für die Hauptsite programmgesteuert ändern, indem Sie eine der folgenden Optionen auswählen:

Sie können den folgenden Befehl in der Cloud Shell ausführen. Weitere Informationen zum Befehl az resource finden Sie auf dieser Seite. Zulässige Werte für ipSecurityRestrictionsDefaultAction sind Allow und Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow

Ändern von „Aktion bei nicht übereinstimmender Regel“ für die erweiterte Toolsite

Sie können die Aktion bei nicht übereinstimmender Regel für die Erweiterte Toolsite programmgesteuert ändern, indem Sie eine der folgenden Optionen auswählen:

Sie können den folgenden Befehl in der Cloud Shell ausführen. Weitere Informationen zum Befehl az resource finden Sie auf dieser Seite. Zulässige Werte für scmIpSecurityRestrictionsDefaultAction sind Allow und Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow

Einrichten von Azure Functions-Zugriffseinschränkungen

Zugriffseinschränkungen stehen auch für Funktions-Apps mit derselben Funktionalität sowie für App Service-Pläne zur Verfügung. Wenn Sie Zugriffseinschränkungen aktivieren, führt dies gleichzeitig dazu, dass der Code-Editor im Azure-Portal für alle unzulässigen IP-Adressen deaktiviert wird.

Nächste Schritte

Zugriffseinschränkungen für Azure Functions
Application Gateway-Integration mit Dienstendpunkten
Szenarien für erweiterte Zugriffseinschränkungen in Azure App Service – Blogbeitrag