本文介绍如何使用 Azure 网络安全外围 保护 Azure 服务资源,并通过 Azure API 管理对其进行访问。
例如,将具有网络安全外围的 Azure 存储帐户配置为允许来自订阅(包含 API 管理实例)的流量,使用 API 管理的托管标识向 Azure 存储进行身份验证,并使用 API 管理控制台验证访问权限。 将禁用对存储帐户的受信任服务连接和公共访问。
为什么将网络安全外围与 API 管理配合使用?
网络安全外围提供受支持的集中式外围,以显式允许流量,同时使公共访问处于禁用状态。 它提供:
- 新式令牌信任模型: 托管标识令牌现在包括不再允许隐式网络绕过的信任模式声明。 网络安全边界确定后端所需的显式网络路径。
- 集中式治理: 网络安全外围将每个服务网络规则合并到单个外围,从而提高受保护资源的一致性和可观测性。
- 在没有虚拟网络的情况下工作: 对于未与虚拟网络隔离的 API 管理实例,网络安全外围可以通过订阅或 IP 范围实现安全访问。 如果虚拟网络隔离可用且首选,则可以继续使用此方法。
注释
从 2026 年 3 月开始, API 管理将从网关停用受信任的服务连接 ,以选择后端 Azure 服务。 如果 Azure 存储帐户等后端依赖于受信任的Microsoft服务或资源实例进行网络访问,则必须迁移。 网络安全边界提供受支持的集中管理边界,明确允许流量,同时保持公共访问禁用。
先决条件
- 需要具有 Azure 订阅以及所有者或参与者的权限。
- 启用了系统分配或用户分配的托管标识的 Azure API 管理实例。
- Azure 存储帐户
- 配置容器和至少一个测试 Blob(例如 JSON 文件)。
- 首先,启用对存储帐户的公共网络访问。 默认情况下,此设置还允许受信任的Microsoft服务和资源实例访问存储帐户。 稍后在关联网络安全边界时修改访问权限。
步骤概述
配置 API 管理以使用托管标识调用 Azure 存储。
阻止对存储帐户的公共网络访问。
创建网络安全外围配置文件并关联存储帐户。
添加入站访问规则以允许 API 管理流量。
将网络安全外围访问模式从 过渡 转移到 强制实施。
步骤 1. 配置 API 管理以使用托管标识调用 Azure 存储
配置 API 管理以调用 Azure 存储。 添加测试 API 和作,并配置策略以使用 API 管理的托管标识进行身份验证。
- 在 Azure 门户中,转到 API 管理实例。
- 确保已启用系统分配的托管标识或用户分配的托管标识。 有关步骤,请参阅 在 API 管理中使用托管标识。
- 转到存储帐户并授予托管身份访问权限:
- 在左侧菜单中,选择“ 访问控制”(IAM)>“添加角色分配。
- 选择 Storage Blob Data Reader 角色(或 Contributor,如果需要写入访问权限),并将其分配给 API 管理托管标识。
- 完成角色分配步骤。
配置 API 操作以调用 Azure 存储
添加一个支持 Azure 存储 Blob URI 的 HTTP API(例如
https://<storage-account-name>.blob.core.chinacloudapi.cn/apimtest)。添加针对容器的GET操作。
在 “设计” 选项卡上,选择操作,然后选择策略编辑器(
</>)。 编辑操作的策略定义以添加 API 版本标头和托管标识身份验证。
在下面的示例中:
该
authentication-managed-identity策略假定 API 管理实例已启用系统分配的托管标识,并且可以访问 Azure 存储。 若要使用用户分配的托管标识,请设置策略中的属性client-id。 有关详细信息,请参阅 策略参考。该
set-header策略设置 所需的存储 REST API 版本标头。<policies> <inbound> <base /> <!-- Authenticate to Storage using API Management managed identity --> <authentication-managed-identity resource="https://storage.azure.com/" /> <!-- Set Storage API version header --> <set-header name="x-ms-version" exists-action="override"> <value>2025-11-05</value> </set-header> </inbound> <backend> <forward-request /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>
注释
- 该值
resource应https://storage.azure.com/适用于 Azure 存储。 - 确保为托管标识分配适当的 RBAC 角色。
测试 API 操作
在配置网络安全边界之前,请测试 API操作是否可以访问存储帐户。
- 在左侧菜单中的 API 下,选择您的 API 和操作。
- 选择“测试”选项卡。
- 选择测试并调用操作。 (可选)选择 “跟踪 ”以捕获详细的遥测数据。
预期结果:
- 调用以
200 OK响应成功,并返回 Blob 内容。 - 如果启用了 跟踪,则可以验证 API 管理是否已将托管标识令牌添加到授权标头。
步骤 2. 阻止对存储帐户的公共网络访问
如果现在阻止对存储帐户的公共网络访问,则 API 管理中的 API 调用会失败,因为受信任的服务连接已禁用。
- 在 Azure 门户中转到你的存储帐户。
- 在左侧菜单中的 “安全性 + 网络”下,选择“ 网络”。
- 在“ 公共访问 ”选项卡上,选择“ 管理”。 禁用 公用网络访问。
- 选择“保存”。
测试 API 操作
测试确认 API操作无法再连接到存储帐户。
- 在 Microsoft Azure 门户中,转到 API 管理实例。
- 在左侧菜单中的 API 下,选择您的 API 和操作。
- 选择“测试”选项卡。
- 选择测试并调用操作。 (可选)选择 “跟踪 ”以捕获详细的遥测数据。
预期结果:
- 调用失败并出现
403 Forbidden响应。
步骤 3. 创建网络安全外围配置文件并关联存储帐户
有关创建网络安全外围并将 Azure 资源与配置文件关联的典型步骤,请参阅 创建网络安全外围和配置文件。 简单步骤如下:
- 在 Azure 门户中,搜索 网络安全外围 并选择它。
- 选择 “+ 创建 ”并提供名称和区域。 接受其他设置的默认值并创建外围。
- 部署后,转到设置>关联资源边栏选项卡,将存储帐户与现有或新配置文件相关联。
步骤 4:添加入站访问规则以允许 API 管理流量
若要允许 API 管理通过外围访问存储帐户,请添加入站规则。 最简单的方法是 Azure 订阅。
- 在网络安全外围的左侧菜单中,选择“设置>”,然后选择与存储帐户关联的配置文件。
- 在左侧菜单中,选择 “设置>入站访问规则>+ 添加:
- 输入规则的名称。
- 选择 “源类型订阅”,然后在 “允许的源 ”中选择包含 API 管理实例的订阅。
- 选择 并添加。
注释
如果选择基于 IP 地址的控制,请在入站规则中指定 API 管理的出站公共 IP 地址范围。 确保包括 API 管理实例的所有出站 IP 地址 。
确认存储帐户中的网络配置
- 在 Azure 门户中转到你的存储帐户。
- 在左侧菜单中的 “安全性 + 网络”下,选择“ 网络”。
- 在 “网络安全外围”下,确认存储帐户与网络安全外围配置文件相关联,并列出访问规则。
测试 API 操作
测试 API 操作是否能够到达网络安全边界内的存储帐户。
- 在 Microsoft Azure 门户中,转到 API 管理实例。
- 在左侧菜单中的 API 下,选择您的 API 和操作。
- 选择“测试”选项卡。
- 选择测试并调用操作。 (可选)选择 “跟踪 ”以捕获详细的遥测数据。
预期结果:
- 调用以
200 OK响应成功,并返回 Blob 内容。
步骤 5. 将访问模式设为强制执行
网络安全外围支持以下 访问模式:
- 过渡: 应用现有的每资源网络设置和网络安全外围规则。 首次关联资源时,此模式是默认模式。
- 执行: 仅应用网络安全外围规则。 验证访问权限后使用此模式。
在 过渡 模式下验证访问权限后,将网络安全边界的访问模式设置为 强制。 有关详细信息,请参阅 配置 publicNetworkAccess 和 accessMode 属性的步骤。
相关内容
- 详细了解 网络安全外围概念和功能
- API 管理中的网络选项