Einrichten von Azure App Service-Zugriffseinschränkungen
Hinweis
Ab dem 1. Juni 2024 haben alle neu erstellten App Service-Apps die Möglichkeit, einen eindeutigen Standardhostnamen mit der Namenskonvention <app-name>-<random-hash>.<region>.azurewebsites.net
zu erstellen. Vorhandene App-Namen bleiben unverändert.
Beispiel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Ausführlichere Informationen finden Sie unter Eindeutiger Standardhostname für App Service-Ressourcen.
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.
Verwalten von Zugriffseinschränkungsregeln im Portal
Gehen Sie wie folgt vor, um Ihrer App eine Zugriffseinschränkungsregel hinzuzufügen:
Melden Sie sich beim Azure-Portal an.
Wählen Sie die App aus, der Sie Zugriffseinschränkungen hinzufügen möchten.
Wählen Sie im linken Menü Netzwerk aus.
Wählen Sie auf der Seite Netzwerk unter Konfiguration des eingehenden Datenverkehrs die Einstellung Öffentlicher Netzwerkzugriff aus.
Sehen Sie sich auf der Seite Zugriffseinschränkungen die Liste mit den Zugriffseinschränkungsregeln an, die für Ihre App definiert sind.
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:
Wählen Sie unter Aktion entweder die Option Zulassen oder Ablehnen aus.
Geben Sie optional einen Namen und eine Beschreibung für die Regel ein.
Geben Sie im Feld Priorität einen Prioritätswert ein.
Wählen Sie in der Dropdownliste Typ den Typ der Regel aus. Die unterschiedlichen Typen von Regeln werden in den folgenden Abschnitten beschrieben.
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änkungen Speichern 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.
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.
Alle öffentlich 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.
Hinweis
Beim Erstellen von auf Diensttags basierenden Regeln über das Azure-Portal oder die Azure-Befehlszeilenschnittstelle benötigen Sie Lesezugriff auf Abonnementebene, um die vollständige Liste der Diensttags für die Auswahl/Validierung zu erhalten. Darüber hinaus muss der Ressourcenanbieter Microsoft.Network
im Abonnement registriert werden.
Bearbeiten einer Regel
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.
Nehmen Sie im Bereich Zugriffseinschränkung bearbeiten Ihre Änderungen vor, und wählen Sie anschließend die Option Regel aktualisieren aus.
Klicken Sie zum Speichern der Änderungen auf Speichern.
Hinweis
Wenn Sie eine Regel bearbeiten, können Sie nicht zwischen den Regeltypen wechseln.
Löschen einer Regel
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.
Klicken Sie zum Speichern der Änderungen auf Speichern.
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.
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.
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.
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