Azure App Service-Zugriffseinschränkungen
Zugriffseinschränkungen in App Service entsprechen einer Firewall, mit der Sie Datenverkehr blockieren und filtern können. Zugriffsbeschränkungen gelten nur für eingehenden Zugriff. Die meisten App Service-Tarife bieten auch die Möglichkeit, private Endpunkte zur App hinzuzufügen, was ein weiterer Einstiegspunkt für die App ist. Zugriffsbeschränkungen gelten nicht für Datenverkehr, der über einen privaten Endpunkt eingeht. Für alle Apps, die in App Service gehostet werden, ist der Standardeinstiegspunkt öffentlich verfügbar. Die einzige Ausnahme sind Apps, die in der ILB-App Service-Umgebung gehostet werden, wobei der Standardeinstiegspunkt intern für das virtuelle Netzwerk ist.
Funktionsweise
Wenn Datenverkehr App Service erreicht, wird zunächst ausgewertet, ob der Datenverkehr von einem privaten Endpunkt stammt oder über den Standardendpunkt eingeht. Wenn der Datenverkehr über einen privaten Endpunkt gesendet wird, wird er direkt ohne Einschränkungen an die Website gesendet. Einschränkungen für private Endpunkte werden mithilfe von Netzwerksicherheitsgruppen konfiguriert.
Wenn Sie Datenverkehr über den Standard-Endpunkt (oft ein öffentlicher Endpunkt) senden, wird der Datenverkehr zunächst auf App-Zugriffsebene ausgewertet. Hier können Sie den Zugriff aktivieren oder deaktivieren. Wenn Sie den Appzugriff aktivieren, wird der Datenverkehr auf Website-Zugriffsebene ausgewertet. Für jede App verfügen Sie sowohl über die Hauptwebsite als auch über die Website für erweiterte Tools (auch als scm- oder kudu-Website bezeichnet).
Sie haben die Möglichkeit, eine Reihe von Zugriffsbeschränkungsregeln für jede Website zu konfigurieren. Die Regeln für Zugriffsbeschränkungen werden in der Reihenfolge ihrer Prioritäten ausgewertet. Wenn mehrere Regeln die gleiche Priorität haben, werden sie in der Reihenfolge ausgewertet, in der sie bei der Rückgabe von der Azure Ressource Manager API und im Azure-Portal aufgeführt sind, bevor sie sortiert werden. Sie können auch das Verhalten angeben, wenn keine der Regeln greift. In den folgenden Abschnitten finden Sie ausführlichere Informationen.
App-Zugriff
Mit App-Zugriff können Sie konfigurieren, ob Zugriff über den standardmäßigen (öffentlichen) Endpunkt verfügbar ist. Sie konfigurieren dieses Verhalten entweder als Disabled
oder Enabled
. Wenn der Zugriff aktiviert ist, können Sie Regeln für die Einschränkung des Standortzugriffs hinzufügen, um den Zugriff von ausgewählten virtuellen Netzwerken und IP-Adressen zu kontrollieren.
Ist die Einstellung nicht festgelegt (die Eigenschaft ist null
), wird der Zugriff standardmäßig gewährt, es sei denn, es ist ein privater Endpunkt vorhanden. Dadurch wird das Verhalten so geändert, dass der Zugriff deaktiviert ist. Wenn die Eigenschaft nicht festgelegt ist, wird das Optionsfeld im Azure-Portal ebenfalls nicht festgelegt, und Sie verwenden dann das Standardverhalten.
In der Azure Resource Manager-API wird die Eigenschaft, die den App-Zugriff steuert, als publicNetworkAccess
bezeichnet. Für die ILB (Internal Load Balancer) App Service-Umgebung ist der Standardeinstiegspunkt für Apps immer intern zum virtuellen Netzwerk. Das Erlauben des App-Zugriffs (publicNetworkAccess
) erteilt keinen direkten öffentlichen Zugriff auf die Apps. Vielmehr ermöglicht es den Zugriff vom Standardeinstiegspunkt aus, der der internen IP-Adresse der App Service-Umgebung entspricht. Wenn Sie den App-Zugriff für eine ILB-App Service-Umgebung deaktivieren, können Sie nur über private Endpunkte auf die Apps zugreifen, die den einzelnen Apps hinzugefügt wurden.
Hinweis
Bei Linux-Websites werden Änderungen an der publicNetworkAccess
-Eigenschaft zum Auslösen von App-Neustarts ausgelöst.
Websitezugriff
Websitezugriffseinschränkungen ermöglichen es Ihnen, die eingehenden Anforderungen zu filtern. Websitezugriffseinschränkungen ermöglichen Ihnen, eine Liste von zulässigen und ablehnenden Regeln zu erstellen, die in der Reihenfolge ihrer Priorität ausgewertet werden. Sie ähnelt der Netzwerksicherheitsgruppen-Funktion (NSG), die in Azure-Netzwerken vorhanden ist.
Für die Einschränkung des Websitezugriffs gibt es mehrere Arten von Regeln, die Sie anwenden können:
Regel ohne Entsprechung
Sie können das Verhalten konfigurieren, wenn keine Übereinstimmung mit einer Regel vorliegt (die Standardaktion). Dies ist eine spezielle Regel, die immer als letzte Regel in der Regelsammlung angezeigt wird. Wenn die Einstellung nicht konfiguriert ist, hängt das nicht übereinstimmende Regelverhalten von konfigurierten Regeln ab. Wenn es keine Regeln gibt, werden alle Zugriffe zugelassen, aber wenn eine oder mehrere Regeln vorhanden sind, wird der Zugriff implizit verweigert. Sie können dieses Verhalten explizit konfigurieren, um den Zugriff unabhängig von definierten Regeln zuzulassen oder zu verweigern.
IP-basierte Zugriffseinschränkungsregeln
Das Feature zur IP-basierten Zugriffseinschränkung ist nützlich, wenn Sie die IP-Adressen einschränken möchten, über die Ihre App erreicht werden kann. Sowohl IPv4 als auch IPv6 werden unterstützt. Einige Anwendungsfälle für diese Funktion:
- Beschränken des Zugriffs auf Ihre App aus einem Satz klar definierter Adressen.
- Beschränken Sie den Zugriff auf Datenverkehr, der über ein externes Lastenausgleichsmodul oder andere Netzwerkgeräte mit bekannten IP-Ausgangsadressen erfolgt.
Informationen, wie Sie diese Funktion aktivieren, finden Sie unter Konfigurieren von Zugriffseinschränkungen.
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.
Auf Dienstendpunkten basierende Zugriffseinschränkungsregeln
Mit Dienstendpunkten können Sie eingehenden Zugriff auf Ihre App so sperren, dass die Quelladresse aus einem Satz von Subnetzen stammen muss, die Sie auswählen. Diese Funktion funktioniert zusammen mit IP-Zugriffseinschränkungen. Dienstendpunkte sind mit Remotedebugging nicht kompatibel. Wenn Sie Remotedebuggen mit Ihrer App verwenden möchten, darf sich Ihr Client nicht in einem Subnetz mit aktivierten Dienstendpunkten befinden. Der Vorgang zum Festlegen von Dienstendpunkten ähnelt dem Verfahren zum Festlegen von IP-Zugriffseinschränkungen. Sie können eine Zulassungs-/Verweigerungsliste mit Zugriffsregeln erstellen, die öffentliche Adressen und Subnetze in Ihren virtuellen Netzwerken umfasst.
Hinweis
Regeln für Zugriffseinschränkungen, die auf Dienstendpunkten basieren, werden nicht für Apps unterstützt, für die ein privater Endpunkt konfiguriert ist, oder für Apps, die IP-basiertes SSL verwenden (zugewiesene App-Adresse).
Weitere Informationen zum Konfigurieren von Dienstendpunkten mit Ihrer App finden Sie unter Azure App Service-Zugriffseinschränkungen.
Jede Dienstendpunktquelle
Zu Testzwecken oder in bestimmten Szenarien können Sie den Datenverkehr von jedem für Dienstendpunkte aktivierten Subnetz zulassen. Dazu können Sie eine IP-basierte Regel mit dem Text „AnyVnets“ anstelle eines IP-Bereichs definieren. Sie können diese Regeln nicht im Portal erstellen, aber Sie können eine vorhandene IP-basierte Regel ändern und die IP-Adresse durch die Zeichenfolge „AnyVnets“ ersetzen.
Auf Diensttags basierende Zugriffseinschränkungsregeln
Bei Azure-Diensttags handelt es sich um gut definierte Sätze mit IP-Adressen für Azure-Dienste. Mit Diensttags werden die IP-Adressbereiche gruppiert, die in den verschiedenen Azure-Diensten genutzt werden. Häufig sind sie auch auf bestimmte Regionen festgelegt. Dieser Regeltyp ermöglicht es Ihnen, den eingehenden Datenverkehr von bestimmten Azure-Diensten zu filtern.
Eine vollständige Liste mit Tags und weiteren Informationen finden Sie oben unter dem Link zu Diensttags.
Informationen, wie Sie diese Funktion aktivieren, finden Sie unter Konfigurieren von Zugriffseinschränkungen.
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. Sie können Regeln mit mehreren Quellen verwenden, wenn Sie über mehr als 512 IP-Bereiche verfügen. Sie können Regeln mit mehreren Quellen ebenfalls verwenden, wenn Sie logische Regeln erstellen möchten, bei denen mehrere IP-Adressbereiche mit einem einzelnen Filter für HTTP-Header 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.
Sie können diese Regeln nicht im Portal erstellen, aber Sie können eine vorhandene diensttag- oder IP-basierte Regel ändern und weitere Quellen zur Regel hinzufügen.
Filterung von HTTP-Headern für Website-Zugriffseinschränkungsregeln
Für jede Regel können Sie unabhängig vom Typ HTTP-Headerfilterung hinzufügen. HTTP-Headerfilter ermöglichen Ihnen die weitere Untersuchung der eingehenden Anforderung und die Filterung basierend auf bestimmten HTTP-Headerwerten. Jeder Header kann bis zu acht Werte pro Regel umfassen. Im Folgenden werden die unterstützten HTTP-Header aufgeführt:
- X-Forwarded-For. Standardheader zum Identifizieren der IP-Ursprungsadresse eines Clients, der über einen Proxyserver eine Verbindung herstellt. Akzeptiert gültige IP-Adressen.
- X-Forwarded-Host. Standardheader zum Identifizieren des ursprünglichen Hosts, der vom Client angefordert wird. Akzeptiert jede Zeichenfolge bis zu 64 Zeichen Länge.
- X-Azure-FDID. Benutzerdefinierter Header zum Identifizieren der Reverseproxyinstanz. Azure Front Door sendet eine GUID, die die Instanz identifiziert, aber sie kann auch für Nicht-Microsoft-Proxys verwendet werden, um die spezifische Instanz zu identifizieren. Akzeptiert jede Zeichenfolge bis zu 64 Zeichen Länge.
- X-FD-HealthProbe. Benutzerdefinierter Header zum Identifizieren des Integritätstests des Reverseproxys. Azure Front Door sendet „1“, um eine Integritätstestanforderung eindeutig zu identifizieren. Der Header kann auch für Nicht-Microsoft Proxys verwendet werden, um Integritätstests zu identifizieren. Akzeptiert jede Zeichenfolge bis zu 64 Zeichen Länge.
Beispiele für Anwendungsfälle für die Filterung von HTTP-Headern:
- Einschränken des Zugriffs auf Datenverkehr von Proxyservern, die den Hostnamen weiterleiten
- Einschränken des Zugriffs auf eine bestimmte Azure Front Door-Instanz mit einer Diensttagregel und X-Azure-FDID-Headereinschränkung
Diagnoseprotokollierung
App Service kann verschiedene Protokollierungskategorien an Azure Monitor senden. Eine dieser Kategorien wird als IPSecurity Audit logs
bezeichnet und stellt die Aktivitäten in Zugriffsbeschränkungen dar. Alle Anforderungen, die mit einer Regel übereinstimmen (mit Ausnahme der Regeln für Nichtübereinstimmung), sowohl diejenigen, die zugelassen werden, als auch diejenigen, die abgelehnt werden, werden protokolliert und können verwendet werden, um die Konfiguration der Zugriffsbeschränkungen zu überprüfen. Die Protokollierungsfunktion ist auch bei der Problembehandlung der Regelkonfiguration ein wichtiges Tool.
Erweiterte Anwendungsfälle
Durch die Kombination der oben genannten Features können Sie einige spezifische Anwendungsfälle lösen, die in den folgenden Abschnitten beschrieben werden.
Blockieren einer einzelnen IP-Adresse
Wenn Sie mindestens eine bestimmte IP-Adresse ablehnen/blockieren möchten, können Sie die IP-Adressen als Verweigerungsregeln hinzufügen und die Regel ohne Entsprechung so konfigurieren, dass der gesamte Datenverkehr ohne Entsprechung zulässig ist.
Einschränken des Zugriffs auf die Website für erweiterte Tools
Die Website für erweiterte Tools, die auch als scm oder kudu bezeichnet wird, verfügt über eine individuelle Regelsammlung, die Sie konfigurieren können. Sie können auch die Regel ohne Entsprechung für diese Website konfigurieren. Eine Einstellung ermöglicht es Ihnen auch, die für die Hauptwebsite konfigurierten Regeln zu verwenden. Sie können den Zugriff auf bestimmte erweiterte Toolwebsitefeatures nicht selektiv zulassen. Sie können zum Beispiel nicht selektiv nur den Zugriff auf die WebJobs-Verwaltungskonsole auf der Seite für erweiterte Tools zulassen.
Bereitstellen über einen privaten Endpunkt
Möglicherweise verfügen Sie über eine Website, die öffentlich zugänglich ist, aber Ihr Bereitstellungssystem befindet sich in einem virtuellen Netzwerk. Sie können den Bereitstellungsdatenverkehr privat halten, indem Sie einen privaten Endpunkt hinzufügen. Anschließend müssen Sie sicherstellen, dass der öffentliche App-Zugriff aktiviert ist. Schließlich müssen Sie die Regel ohne Entsprechung für die Website für erweiterte Tools festlegen, um Datenverkehr zu verweigern. Dadurch wird der gesamte öffentliche Datenverkehr an diesen Endpunkt blockiert.
Zulassen des externen Partnerzugriffs auf eine durch einen privaten Endpunkt geschützte Website
In diesem Szenario greifen Sie über einen privaten Endpunkt auf Ihre Website zu und führen die Bereitstellung über einen privaten Endpunkt aus. Sie können vorübergehend externe Partner*innen zum Testen der Website einladen. Dazu können Sie öffentlichen App-Zugriff aktivieren. Fügen Sie eine Regel (IP-basiert) hinzu, um den Client des Partners zu identifizieren. Konfigurieren Sie die Aktion für die Regel ohne Entsprechung so, dass Datenverkehr für die Haupt- und die Website für erweiterte Tools verweigert wird.
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 aus 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 und als „X-Azure-FDID“ bezeichnet wird. Sie können die Front Door-ID im Portal finden.
Nächste Schritte
Hinweis
Zugriffseinschränkungsregeln, die den öffentlichen Zugriff auf Ihre Website blockieren, können auch Dienste wie Protokollstreaming blockieren. Wenn Sie diese Dienste benötigen, müssen Sie Ihre IP-Adresse für App Service in den Einschränkungen zulassen.