Skip to content

Commit aaa0ee7

Browse files
authored
Merge pull request #769 from Blackmist/323401-app-gateway
writing
2 parents 605f93f + b6ca5f7 commit aaa0ee7

File tree

6 files changed

+229
-0
lines changed

6 files changed

+229
-0
lines changed
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: How to access on-premises resources
3+
titleSuffix: Azure AI Studio
4+
description: Learn how to configure an Azure AI Studio managed network to securely allow access to your on-premises resources.
5+
manager: scottpolly
6+
ms.service: azure-ai-studio
7+
ms.topic: how-to
8+
ms.date: 10/24/2024
9+
ms.reviewer: meerakurup
10+
ms.author: larryfr
11+
author: Blackmist
12+
# Customer intent: As an admin, I want to allow my developers to securely access on-premises resources from Azure AI Studio.
13+
---
14+
15+
# Access on-premises resources from your Azure AI Studio's managed network (preview)
16+
17+
To access your non-Azure resources located in a different virtual network or located entirely on-premises from your Azure AI Studio's managed virtual network, an Application Gateway must be configured. Through this Application Gateway, full end to end access can be configured to your resources.
18+
19+
Azure Application Gateway is a load balancer that makes routing decisions based on the URL of an HTTPS request. Azure Machine Learning supports using an application gateway to securely communicate with non-Azure resources. For more on Application Gateway, see [What is Azure Application Gateway](/azure/application-gateway/overview).
20+
21+
To access on-premises or custom virtual network resources from the managed virtual network, you configure an Application Gateway on your Azure virtual network. The application gateway is used for inbound access to the AI Studio's hub. Once configured, you then create a private endpoint from the Azure AI Studio hub's managed virtual network to the Application Gateway. With the private endpoint, the full end to end path is secured and not routed through the Internet.
22+
23+
:::image type="content" source="../media/how-to/network/ai-studio-app-gateway.png" alt-text="Diagram of a managed network using Application Gateway to communicate with on-premises resources." lightbox="../media/how-to/network/ai-studio-app-gateway.png":::
24+
25+
## Prerequisites
26+
27+
- Read the [How an application gateway works](/azure/application-gateway/how-application-gateway-works) article to understand how the Application Gateway can secure the connection to your non-Azure resources.
28+
- Set up your Azure AI Studio hub's managed virtual network and select your isolation mode, either Allow Internet Outbound or Allow Only Approved Outbound. For more information, see [Managed virtual network isolation](configure-managed-network.md).
29+
- Get the private HTTP(S) endpoint of the resource to access.
30+
31+
## Supported resources
32+
33+
Application Gateway supports any backend target resource that uses HTTP or HTTPS protocol. Connections to the following resources from the managed virtual network are verified:
34+
- Jfrog Artifactory
35+
- Snowflake Database
36+
- Private APIs
37+
38+
## Configure Azure Application Gateway
39+
40+
Follow the [Quickstart: Direct web traffic using the portal](/azure/application-gateway/quick-create-portal). To correctly set up your Application Gateway for use with Azure Machine Learning, use the following guidance when creating the Application Gateway:
41+
42+
1. From the __Basics__ tab:
43+
44+
- Ensure your Application Gateway is in the same region as the selected Azure Virtual Network.
45+
- Azure AI Studio only supports IPv4 for Application Gateway.
46+
- With your Azure Virtual Network, select one dedicated subnet for your Application Gateway. No other resources can be deployed in this subnet.
47+
48+
1. From the __Frontends__ tab, Application Gateway doesn’t support private Frontend IP address only so Public IP addresses need to be selected or a new one created. Private IP addresses for the resources that the gateway connects to can be added within the range of the subnet you selected on the Basics tab.
49+
50+
1. From the __Backends__ tab, you can add your backend target to a backend pool. You can manage your backend targets by creating different backend pools. Request routing is based on the pools. You can add backend targets such as a Snowflake database.
51+
52+
1. From the __Configuration__ tab, you configure how requests are received with the frontend IPs and routed to the backend.
53+
54+
- In the __Listener__ section:
55+
- You can create a listener with either HTTP or HTTPS protocol and specify the port you want it to listen to. If you want two listeners listening on the same front-end IP address and routing to different backend pools, you need to choose different ports. Incoming requests are differentiated based on ports.
56+
- If you want end-to-end TLS encryption, select HTTPS listener and upload your own certificate for Application Gateway to decrypt request received by listener. For more information, see [Enabling end to end TLS on Azure Application Gateway](/azure/application-gateway/ssl-overview#end-to-end-tls-encryption).
57+
- If you want a fully private backend target without any public network access, DO NOT setup a listener on the public frontend IP address and its associated routing rule. Application Gateway only forwards requests that listeners receive at the specific port. If you want to avoid adding public frontend IP listener by mistake, see [Network security rules](/azure/application-gateway/configuration-infrastructure#network-security-groups) to fully lock down public network access.
58+
59+
- In the __Backend targets__ section, if you want to use HTTPS and Backend server’s certificate is NOT issued by a well-known CA, you must upload the Root certificate (.CER) of the backend server. For more on configuring with a root certificate, see [Configure end-to-end TLS encryption using the portal](/azure/application-gateway/end-to-end-ssl-portal).
60+
61+
1. Once the Application Gateway resource is created, navigate to the new Application Gateway resource in the Azure portal. Under __Settings__, select, __Private link__ to enable a virtual network to privately access the Application Gateway through a private endpoint connection. The Private link configuration isn't created by default.
62+
63+
- Select __+ Add__ to add the Private Link configuration, and then use the following values to create the configuration:
64+
- Name: Provide a name for your private link configuration
65+
- Private link subnet: Select a subnet in your virtual network.
66+
- Frontend IP Configuration: `appGwPrivateFrontendIpIPv4`
67+
- To verify the Private link is set up correctly, navigate to the __Private endpoint connections__ tab and select __+ Private endpoint__. On the __Resource__ tab, the __Target sub-resource__ should be the name of your private Frontend IP configuration, `appGwPrivateFrontendIpIPv4`. If no value appears in the __Target sub-resource__, then the Application Gateway listener wasn't configured correctly.
68+
69+
## Configure private link
70+
71+
1. Now that your Application Gateway’s front-end IP and backend pools are created, you can now configure the private endpoint from the managed virtual network to your Application Gateway. in the [Azure portal](https://portal.azure.com), navigate to your Azure AI Studio hub's __Networking__ tab. Select __Workspace managed outbound access__, __+ Add user-defined outbound rules__.
72+
1. In the __Workspace Outbound rules__ form, select the following to create your private endpoint:
73+
74+
- Rule name: Provide a name for your private endpoint to Application Gateway.
75+
- Destination Type: Private Endpoint
76+
- Subscription and Resource Group: Select the Subscription and Resource Group where your Application Gateway is deployed
77+
- Resource Type: `Microsoft.Network/applicationGateways`
78+
- Resource name: The name of your Application Gateway resource.
79+
- Sub resource: `appGwPrivateFrontendIpIPv4`
80+
- FQDNs: These FQDNs are the aliases that you want to use inside the Azure AI Studio. They're resolved to the managed private endpoint’s private IP address targeting Application Gateway. You might include multiple FQDNs depending on how many resources you would like to connect to with the Application Gateway.
81+
82+
> [!NOTE]
83+
> - If you are using HTTPS listener with certificate uploaded, make sure the FQDN alias matches with the certificate's CN (Common Name) or SAN (Subject Alternative Name) otherwise HTTPS call will fail with SNI (Server Name Indication).
84+
> - The provided FQDNs must have at least three labels in the name to properly create the private DNS zone of thee private endpoint for Application Gateway.
85+
> - The FQDNs field is editable after the private endpoint creation through SDK or CLI. The field is not editable in the Azure portal.
86+
> - Dyname sub-resource naming is not supported for the private Frontend IP configuration. The Frontend IP name must be `appGwPrivateFrontendIpIPv4`.
87+
88+
### Configure using Python SDK and Azure CLI
89+
90+
To create a private endpoint to Application Gateway with SDK, see [Azure SDK for Python](/python/api/azure-ai-ml/azure.ai.ml.entities.privateendpointdestination).
91+
92+
To create a private endpoint to Application Gateway with the Azure CLI, use the `az ml workspace outbound-rule set` command. Set properties as needed for your configuration. For more information, see [Configure a managed network](configure-managed-network.md?tabs=azure-cli).
93+
94+
## Limitations
95+
96+
- Application Gateway supports only HTTP(s) endpoints in the Backend pool. There's no support for non-HTTP(s) network traffic. Ensure your resources support HTTP(S) protocol.
97+
- To connect to Snowflake using the Application Gateway, you should add your own FQDN outbound rules to enable package/driver download and OCSP validation.
98+
- The Snowflake JDBC driver uses HTTPS calls, but different drivers might have different implementations. Check if your resource uses HTTP(S) protocol or not.
99+
- For more information on limitations, see [Frequently asked questions about Application Gateway](/azure/application-gateway/application-gateway-faq).
100+
101+
## Application Gateway Errors
102+
103+
For errors related to the Application Gateway connection to your backend resources, follow the existing Application Gateway documentation based on the errors you receive:
104+
105+
- [Troubleshoot backend health issues in Application Gateway](/azure/application-gateway/application-gateway-backend-health-troubleshooting)
106+
- [Troubleshooting bad gateway errors in Application Gateway](/azure/application-gateway/application-gateway-troubleshooting-502)
107+
- [HTTP response codes in Application Gateway](/azure/application-gateway/http-response-codes)
108+
- [Understanding disabled listeners](/azure/application-gateway/disabled-listeners)
109+
110+
## Related content
111+
112+
- [Managed virtual network isolation](configure-managed-network.md)
181 KB
Loading

articles/ai-studio/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,8 @@ items:
331331
href: how-to/configure-private-link.md
332332
- name: Secure playground chat
333333
href: how-to/secure-data-playground.md
334+
- name: Securely access on-premises resources
335+
href: how-to/access-on-premises-resources.md
334336
- name: Troubleshoot secure project connectivity
335337
href: how-to/troubleshoot-secure-connection-project.md
336338
- name: Data protection & encryption

0 commit comments

Comments
 (0)