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/api-management/using-network-security-perimeter.md
+17-19Lines changed: 17 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: How to front a network security perimeter-protected Azure resource with A
3
3
description: Step-by-step guidance to secure an Azure service backend with a network security perimeter and access it via Azure API Management using managed identity.
4
4
ms.service: azure-api-management
5
5
ms.topic: how-to
6
-
ms.date: 01/22/2026
6
+
ms.date: 01/27/2026
7
7
author: dlepow
8
8
ms.author: danlep
9
9
ai-usage: ai-assisted
@@ -13,8 +13,7 @@ ai-usage: ai-assisted
13
13
14
14
This article shows how to secure an Azure service resource with an Azure [network security perimeter](/azure/private-link/network-security-perimeter-concepts) and access it through Azure API Management.
15
15
16
-
You'll configure an Azure Storage account with a network security perimeter to allow traffic from your subscription (containing the API Management instance), use API Management's managed identity to authenticate to Azure Storage, and verify access with the API Management test console. Trusted service connectivity and public access to the storage account will be disabled.
17
-
16
+
As an example, you configure an Azure Storage account with a network security perimeter to allow traffic from your subscription (containing the API Management instance), use API Management's managed identity to authenticate to Azure Storage, and verify access with the API Management test console. Trusted service connectivity and public access to the storage account will be disabled.
18
17
19
18
## Why use a network security perimeter with API Management?
20
19
@@ -30,7 +29,7 @@ A network security perimeter provides a supported, centralized perimeter to expl
30
29
## Prerequisites
31
30
32
31
- An Azure subscription and Owner or Contributor permissions.
33
-
- An Azure API Management instance with system-assigned managed identity enabled.
32
+
- An Azure API Management instance with a system-assigned or user-assigned managed identity enabled.
34
33
- An Azure Storage account
35
34
- Configure a container and at least one test blob (for example, a JSON file).
36
35
- To begin, enable public network access to the storage account. By default, this setting also enables trusted Microsoft services and resource instances to access the storage account. You modify access later when associating the network security perimeter.
@@ -52,9 +51,7 @@ A network security perimeter provides a supported, centralized perimeter to expl
52
51
Configure API Management to call Azure Storage. Add a test API and operation, and configure a policy to authenticate by using API Management's managed identity.
53
52
54
53
1. In the [Azure portal](https://portal.azure.com/), go to your API Management instance.
55
-
1. Ensure system-assigned managed identity is enabled:
56
-
1. In the left menu, select **Security** > **Managed identities**.
57
-
1. On the **System assigned** tab, set **Status** to **On** if not already enabled. Select **Save**.
54
+
1. Ensure that a system-assigned or user-assigned managed identity is enabled. For steps, see [Use managed identities in API Management](api-management-howto-use-managed-service-identity.md).
58
55
1. Go to the storage account and grant the managed identity access:
59
56
1. In the left menu, select **Access control (IAM)** > **Add role assignment**.
60
57
1. Select **Storage Blob Data Reader** role (or **Contributor**, if write access is required) and assign to the API Management managed identity.
@@ -66,7 +63,12 @@ Configure API Management to call Azure Storage. Add a test API and operation, an
66
63
1. Add a GET operation targeting the container.
67
64
:::image type="content" source="media/using-network-security-perimeter/api-operation.png" alt-text="Screenshot showing a sample API operation to access a blob container in the portal.":::
68
65
69
-
1. On the **Design** tab, select the operation and then select the policy editor (`</>`). Edit the operation's policy definition to add the API version header and managed identity authentication. Example:
66
+
1. On the **Design** tab, select the operation and then select the policy editor (`</>`). Edit the operation's policy definition to add the API version header and managed identity authentication.
67
+
68
+
In the following example:
69
+
70
+
* The `authentication-managed-identity` policy assumes that the API Management instance has a system-assigned managed identity enabled and can access Azure Storage. To use a user-assigned managed identity, set a `client-id` attribute in the policy. For more information, see the [policy reference](authentication-managed-identity-policy.md).
71
+
* The `set-header` policy sets the [required Storage REST API version header](/rest/api/storageservices/get-blob?tabs=microsoft-entra-id#request-headers).
70
72
71
73
```xml
72
74
<policies>
@@ -130,28 +132,24 @@ Expected result:
130
132
131
133
## Step 3. Create a network security perimeter profile and associate the storage account
132
134
135
+
For typical steps to create a network security perimeter and associate an Azure resource with a profile, see [Create a network security perimeter and profile](/azure/private-link/network-security-perimeter-create). Brief steps follow:
136
+
133
137
1. In the Azure portal, search for **Network Security Perimeters** and select it.
134
-
1. Select **+ Create** and provide a name and region. Accept the defaults for other settings.
135
-
1. Select **Review + create** and then **Create**.
136
-
1. After deployment, configure the network security perimeter profile:
137
-
1. In the left menu, select **Settings** > **Associated resources** > **+ Add** > **Associate resources with an existing profile**.
138
-
1. Select the profile you created. Select **+ Add**.
139
-
1. Select the storage account that you want to secure, but still allow the API Management gateway to access.
140
-
1. Select **Associate**.
138
+
1. Select **+ Create** and provide a name and region. Accept the defaults for other settings and create the perimeter.
139
+
1. After deployment, go to the **Settings** > **Associated resources** blade to associate the storage account with an existing or new profile.
141
140
142
-
## Step 4. Add an inbound access rule to allow API Management traffic
141
+
## Step 4: Add an inbound access rule to allow API Management traffic
143
142
144
143
To allow API Management to reach the storage account through the perimeter, add an inbound rule. The simplest approach is by Azure subscription.
145
144
146
-
1. In the Azure portal, go to your network security perimeter.
147
-
1. In the left menu of the network security perimeter, select **Settings** > **Profiles**, then select the profile you created.
145
+
1. In the left menu of our network security perimeter, select **Settings** > **Profiles**, then select the profile you associated with the storage account.
148
146
1. In the left menu, select **Settings** > **Inbound access rules** > **+ Add**:
149
147
1. Enter a name for the rule.
150
148
1. Select **Source type** *Subscriptions*, then in **Allowed sources** select the subscription that contains your API Management instance.
151
149
1. Select **Add**.
152
150
153
151
> [!NOTE]
154
-
> If you select IP address-based control, specify API Management's outbound public IP address range in the inbound rule. Ensure you include all outbound [IP addresses](api-management-howto-ip-addresses.md) for your API Management instance.
152
+
> If you select IP address-based control, specify API Management's outbound public IP address range in the inbound rule. Ensure you include all outbound [IP addresses](api-management-howto-ip-addresses.md#ip-addresses-for-outbound-traffic) for your API Management instance.
155
153
>
156
154
157
155
### Confirm the network configuration in the storage account
0 commit comments