Azure App Service – ZugriffseinschränkungenAzure App Service Access Restrictions

Mit Zugriffseinschränkungen können Sie eine nach Priorität sortierte Zulassen/Ablehnen-Liste definieren, über die der Zugriff auf Ihre App gesteuert wird.Access Restrictions enable you to define a priority ordered allow/deny list that controls network access to your app. Die Liste kann IP-Adressen oder Azure Virtual Network-Subnetze enthalten.The list can include IP addresses or Azure Virtual Network subnets. Wenn mindestens ein Eintrag vorhanden ist, enthält die Liste am Ende einen impliziten Eintrag vom Typ „Alle ablehnen“.When there are one or more entries, there is then an implicit "deny all" that exists at the end of the list.

Die Funktion „Zugriffseinschränkungen“ funktioniert mit allen von App Service gehosteten Workloads. Hierzu gehören Web-Apps, API-Apps, Linux-Apps, Linux-Container-Apps und Functions.The Access Restrictions capability works with all App Service hosted work loads including; web apps, API apps, Linux apps, Linux container apps, and Functions.

Wenn eine Anforderung an Ihre App gesendet wird, wird die VON-Adresse anhand der IP-Adressregeln in Ihrer Liste mit den Zugriffseinschränkungen ausgewertet.When a request is made to your app, the FROM address is evaluated against the IP address rules in your access restrictions list. Wenn die VON-Adresse in einem Subnetz enthalten ist, das mit Dienstendpunkten für Microsoft.Web konfiguriert ist, wird das Quellsubnetz mit den Regeln für das virtuelle Netzwerk in Ihrer Liste mit den Zugriffseinschränkungen verglichen.If the FROM address is in a subnet that is configured with service endpoints to Microsoft.Web, then the source subnet is compared against the virtual network rules in your access restrictions list. 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.If the address is not allowed access based on the rules in the list, the service replies with an HTTP 403 status code.

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.The access restrictions capability is implemented in the App Service front-end roles, which are upstream of the worker hosts where your code runs. Es handelt sich somit bei Zugriffseinschränkungen im Grunde um Zugriffssteuerungslisten für das Netzwerk.Therefore, access restrictions are effectively network ACLs.

Die Möglichkeit, den Zugriff auf Ihre Web-App auf ein Azure Virtual Network (VNET) zu beschränken, wird als Dienstendpunkte bezeichnet.The ability to restrict access to your web app from an Azure Virtual Network (VNet) is called service endpoints. Mit Dienstendpunkten können Sie den Zugriff auf einen mehrinstanzenfähigen Dienst auf ausgewählte Subnetze beschränken.Service endpoints enable you to restrict access to a multi-tenant service from selected subnets. Dies muss im Netzwerk sowie für den Dienst, für den die Aktivierung gilt, aktiviert sein.It must be enabled on both the networking side as well as the service that it is being enabled with. Der Datenverkehr für Apps, die in einer App Service-Umgebung gehostet werden, kann dadurch nicht eingeschränkt werden.It does not work to restrict traffic to apps that are hosted in an App Service Environment. In einer App Service-Umgebung können Sie den Zugriff auf Ihre App mit IP-Adressregeln steuern.If you are in an App Service Environment, you can control access to your app with IP address rules.

Flow von Zugriffseinschränkungen

Hinzufügen und Bearbeiten von Regeln für Zugriffseinschränkungen im PortalAdding and editing Access Restriction rules in the portal

Um Ihrer App eine Zugriffseinschränkungsregel hinzuzufügen, wählen Sie im Menü Netzwerk>Zugriffseinschränkungen aus und klicken auf Zugriffseinschränkungen konfigurieren.To add an access restriction rule to your app, use the menu to open Network>Access Restrictions and click on Configure Access Restrictions

App Service-Netzwerkoptionen

Auf der Benutzeroberfläche für Zugriffseinschränkungen können Sie die Liste mit den Regeln für die Zugriffseinschränkungen überprüfen, die für Ihre App definiert sind.From the Access Restrictions UI, you can review the list of access restriction rules defined for your app.

Liste mit Zugriffseinschränkungen

In der Liste werden alle aktuellen Einschränkungen für Ihre App angezeigt.The list will show all of the current restrictions that are on your app. Wenn eine VNET-Einschränkung für die App festgelegt ist, wird in der Tabelle angezeigt, ob Dienstendpunkte für Microsoft.Web aktiviert sind.If you have a VNet restriction on your app, the table will show if service endpoints are enabled for Microsoft.Web. Wenn keine definierten Einschränkungen für die App vorhanden sind, kann von überall aus auf die App zugegriffen werden.When there are no defined restrictions on your app, your app will be accessible from anywhere.

Hinzufügen von Regeln für IP-AdressenAdding IP address rules

Klicken Sie auf [+] Hinzufügen, um eine neue Zugriffseinschränkungsregel hinzuzufügen.You can click on [+] Add to add a new access restriction rule. Wenn Sie eine Regel hinzufügen, wird sie sofort wirksam.Once you add a rule, it will become effective immediately. Regeln werden in der Reihenfolge ihrer Priorität erzwungen, wobei mit der niedrigsten Zahl begonnen wird.Rules are enforced in priority order starting from the lowest number and going up. Implizit gilt die Regel „Alle ablehnen“, die wirksam ist, sobald Sie die erste Regel hinzugefügt haben.There is an implicit deny all that is in effect once you add even a single rule.

Beim Erstellen einer Regel müssen Sie „Zulassen/Ablehnen“ und außerdem den Typ der Regel auswählen.When creating a rule, you must select allow/deny and also the type of rule. Sie müssen auch den Prioritätswert festlegen und angeben, worauf der Zugriff beschränkt wird.You are also required to provide the priority value and what you are restricting access to. Optional können Sie einen Namen und eine Beschreibung für die Regel hinzufügen.You can optionally add a name, and description to the rule.

Hinzufügen einer IP-Zugriffseinschränkungsregel

Um eine auf IP-Adressen basierende Regel hinzuzufügen, wählen Sie einen der Typen IPv4 oder IPv6 aus.To set an IP address based rule, select a type of IPv4 or IPv6. Die Notation von IP-Adressen muss für IPv4- und IPv6-Adressen in CIDR-Notation angegeben werden.IP Address notation must be specified in CIDR notation for both IPv4 and IPv6 addresses. Zum Angeben einer genauen 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.To specify an exact address, you can use something like 1.2.3.4/32 where the first four octets represent your IP address and /32 is the mask. Die IPv4-CIDR-Notation für alle Adressen ist 0.0.0.0/0.The IPv4 CIDR notation for all addresses is 0.0.0.0/0. Weitere Informationen zur CIDR-Notation finden Sie unter Classless Inter-Domain Routing.To learn more about CIDR notation, you can read Classless Inter-Domain Routing.

DienstendpunkteService endpoints

Dienstendpunkte ermöglichen das Einschränken des Zugriffs auf ausgewählte Subnetze von virtuellen Azure-Netzwerken.Service endpoints enables you to restrict access to selected Azure virtual network subnets. Erstellen Sie zum Einschränken des Zugriffs auf ein bestimmtes Subnetz eine Einschränkungsregel vom Typ „Virtual Network“.To restrict access to a specific subnet, create a restriction rule with a type of Virtual Network. Sie können das Abonnement, das VNET und das Subnetz auswählen, für die Sie den Zugriff zulassen oder verweigern möchten.You can pick the subscription, VNet, and subnet you wish to allow or deny access with. Wenn noch keine Dienstendpunkte mit Microsoft.Web für das ausgewählte Subnetz aktiviert sind, werden sie automatisch aktiviert, es sei denn, Sie aktivieren das Kontrollkästchen, über das dies unterbunden wird.If service endpoints are not already enabled with Microsoft.Web for the subnet that you selected, it will automatically be enabled for you unless you check the box asking not to do that. Der Fall, in dem dies für die App, jedoch nicht für das Subnetz aktiviert werden soll, hängt größtenteils davon ab, ob Sie über die Berechtigungen verfügen, Dienstendpunkte für das Subnetz zu aktivieren.The situation where you would want to enable it on the app but not the subnet is largely related to if you have the permissions to enable service endpoints on the subnet or not. Wenn eine andere Person Dienstendpunkte für das Subnetz für Sie aktivieren muss, können Sie das Kontrollkästchen aktivieren, sodass die App für Dienstendpunkte konfiguriert wird, mit der Erwartung, dass diese später für das Subnetz aktiviert werden.If you need to get somebody else to enable service endpoints on the subnet, you can check the box and have your app configured for service endpoints in anticipation of it being enabled later on the subnet.

Hinzufügen einer VNET-Zugriffseinschränkungsregel

Der Zugriff auf Apps, die in einer App Service-Umgebung ausgeführt werden, kann nicht mit Dienstendpunkten eingeschränkt werden.Service endpoints cannot be used to restrict access to apps that run in an App Service Environment. Wenn Ihre App in einer App Service-Umgebung enthalten ist, können Sie den Zugriff darauf mit IP-Zugriffsregeln steuern.When your app is in an App Service Environment, you can control access to your app with IP access rules.

Bei Dienstendpunkten können Sie Ihre App mit Anwendungsgateways oder anderen WAF-Geräten konfigurieren.With service endpoints, you can configure your app with Application Gateways or other WAF devices. Sie können auch Anwendungen mit mehreren Ebenen und sicheren Back-Ends konfigurieren.You can also configure multi-tier applications with secure backends. Weitere Informationen zu diesen Möglichkeiten finden Sie unter App Service-Netzwerkfunktionen.For more details on some of the possibilities, read Networking features and App Service.

Verwalten von ZugriffseinschränkungsregelnManaging access restriction rules

Sie können auf eine beliebige Zeile klicken, um eine vorhandene Zugriffseinschränkungsregel zu bearbeiten.You can click on any row to edit an existing access restriction rule. Änderungen sind sofort wirksam. Dies gilt auch für Änderungen der Prioritätsreihenfolge.Edits are effective immediately including changes in priority ordering.

Bearbeiten einer Zugriffseinschränkungsregel

Wenn Sie eine Regel bearbeiten, können Sie den Typ nicht zwischen einer IP-Adressregel und einer Regel für virtuelle Netzwerke ändern.When you edit a rule, you cannot change the type between an IP address rule and a Virtual Network rule.

Bearbeiten einer Zugriffseinschränkungsregel

Klicken Sie zum Löschen einer Regel für die entsprechende Regel auf ... und dann auf Entfernen.To delete a rule, click the ... on your rule and then click remove.

Löschen einer Zugriffseinschränkungsregel

Blockieren einer einzelnen IP-AdresseBlocking a single IP Address

Wenn Sie die erste Einschränkungsregel für IP-Adressen hinzufügen, fügt der Dienst eine explizite Regel Alle ablehnen mit der Priorität 2147483647 hinzu.When adding your first IP Restriction rule, the service will add an explicit deny all rule with a priority of 2147483647. In der Praxis wird die explizite Regel Alle ablehnen als letzte Regel ausgeführt und blockiert den Zugriff auf alle IP-Adressen, die nicht mit einer Zulassen-Regel explizit zugelassen sind.In practice, the explicit deny all rule will be last rule executed and will block access to any IP address that is not explicitly allowed using an Allow rule.

In einem Szenario, in dem Benutzer eine einzelne IP-Adresse oder einen IP-Adressblock explizit blockieren, aber den Zugriff für alles andere zulassen möchten, muss eine explizite Regel Alle zulassen hinzugefügt werden.For the scenario where users want to explicitly block a single IP address or IP address block, but allow everything else access, it is necessary to add an explicit Allow All rule.

Blockieren einer einzelnen IP-Adresse

SCM-WebsiteSCM site

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 einschränken.In addition to being able to control access to your app, you can also restrict access to the scm site used by your app. Die SCM-Website ist der Web Deploy-Endpunkt und zudem die Kudu-Konsole.The scm site is the web deploy endpoint and also the Kudu console. Sie können die Zugriffseinschränkungen für die SCM-Website getrennt von der App zuweisen oder die gleichen Einschränkungen für die App und die SCM-Website verwenden.You can separately assign access restrictions to the scm site from the app or use the same set for both the app and the scm site. Wenn Sie das Kontrollkästchen aktivieren, damit die gleichen Einschränkungen wie für die App gelten, wird alles ausgeblendet. Wenn Sie das Kontrollkästchen deaktivieren, werden alle vorherigen Einstellungen für die SCM-Website angewandt.When you check the box to have the same restrictions as your app, everything is blanked out. If you uncheck the box, whatever settings you had earlier on the scm site are applied.

Liste mit Zugriffseinschränkungen

Programmgesteuerte Bearbeitung von ZugriffseinschränkungsregelnProgrammatic manipulation of access restriction rules

Derzeit kann weder die Befehlszeilenschnittstelle noch PowerShell für die neue Funktion „Zugriffseinschränkungen“ verwendet werden. Sie können die Werte jedoch manuell per PUT-Vorgang der Azure-REST-API in der App-Konfiguration in Resource Manager festlegen.There currently is no CLI or PowerShell for the new Access Restrictions capability but the values can be set manually with an Azure REST API PUT operation on the app configuration in Resource Manager. Sie können beispielsweise „resources.azure.com“ verwenden und den ipSecurityRestrictions-Block bearbeiten, um den erforderlichen JSON-Code hinzuzufügen.As an example, you can use resources.azure.com and edit the ipSecurityRestrictions block to add the required JSON.

Der Speicherort dieser Informationen im Resource Manager ist:The location for this information in Resource Manager is:

management.azure.com/subscriptions/Abonnement-ID/resourceGroups/Ressourcengruppen/providers/Microsoft.Web/sites/Web-App-Name/config/web?api-version=2018-02-01management.azure.com/subscriptions/subscription ID/resourceGroups/resource groups/providers/Microsoft.Web/sites/web app name/config/web?api-version=2018-02-01

Die JSON-Syntax für das obige Beispiel lautet:The JSON syntax for the earlier example is:

{
  "properties": {
    "ipSecurityRestrictions": [
      {
        "ipAddress": "122.133.144.0/24",
        "action": "Allow",
        "tag": "Default",
        "priority": 100,
        "name": "IP example rule"
      }
    ]
  }
}

IP-Einschränkungen der Funktionen-AppFunction App IP Restrictions

IP-Einschränkungen stehen für beide Funktionen-Apps mit derselben Funktionalität wie App Service-Pläne zur Verfügung.IP restrictions are available for both Function Apps with the same functionality as App Service plans. Durch die Aktivierung von IP-Einschränkungen wird der Portalcode-Editor für alle unzulässigen IP-Adressen deaktiviert.Enabling IP restrictions will disable the portal code editor for any disallowed IPs.

Hier erhalten Sie weitere InformationenLearn more here