Skip to content

Commit 0c31634

Browse files
committed
edits
1 parent 45fb330 commit 0c31634

1 file changed

Lines changed: 49 additions & 43 deletions

File tree

articles/api-management/using-network-security-perimeter.md

Lines changed: 49 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: How to front a network security perimeter-protected Azure resource with Azure API Management
33
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-
ms.service: api-management
4+
ms.service: azure-api-management
55
ms.topic: how-to
66
ms.date: 01/22/2026
77
author: dlepow
@@ -13,31 +13,35 @@ ai-usage: ai-assisted
1313

1414
This article shows how to secure an Azure service resource with a network security perimeter and access it through Azure API Management. 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.
1515

16-
For background concepts and terminology, see [What is a network security perimeter?](/azure/private-link/network-security-perimeter-concepts).
16+
For background concepts and terminology, see [What is a network security perimeter?](/azure/private-link/network-security-perimeter-concepts)
1717

1818
## Why use a network security perimeter with API Management?
1919

20-
Beginning March 2026, [API Management is retiring trusted service connectivity](/breaking-changes/trusted-service-connectivity-retirement-march-2026.md) from the gateway to select backend Azure services. If those backends such as Azure storage accounts rely on trusted Microsoft services or resource instances for network access, you must migrate. A network security perimeter provides the supported, centralized perimeter to explicitly allow traffic while keeping public access disabled.
20+
Beginning March 2026, [API Management is retiring trusted service connectivity](breaking-changes/trusted-service-connectivity-retirement-march-2026.md) from the gateway to select backend Azure services. If those backends such as Azure storage accounts rely on trusted Microsoft services or resource instances for network access, you must migrate. A network security perimeter provides the supported, centralized perimeter to explicitly allow traffic while keeping public access disabled.
2121

2222
- **Modern token trust model:** Managed identity tokens now include trust mode claims that no longer permit implicit network bypass. A network security perimeter establishes the explicit network path your backend requires.
2323
- **Centralized governance:** A network security perimeter consolidates per‑service network rules into a single perimeter, improving consistency and observability across protected resources.
24-
- **Works without a virtual network:** For API Management instances not integrated with a virtual network, network security perimeter enables secure access by subscription or IP range. If virtual network integration is available and preferred, you can continue to use that approach.
24+
- **Works without a virtual network:** For API Management instances not isolated with a virtual network, network security perimeter enables secure access by subscription or IP range. If virtual network isolation is available and preferred, you can continue to use that approach.
2525

2626
## Prerequisites
2727

2828
- An Azure subscription and Owner or Contributor permissions.
2929
- An Azure API Management instance with system-assigned managed identity enabled.
30-
- An Azure Storage account with a container and at least one test blob (for example, a JSON file).
31-
32-
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.
30+
- An Azure Storage account
31+
- Configure a container and at least one test blob (for example, a JSON file).
32+
- 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.
3333

3434
## Overview of steps
3535

3636
1. Configure API Management to call Azure Storage using a managed identity.
37+
3738
1. Create a network security perimeter profile and associate the storage account.
38-
1. Add an inbound access rule to allow API Management traffic (by subscription).
39+
40+
1. Add an inbound access rule to allow API Management traffic.
41+
3942
1. Test the API call from API Management to confirm access with network security perimeter.
40-
1. Move network security perimeter access mode from **Transition** to **Enforced**.
43+
44+
1. Move network security perimeter access mode from **transition** to **enforced**.
4145

4246
## Step 1. Configure API Management to call Azure Storage by using managed identity
4347

