你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用入站专用终结点以专用方式连接到 API 管理
适用于:开发人员 | 基本 | 标准 | 标准 v2 | 高级
可以为 API 管理实例配置入站专用终结点,以允许专用网络中的客户端通过 Azure 专用链接安全地访问实例。
注意
标准 v2 层中的专用终结点支持目前为有限预览版。 如果要注册,请填写此表单。
专用终结点使用托管它的 Azure 虚拟网络中的 IP 地址。
专用网络上客户端与 API Management 之间的网络流量将通过虚拟网络以及 Microsoft 主干网络上的专用链接,从而避免从公共 Internet 公开。
配置自定义 DNS 设置或 Azure DNS 专用区域以将 API Management 主机名映射到终结点的专用 IP 地址。
通过专用终结点和专用链接,你可以:
创建到 API Management 实例的多个专用链接连接。
使用专用终结点通过安全的连接发送入站流量。
使用策略来区分来自专用终结点的流量。
将传入流量仅限制到专用终结点,防止数据外泄。
将到标准 v2 实例的入站专用终结点与出站虚拟网络集成相结合,为 API 管理客户端和后端服务提供端到端网络隔离。
重要
- 只能为发到 API 管理实例的入站流量配置专用终结点连接。
限制
- 目前,只有 API 管理实例的网关终结点支持入站专用链接连接。
- 每个 API 管理实例当前最多支持 100 个专用链接连接。
- 自托管网关或工作区网关不支持连接。
- 在经典 API 管理层中,内部或外部虚拟网络中注入的实例不支持专用终结点。
先决条件
- 现有的 API 管理实例。 如果还没有实例,请创建一个。
- 包含用于托管专用终结点的子网的虚拟网络。 子网可以包含其他 Azure 资源。
- (建议)虚拟网络中相同或不同子网中的虚拟机,用于测试专用终结点。
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
专用终结点的审批方法
通常,网络管理员将创建专用终结点。 根据你的 Azure 基于角色的访问控制 (RBAC) 权限,你创建的专用终结点将自动获得批准以将流量发送到 API Management 实例,或者需要资源所有者手动批准连接。
审批方法 | 最低 RBAC 权限 |
---|---|
自动 | Microsoft.Network/virtualNetworks/** Microsoft.Network/virtualNetworks/subnets/** Microsoft.Network/privateEndpoints/** Microsoft.Network/networkinterfaces/** Microsoft.Network/locations/availablePrivateEndpointTypes/read Microsoft.ApiManagement/service/** Microsoft.ApiManagement/service/privateEndpointConnections/** |
手动 | Microsoft.Network/virtualNetworks/** Microsoft.Network/virtualNetworks/subnets/** Microsoft.Network/privateEndpoints/** Microsoft.Network/networkinterfaces/** Microsoft.Network/locations/availablePrivateEndpointTypes/read |
配置专用终结点的步骤
获取订阅中的可用专用终结点类型
验证 API Management 专用终结点类型在你的订阅和位置中可用。 在门户中,转到“专用链接中心”来查找此信息。 选择“支持的资源”。
还可以通过使用可用的专用终结点类型 - List REST API 来查找此信息。
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{region}/availablePrivateEndpointTypes?api-version=2021-03-01
输出应包括 Microsoft.ApiManagement.service
终结点类型:
[...]
"name": "Microsoft.ApiManagement.service",
"id": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/AvailablePrivateEndpointTypes/Microsoft.ApiManagement.service",
"type": "Microsoft.Network/AvailablePrivateEndpointTypes",
"resourceName": "Microsoft.ApiManagement/service",
"displayName": "Microsoft.ApiManagement/service",
"apiVersion": "2021-04-01-preview"
}
[...]
在子网中禁用网络策略
必须在用于专用终结点的子网中禁用网络安全组等网络策略。
如果使用 Azure PowerShell、Azure CLI 或 REST API 等工具来配置专用终结点,请手动更新子网配置。 相关示例,请参阅管理专用终结点的网络策略。
使用 Azure 门户创建专用终结点时(如下一部分中所示),在创建过程中将自动禁用网络策略。
创建专用终结点 - 门户
可以在 Azure 门户中为 API 管理实例创建专用终结点。
在经典 API 管理层中,可以在创建实例时创建专用终结点。 在现有实例中,在 Azure 门户中使用实例的“网络”边栏选项卡。
在 Azure 门户导航到 API 管理服务。
在左侧菜单中的“部署 + 基础结构”下,选择“网络”。
选择“入站专用终结点连接”>“+ 添加终结点”。
在“创建专用终结点”的“基本信息”选项卡中,输入或选择以下信息:
设置 值 项目详细信息 订阅 选择订阅。 资源组 选择现有的资源组,或创建一个新的组。 它必须与你的虚拟网络位于同一区域。 实例详细信息 名称 输入终结点的名称,例如 myPrivateEndpoint。 网络接口名称 输入网络接口的名称,例如 myInterface 区域 选择专用终结点的位置。 它必须与你的虚拟网络位于同一区域。 它可能与托管你的 API Management 实例的区域不同。 选择屏幕底部的“下一步: 资源”按钮。 以下关于你的 API Management 实例的信息已填充:
- 订阅
- 资源类型
- 资源名称
在“资源”中的“目标子资源”中,选择“网关”。
重要
API 管理仅支持网关子资源。 不支持其他子资源。
选择屏幕底部的“下一步: 虚拟网络”按钮。
在“虚拟网络”中,输入或选择以下信息:
设置 值 虚拟网络 选择你的虚拟网络。 子网 选择子网。 专用 IP 配置 在大多数情况下,可以选择“动态分配 IP 地址”。 应用程序安全组 (可选)选择“应用程序安全组”。 选择屏幕底部的“下一步: DNS”按钮。
在“专用 DNS 集成”中,输入或选择以下信息:
设置 值 与专用 DNS 区域集成 保留默认值“是”。 订阅 选择订阅。 资源组 选择你的资源组。 专用 DNS 区域 显示默认值:(新) privatelink.azure-api.net。 选择屏幕底部的“下一步: 选项卡”按钮。 如果需要,可输入标记以组织 Azure 资源。
选择屏幕底部的“下一步: 查看 + 创建”按钮。 选择创建。
列出到实例的专用终结点连接
创建专用终结点并更新服务后,它将显示在门户中 API 管理实例的“入站专用终结点连接”页上的列表中。
请注意终结点的“连接状态”:
- 已批准指示 API Management 资源已自动批准连接。
- 挂起指示连接必须由资源所有者手动批准。
审批挂起的专用终结点连接
如果专用终结点连接处于挂起状态,则该连接必须由 API Management 实例的所有者手动批准后才能使用。
如果你有足够的权限,请在门户中的 API Management 实例的“专用终结点连接”页上审批专用终结点连接。 在连接的上下文 (...) 菜单中,选择“批准”。
还可以使用 API 管理专用终结点连接 - 创建或更新 REST API 来批准待处理的专用终结点连接。
(可选)禁用公用网络访问
若要选择性地将 API 管理实例的传入流量限制为仅到专用终结点,请禁用公用网络访问属性。
注意
只能在配置了专用终结点的 API 管理实例中禁用公用网络访问,而不能在其他网络配置中禁用。
若要使用 Azure CLI 禁用公用网络访问属性,请运行以下 az apim update 命令,替换 API 管理实例和资源组的名称:
az apim update --name my-apim-service --resource-group my-resource-group --public-network-access false
还可以使用 API 管理服务 - 更新 REST API,通过将 publicNetworkAccess
属性设置为 Disabled
来禁用公用网络访问。
验证专用终结点连接
创建专用终结点后,请在门户中确认它的 DNS 设置:
在 Azure 门户导航到 API 管理服务。
在左侧菜单中的“部署 + 基础结构”下,选择“网络”>“入站专用终结点连接”,然后选择所创建的专用终结点。
在左侧导航的“设置”下,选择“DNS 配置”。
查看专用终结点的 DNS 记录和 IP 地址。 IP 地址是配置了专用终结点的子网的地址空间中的专用地址。
在虚拟网络中测试
连接到在虚拟网络中设置的虚拟机。
运行 nslookup
或 dig
等实用工具来通过专用链接查找默认网关终结点的 IP 地址。 例如:
nslookup my-apim-service.privatelink.azure-api.net
输出应包括与专用终结点关联的专用 IP 地址。
在虚拟网络中发起的到默认网关终结点的 API 调用应该会成功。
通过 Internet 测试
从专用终结点路径外部,尝试调用 API Management 实例的默认网关终结点。 如果禁用公共访问,输出回包含错误,其中包含状态代码 403
和类似于以下内容的消息:
Request originated from client public IP address 192.0.2.12, public network access on this 'Microsoft.ApiManagement/service/my-apim-service' is disabled.
To connect to 'Microsoft.ApiManagement/service/my-apim-service', please use the Private Endpoint from inside your virtual network.
相关内容
- 使用带有
context.request
变量的策略表达式来标识来自专用终结点的流量。 - 详细了解专用终结点和专用链接,包括专用链接定价。
- 管理专用终结点连接。
- 排查 Azure 专用终结点连接问题。
- 使用资源管理器模板创建经典 API 管理实例以及与专用 DNS 集成的专用终结点。
- 使用专用链接将 Azure Front Door Premium 连接到 Azure API 管理(预览版)。