若要从 Azure 机器学习工作区的托管虚拟网络访问位于不同虚拟网络中或完全位于本地的非 Azure 资源,必须配置应用程序网关。 通过此应用程序网关,可以配置对资源的完整端到端访问。
Azure 应用程序网关是一个负载均衡器,根据 HTTPS 请求的 URL 做出路由决策。 Azure 机器学习支持使用应用程序网关与非 Azure 资源进行安全通信。 有关应用程序网关的更多信息,请参阅什么是 Azure 应用程序网关。
若要从托管虚拟网络访问本地或自定义虚拟网络资源,请在 Azure 虚拟网络上配置应用程序网关。 应用程序网关用于对工作区的入站访问。 配置完成后,可以创建从工作区的托管虚拟网络到应用程序网关的专用终结点。 使用专用终结点时,整个端到端路径都是安全的,不会通过互联网路由。
先决条件
- 阅读应用程序网关的工作原理一文,了解应用程序网关如何保护与非 Azure 资源的连接。
- 设置 Azure 机器学习工作区的托管虚拟网络并选择隔离模式,允许互联网出站或仅允许批准的出站。 有关详细信息,请参阅托管虚拟网络隔离。
- 获取要访问的资源的专用 HTTP(S) 终结点。
支持的资源
应用程序网关支持使用 HTTP 或 HTTPS 协议的任何后端目标资源。 已验证从托管虚拟网络到以下资源的连接:
- Jfrog Artifactory
- Snowflake 数据库
- 私有 API
配置 Azure 应用程序网关
按照快速入门:使用门户定向 Web 流量中的说明操作。 若要正确设置应用程序网关以用于 Azure 机器学习,请在创建应用程序网关时使用以下指南:
在“基本信息”选项卡上:
- 确保应用程序网关与所选 Azure 虚拟网络位于同一区域。
- Azure 机器学习仅支持应用程序网关的 IPv4。
- 使用 Azure 虚拟网络,为应用程序网关选择一个专用子网。 不能在此子网中部署任何其他资源。
在“前端”选项卡中,应用程序网关不支持仅使用专用前端 IP 地址,因此需要选择公共 IP 地址或创建新 IP 地址。 可在“基本信息”选项卡上的选定子网范围内添加网关所连接资源的专用 IP 地址。
在“后端”选项卡中,可以将后端目标添加到后端池。 可以通过创建不同的后端池来管理后端目标。 请求路由基于池。 可以添加后端目标,例如 Snowflake 数据库。
在“配置”选项卡中,可以配置如何使用前端 IP 接收请求并将其路由到后端。
在“侦听器”部分中:
- 可以使用 HTTP 或 HTTPS 协议创建侦听器并指定想要侦听的端口。 如果希望两个侦听器侦听相同的前端 IP 地址并路由到不同的后端池,则需要选择不同的端口。 传入请求将根据端口进行区分。
- 如果想要进行端到端 TLS 加密,请选择 HTTPS 侦听器并上传你自己的证书,以便应用程序网关解密侦听器收到的请求。 有关详细信息,请参阅在 Azure 应用程序网关上启用端到端 TLS。
- 如果你想要一个没有任何公共网络访问权限的完全专用的后端目标,请不要在公共前端 IP 地址及其关联的路由规则上设置侦听器。 应用程序网关仅转发侦听器在特定端口收到的请求。 若要避免错误地添加公共前端 IP 侦听器,请参阅网络安全规则以完全锁定公共网络访问。
在“后端目标”部分,如果你想使用 HTTPS,并且后端服务器的证书不是由知名 CA 颁发的,则必须上传后端服务器的根证书 (.CER)。 有关使用根证书进行配置的更多信息,请参阅使用门户配置端到端 TLS 加密。
创建应用程序网关资源后,导航到 Azure 门户中的新应用程序网关资源。 在“设置”下,选择“专用链接”,使虚拟网络能够通过专用终结点连接私下访问应用程序网关。 默认情况下,不会创建专用链接配置。
- 选择“+ 添加”以添加专用链接配置,然后使用以下值创建配置:
- 名称:为专用链接配置提供名称
- 专用链接子网:选择虚拟网络中的子网。
- 前端 IP 配置:
appGwPrivateFrontendIpIPv4
- 如要验证专用链接是否正确设置,请导航到“专用终结点连接”选项卡,然后选择“+ 专用终结点”。 在“资源”选项卡上,“目标子资源”应为专用前端 IP 配置的名称,即
appGwPrivateFrontendIpIPv4
。 如果目标子资源中未显示任何值,则表示应用程序网关侦听器配置不正确。
- 选择“+ 添加”以添加专用链接配置,然后使用以下值创建配置:
配置专用链接
现在你已创建应用程序网关的前端 IP 和后端池,接下来可以将专用终结点从托管虚拟网络配置到应用程序网关。 在 Azure 门户中,导航到工作区的“网络”选项卡。选择“工作区托管的出站访问”,“+ 添加”用户定义的出站规则。
在“工作区出站规则”窗体中,选择以下内容来创建专用终结点:
- 规则名称:为应用程序网关的专用终结点提供名称。
- 目标类型:专用终结点
- 订阅和资源组:选择部署应用程序网关的订阅和资源组
- 资源类型:
Microsoft.Network/applicationGateways
- 资源名称:应用程序网关资源的名称
- 子资源:
appGwPrivateFrontendIpIPv4
。 - FQDN:这些 FQDN 是想要在 Azure 机器学习工作区中使用的别名。 它们解析为托管专用终结点的专用 IP 地址,以应用程序网关为目标。 可能包含了多个 FQDN,具体取决于你想要使用应用程序网关连接到多少个资源。
注意
- 如果使用已上传证书的 HTTPS 侦听器,请确保 FQDN 别名与证书的 CN(公用名称)或 SAN(使用者可选名称)匹配,否则 HTTPS 调用将因 SNI(服务器名称指示)而失败。
- 提供的 FQDN 名称中必须至少有三个标签,才能正确创建应用程序网关的专用终结点的专用 DNS 区域。
- 通过 SDK 或 CLI 创建专用终结点后,FQDN 字段可编辑。 该字段在 Azure 门户中不可编辑。
- 专用前端 IP 配置不支持 Dyname 子资源命名。 前端 IP 名称必须是
appGwPrivateFrontendIpIPv4
。
使用 Python SDK 和 Azure CLI 进行配置
若要使用 SDK 创建应用程序网关的专用终结点,请参阅 Azure SDK for Python。
若要使用 Azure CLI 创建应用程序网关的专用终结点,请使用 az ml workspace outbound-rule set
命令。 根据需要为配置设置属性。 有关详细信息,请参阅配置托管网络。
限制
- 应用程序网关仅支持后端池中的 HTTP(s) 终结点。 不支持非 HTTP(s) 网络流量。 确保资源支持 HTTP(S) 协议。
- 若要使用应用程序网关连接到 Snowflake,则应添加你自己的 FQDN 出站规则以启用包/驱动程序下载和 OCSP 验证。
- Snowflake JDBC 驱动程序使用 HTTPS 调用,但不同驱动程序的实施方式可能各不相同。 检查资源是否使用 HTTP(S) 协议。
- 有关限制的更多信息,请参阅有关应用程序网关的常见问题解答。
应用程序网关错误
对于与应用程序网关连接到后端资源相关的错误,请根据收到的错误,按照现有应用程序网关文档中的说明操作: