You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/app-service/app-service-ip-restrictions.md
+10-7Lines changed: 10 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: madsd
5
5
6
6
ms.assetid: 3be1f4bd-8a81-4565-8a56-528c037b24bd
7
7
ms.topic: article
8
-
ms.date: 03/21/2022
8
+
ms.date: 09/01/2022
9
9
ms.author: madsd
10
10
11
11
---
@@ -75,9 +75,8 @@ On the **Add Access Restriction** pane, when you create a rule, do the following
75
75
76
76
1. Optionally, enter a name and description of the rule.
77
77
1. In the **Priority** box, enter a priority value.
78
-
1. In the **Type** drop-down list, select the type of rule.
79
-
80
-
The different types of rules are described in the following sections.
78
+
1. In the **Type** drop-down list, select the type of rule. The different types of rules are described in the following sections.
79
+
1. After typing in the rule specific input select **Save** to save the changes.
81
80
82
81
> [!NOTE]
83
82
> - There is a limit of 512 access restriction rules. If you require more than 512 access restriction rules, we suggest that you consider installing a standalone security product, such as Azure Front Door, Azure App Gateway, or an alternative WAF.
@@ -120,7 +119,9 @@ All available service tags are supported in access restriction rules. Each servi
120
119
121
120
1. To begin editing an existing access restriction rule, on the **Access Restrictions** page, select the rule you want to edit.
122
121
123
-
1. On the **Edit Access Restriction** pane, make your changes, and then select **Update rule**. Edits are effective immediately, including changes in priority ordering.
122
+
1. On the **Edit Access Restriction** pane, make your changes, and then select **Update rule**.
123
+
124
+
1. Select **Save** to save the changes.
124
125
125
126
:::image type="content" source="media/app-service-ip-restrictions/access-restrictions-ip-edit.png?v2" alt-text="Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.":::
126
127
@@ -129,7 +130,9 @@ All available service tags are supported in access restriction rules. Each servi
129
130
130
131
### Delete a rule
131
132
132
-
To delete a rule, on the **Access Restrictions** page, select the ellipsis (**...**) next to the rule you want to delete, and then select **Remove**.
133
+
1. To delete a rule, on the **Access Restrictions** page, check the rule or rules you want to delete, and then select **Delete**.
134
+
135
+
1. Select **Save** to save the changes.
133
136
134
137
:::image type="content" source="media/app-service-ip-restrictions/access-restrictions-delete.png" alt-text="Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.":::
135
138
@@ -170,7 +173,7 @@ For a scenario where you want to explicitly block a single IP address or a block
170
173
171
174
### Restrict access to an SCM site
172
175
173
-
In addition to being able to control access to your app, you can restrict access to the SCM site that's used by your app. The SCM site is both the web deploy endpoint and the Kudu console. You can assign access restrictions to the SCM site from the app separately or use the same set of restrictions for both the app and the SCM site. When you select the **Same restrictions as \<app name>** check box, everything is blanked out. If you clear the check box, your SCM site settings are reapplied.
176
+
In addition to being able to control access to your app, you can restrict access to the SCM (Advanced tool) site that's used by your app. The SCM site is both the web deploy endpoint and the Kudu console. You can assign access restrictions to the SCM site from the app separately or use the same set of restrictions for both the app and the SCM site. When you select the **Use main site rules** check box, the rules list will be hidden and it will use the rules from the main site. If you clear the check box, your SCM site settings will appear again.
174
177
175
178
:::image type="content" source="media/app-service-ip-restrictions/access-restrictions-scm-browse.png" alt-text="Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.":::
Copy file name to clipboardExpand all lines: articles/app-service/networking-features.md
+10-56Lines changed: 10 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: madsd
5
5
6
6
ms.assetid: 5c61eed1-1ad1-4191-9f71-906d610ee5b7
7
7
ms.topic: article
8
-
ms.date: 09/20/2021
8
+
ms.date: 09/01/2022
9
9
ms.author: madsd
10
10
11
11
---
@@ -73,11 +73,11 @@ Azure App Service scale units support many customers in each deployment. The Fre
73
73
74
74
The worker VMs are broken down in large part by the App Service plans. The Free, Shared, Basic, Standard, and Premium plans all use the same worker VM type. The PremiumV2 plan uses another VM type. PremiumV3 uses yet another VM type. When you change the VM family, you get a different set of outbound addresses. If you scale from Standard to PremiumV2, your outbound addresses will change. If you scale from PremiumV2 to PremiumV3, your outbound addresses will change. In some older scale units, both the inbound and outbound addresses will change when you scale from Standard to PremiumV2.
75
75
76
-
There are a number of addresses that are used for outbound calls. The outbound addresses used by your app for making outbound calls are listed in the properties for your app. These addresses are shared by all the apps running on the same worker VM family in the App Service deployment. If you want to see all the addresses that your app might use in a scale unit, there's property called `possibleOutboundAddresses` that will list them.
76
+
There are many addresses that are used for outbound calls. The outbound addresses used by your app for making outbound calls are listed in the properties for your app. These addresses are shared by all the apps running on the same worker VM family in the App Service deployment. If you want to see all the addresses that your app might use in a scale unit, there's property called `possibleOutboundAddresses` that will list them.
77
77
78
78

79
79
80
-
App Service has a number of endpoints that are used to manage the service. Those addresses are published in a separate document and are also in the `AppServiceManagement` IP service tag. The `AppServiceManagement` tag is used only in App Service Environments where you need to allow such traffic. The App Service inbound addresses are tracked in the `AppService` IP service tag. There's no IP service tag that contains the outbound addresses used by App Service.
80
+
App Service has many endpoints that are used to manage the service. Those addresses are published in a separate document and are also in the `AppServiceManagement` IP service tag. The `AppServiceManagement` tag is used only in App Service Environments where you need to allow such traffic. The App Service inbound addresses are tracked in the `AppService` IP service tag. There's no IP service tag that contains the outbound addresses used by App Service.
81
81
82
82

83
83
@@ -96,60 +96,15 @@ To learn how to set an address on your app, see [Add a TLS/SSL certificate in Az
96
96
97
97
### Access restrictions
98
98
99
-
Access restrictions let you filter *inbound* requests. The filtering action takes place on the front-end roles that are upstream from the worker roles where your apps are running. Because the front-end roles are upstream from the workers, you can think of access restrictions as network-level protection for your apps.
99
+
Access restrictions let you filter *inbound* requests. The filtering action takes place on the front-end roles that are upstream from the worker roles where your apps are running. Because the front-end roles are upstream from the workers, you can think of access restrictions as network-level protection for your apps. For more information about access restrictions, see [Access restrictions overview](./overview-access-restrictions.md).
100
+
101
+
This feature allows you to build a list of allow and deny rules that are evaluated in priority order. It's similar to the network security group (NSG) feature in Azure networking. You can use this feature in an ASE or in the multi-tenant service. When you use it with an ILB ASE, you can restrict access from private address blocks. To learn how to enable this feature, see [Configuring access restrictions](./app-service-ip-restrictions.md).
100
102
101
-
This feature allows you to build a list of allow and deny rules that are evaluated in priority order. It's similar to the network security group (NSG) feature in Azure networking. You can use this feature in an ASE or in the multi-tenant service. When you use it with an ILB ASE, you can restrict access from private address blocks.
102
103
> [!NOTE]
103
104
> Up to 512 access restriction rules can be configured per app.
104
105
105
106

106
107
107
-
#### IP-based access restriction rules
108
-
109
-
The IP-based access restrictions feature helps when you want to restrict the IP addresses that can be used to reach your app. Both IPv4 and IPv6 are supported. Some use cases for this feature:
110
-
* Restrict access to your app from a set of well-defined addresses.
111
-
* Restrict access to traffic coming through an external load-balancing service or other network appliances with known egress IP addresses.
112
-
113
-
To learn how to enable this feature, see [Configuring access restrictions][iprestrictions].
114
-
115
-
> [!NOTE]
116
-
> IP-based access restriction rules only handle virtual network address ranges when your app is in an App Service Environment. If your app is in the multi-tenant service, you need to use [service endpoints](../virtual-network/virtual-network-service-endpoints-overview.md) to restrict traffic to select subnets in your virtual network.
117
-
118
-
#### Access restriction rules based on service endpoints
119
-
120
-
Service endpoints allow you to lock down *inbound* access to your app so that the source address must come from a set of subnets that you select. This feature works together with IP access restrictions. Service endpoints aren't compatible with remote debugging. If you want to use remote debugging with your app, your client can't be in a subnet that has service endpoints enabled. The process for setting service endpoints is similar to the process for setting IP access restrictions. You can build an allow/deny list of access rules that includes public addresses and subnets in your virtual networks.
121
-
122
-
> [!NOTE]
123
-
> Access restriction rules based on service endpoints are not supported on apps that use IP-based SSL ([App-assigned address](#app-assigned-address)).
124
-
125
-
Some use cases for this feature:
126
-
127
-
* Set up an application gateway with your app to lock down inbound traffic to your app.
128
-
* Restrict access to your app to resources in your virtual network. These resources can include VMs, ASEs, or even other apps that use virtual network integration.
129
-
130
-

131
-
132
-
To learn more about configuring service endpoints with your app, see [Azure App Service access restrictions][serviceendpoints].
133
-
134
-
#### Access restriction rules based on service tags
135
-
136
-
[Azure service tags][servicetags] are well defined sets of IP addresses for Azure services. Service tags group the IP ranges used in various Azure services and is often also further scoped to specific regions. This allows you to filter *inbound* traffic from specific Azure services.
137
-
138
-
For a full list of tags and more information, visit the service tag link above.
139
-
To learn how to enable this feature, see [Configuring access restrictions][iprestrictions].
140
-
141
-
#### Http header filtering for access restriction rules
142
-
143
-
For each access restriction rule, you can add additional http header filtering. This allows you to further inspect the incoming request and filter based on specific http header values. Each header can have up to eight values per rule. The following list of http headers is currently supported:
144
-
* X-Forwarded-For
145
-
* X-Forwarded-Host
146
-
* X-Azure-FDID
147
-
* X-FD-HealthProbe
148
-
149
-
Some use cases for http header filtering are:
150
-
* Restrict access to traffic from proxy servers forwarding the host name
151
-
* Restrict access to a specific Azure Front Door instance with a service tag rule and X-Azure-FDID header restriction
152
-
153
108
### Private endpoint
154
109
155
110
Private endpoint is a network interface that connects you privately and securely to your Web App by Azure private link. Private endpoint uses a private IP address from your virtual network, effectively bringing the web app into your virtual network. This feature is only for *inbound* flows to your web app.
@@ -184,7 +139,7 @@ This feature is commonly used to:
184
139
185
140
Because this feature enables access to on-premises resources without an inbound firewall hole, it's popular with developers. The other outbound App Service networking features are related to Azure Virtual Network. Hybrid Connections doesn't depend on going through a virtual network. It can be used for a wider variety of networking needs.
186
141
187
-
Note that App Service Hybrid Connections is unaware of what you're doing on top of it. So you can use it to access a database, a web service, or an arbitrary TCP socket on a mainframe. The feature essentially tunnels TCP packets.
142
+
App Service Hybrid Connections is unaware of what you're doing on top of it. So you can use it to access a database, a web service, or an arbitrary TCP socket on a mainframe. The feature essentially tunnels TCP packets.
188
143
189
144
Hybrid Connections is popular for development, but it's also used in production applications. It's great for accessing a web service or database, but it's not appropriate for situations that involve creating many connections.
190
145
@@ -194,7 +149,7 @@ Gateway-required App Service virtual network integration enables your app to mak
194
149
195
150

196
151
197
-
This feature solves the problem of accessing resources in other virtual networks. It can even be used to connect through a virtual network to either other virtual networks or on-premises. It doesn't work with ExpressRoute-connected virtual networks, but it does work with site-to-site VPN-connected networks. It's usually inappropriate to use this feature from an app in an App Service Environment (ASE) because the ASE is already in your virtual network. Use cases for this feature:
152
+
This feature solves the problem of accessing resources in other virtual networks. It can even be used to connect through a virtual network to either other virtual networks or on-premises. It doesn't work with ExpressRoute-connected virtual networks, but it does work with site-to-site VPN-connected networks. It's inappropriate to use this feature from an app in an App Service Environment (ASE) because the ASE is already in your virtual network. Use cases for this feature:
198
153
199
154
* Access resources in cross region virtual networks that aren't peered to a virtual network in the region.
200
155
@@ -228,7 +183,7 @@ An App Service Environment (ASE) is a single-tenant deployment of the Azure App
228
183
* Access resources across service endpoints.
229
184
* Access resources across private endpoints.
230
185
231
-
With an ASE, you don't need to use virtual network integration because the ASE is already in your virtual network. If you want to access resources like SQL or Azure Storage over service endpoints, enable service endpoints on the ASE subnet. If you want to access resources in the virtual network or private endpoints in the virtual network, you don't need to do any additional configuration. If you want to access resources across ExpressRoute, you're already in the virtual network and don't need to configure anything on the ASE or the apps in it.
186
+
With an ASE, you don't need to use virtual network integration because the ASE is already in your virtual network. If you want to access resources like SQL or Azure Storage over service endpoints, enable service endpoints on the ASE subnet. If you want to access resources in the virtual network or private endpoints in the virtual network, you don't need to do any extra configuration. If you want to access resources across ExpressRoute, you're already in the virtual network, and don't need to configure anything on the ASE or the apps in it.
232
187
233
188
Because the apps in an ILB ASE can be exposed on a private IP address, you can easily add WAF devices to expose just the apps that you want to the internet and help keep the rest secure. This feature can help make the development of multi-tier applications easier.
234
189
@@ -283,7 +238,7 @@ If you're hosting both the front end and API app for a multi-tier application, y
283
238
284
239
Here are some considerations to help you decide which method to use:
285
240
286
-
* When you use service endpoints, you only need to secure traffic to your API app to the integration subnet. Service endpoints helps to secure the API app, but you could still have data exfiltration from your front-end app to other apps in the app service.
241
+
* When you use service endpoints, you only need to secure traffic to your API app to the integration subnet. Service endpoints help to secure the API app, but you could still have data exfiltration from your front-end app to other apps in the app service.
287
242
* When you use private endpoints, you have two subnets at play, which adds complexity. Also, the private endpoint is a top-level resource and adds management overhead. The benefit of using private endpoints is that you don't have the possibility of data exfiltration.
288
243
289
244
Either method will work with multiple front ends. On a small scale, service endpoints are easier to use because you simply enable service endpoints for the API app on the front-end integration subnet. As you add more front-end apps, you need to adjust every API app to include service endpoints with the integration subnet. When you use private endpoints, there's more complexity, but you don't have to change anything on your API apps after you set a private endpoint.
@@ -313,7 +268,6 @@ If you scan App Service, you'll find several ports that are exposed for inbound
0 commit comments