@@ -46,42 +50,42 @@ Configure API Management to call Azure Storage. Add a test API and operation, an
4650
1. In the [Azure portal](https://portal.azure.com/), go to your API Management instance.
4751
1. Ensure system-assigned managed identity is enabled:
4852
1. In the left menu, select **Security** > **Managed identities**.
49-
1. On the **System assigned** tab, set **Status** to **On**. Select **Save**.
53+
1. On the **System assigned** tab, set **Status** to **On** if not already enabled. Select **Save**.
5054
1. Go to the storage account and grant the managed identity access:
5155
1. In the left menu, select **Access control (IAM)** > **Add role assignment**.
5256
1. Select **Storage Blob Data Reader** role (or **Contributor**, if write access is required) and assign to the API Management managed identity.
5357
1. Complete the role assignment steps.
5458

5559
### Configure an API operation to call Azure Storage
5660

57-
1. Add an example API that fronts the Azure Storage blob URI (for example, `https://<storage-account-name>.blob.core.windows.net/apimtest`).
61+
1. Add an HTTP API that fronts the Azure Storage blob URI (for example, `https://<storage-account-name>.blob.core.windows.net/apimtest`).
5862
1. Add a GET operation targeting the container.
5963
:::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.":::
6064

6165
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:
6266

63-
```xml
64-
<policies>
65-
<inbound>
66-
<base />
67-
<!-- Authenticate to Storage using API Management managed identity -->
68-
<authentication-managed-identity resource="https://storage.azure.com/" />
69-
<!-- Set Storage API version header -->
70-
<set-header name="x-ms-version" exists-action="override">
71-
<value>2025-11-05</value>
72-
</set-header>
73-
</inbound>
74-
<backend>
75-
<forward-request />
76-
</backend>
77-
<outbound>
78-
<base />
79-
</outbound>
80-
<on-error>
81-
<base />
82-
</on-error>
83-
</policies>
84-
```
67+
```xml
68+
<policies>
69+
<inbound>
70+
<base />
71+
<!-- Authenticate to Storage using API Management managed identity -->
72+
<authentication-managed-identity resource="https://storage.azure.com/" />
73+
<!-- Set Storage API version header -->
74+
<set-header name="x-ms-version" exists-action="override">
75+
<value>2025-11-05</value>
76+
</set-header>
77+
</inbound>
78+
<backend>
79+
<forward-request />
80+
</backend>
81+
<outbound>
82+
<base />
83+
</outbound>
84+
<on-error>
85+
<base />
86+
</on-error>
87+
</policies>
88+
```
8589

8690
> [!NOTE]
8791
> - The `resource` value should be `https://storage.azure.com/` for Azure Storage.
@@ -91,10 +95,9 @@ Configure API Management to call Azure Storage. Add a test API and operation, an
9195

9296
Before configuring the network security perimeter, test that the API operation can reach the storage account.
9397

94-
1. In API Management, open your API operation that calls Azure Storage:
95-
1. In the left menu, under **APIs**, select your API and operation.
96-
1. Select the **Test** tab.
97-
1. Select **Test** and call the operation. Optionally select **Trace** to capture detailed telemetry.
98+
1. In the left menu, under **APIs**, select your API and operation.
99+
1. Select the **Test** tab.
100+
1. Select **Test** and call the operation. Optionally select **Trace** to capture detailed telemetry.
98101

99102
Expected results:
100103
- The call succeeds with a `200 OK` response and returns the blob content.
@@ -116,7 +119,7 @@ Expected results:
116119

117120
## Step 3. Add an inbound access rule to allow API Management traffic
118121

119-
To allow API Management to reach the storage account through the perimeter, add an inbound rule. The simplest approach is by subscription.
122+
To allow API Management to reach the storage account through the perimeter, add an inbound rule. The simplest approach is by Azure subscription.
120123

121124
1. In the Azure portal, go to your network security perimeter.
122125
1. In the left menu of the network security perimeter, select **Settings** > **Profiles**, then select the profile you created.
@@ -131,18 +134,21 @@ To allow API Management to reach the storage account through the perimeter, add
131134

132135
### Confirm the network configuration in the storage account
133136

134-
1. In the Azure portal, go to your Azure Storage account.
137+
1. In the Azure portal, go to your storage account.
135138
1. In the left menu, under **Security + networking**, select **Networking**.
136139
1. On the **Public access** tab, select **Manage**. **Disable** public network access.
137140
1. Under **Network security perimeter**, confirm that the storage account is associated with your network security perimeter profile and that the access rule is listed.
141+
138142
:::image type="content" source="media/using-network-security-perimeter/public-access-settings.png" alt-text="Screenshot of public access settings in the storage account in the portal.":::
139143

140144
## Step 4. Test access from API Management
141145

142-
1. In API Management, open your API operation that calls Azure Storage:
143-
1. In the left menu, under **APIs**, select your API and operation.
144-
1. Select the **Test** tab.
145-
1. Select **Test** and call the operation. Optionally select **Trace** to capture detailed telemetry.
146+
Test that the API operation can reach the storage account in the network security perimeter.
147+
148+
1. In the Azure portal, go to your API Management instance.
149+
1. In the left menu, under **APIs**, select your API and operation.
150+
1. Select the **Test** tab.
151+
1. Select **Test** and call the operation. Optionally select **Trace** to capture detailed telemetry.
146152

147153
Expected result:
148154
- The call succeeds with a `200 OK` response and returns the blob content.

0 commit comments

Comments
 (0)