Skip to content

Commit c3844fd

Browse files
committed
acrolinx
1 parent b013428 commit c3844fd

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

articles/machine-learning/how-to-managed-network.md

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.subservice: enterprise-readiness
88
ms.reviewer: None
99
ms.author: larryfr
1010
author: Blackmist
11-
ms.date: 02/27/2025
11+
ms.date: 05/23/2025
1212
ms.topic: how-to
1313
zone_pivot_groups: azureml-portal-cli-python
1414
ms.custom:
@@ -62,7 +62,7 @@ The following diagram shows a managed virtual network configured to __allow only
6262
:::image type="content" source="./media/how-to-managed-network/only-approved-outbound.svg" alt-text="Diagram of managed virtual network isolation configured for allow only approved outbound." lightbox="./media/how-to-managed-network/only-approved-outbound.svg":::
6363

6464
> [!NOTE]
65-
> Once a managed VNet workspace is configured to __allow internet outbound__, the workspace can't be reconfigured to __disabled__. Similarly, once a managed VNet workspace is configured to __allow only approved outbound__, the workspace can't be reconfigured to __allow internet outbound__. Keep this in mind when selecting the isolation mode for managed VNet in your workspace.
65+
> Once a managed VNet workspace is configured to __allow internet outbound__, the workspace can't be reconfigured to __disabled__. Similarly, once a managed VNet workspace is configured to __allow only approved outbound__, the workspace can't be reconfigured to __allow internet outbound__.
6666
6767

6868
### Azure Machine Learning studio
@@ -161,6 +161,7 @@ Before following the steps in this article, make sure you have the following pre
161161
```
162162
163163
::: zone-end
164+
164165
::: zone pivot="azure-portal"
165166
166167
* An Azure subscription. If you don't have an Azure subscription, create a free account before you begin. Try the [free or paid version of Azure Machine Learning](https://azure.microsoft.com/free/).
@@ -190,7 +191,7 @@ Microsoft recommends assigning the _Azure AI Enterprise Network Connection Appro
190191
* Azure Machine Learning registry
191192
* Azure AI Foundry
192193
* Azure Key Vault
193-
* Azure CosmosDB
194+
* Azure Cosmos DB
194195
* Azure Database for MySQL
195196
* Azure Database for PostgreSQL
196197
* Azure AI Services
@@ -200,9 +201,9 @@ Microsoft recommends assigning the _Azure AI Enterprise Network Connection Appro
200201
201202
If you would like to create a custom role instead, see [Azure AI Enterprise Network Connection Approver role](/azure/role-based-access-control/built-in-roles/ai-machine-learning#azure-ai-enterprise-network-connection-approver) to add the specific actions for each resource type.
202203
203-
For creating private endpoint outbound rules to target resource types not covered by the _Azure AI Enterprise Network Connection Approver_ role, such as Azure Data Factory, Azure Databricks, and Azure Function Apps, a custom scoped-down role is recommended, defined only by the actions necessary to approve private endpoint connections on the target resource types.
204+
To create private endpoint outbound rules to target resource types not covered by the _Azure AI Enterprise Network Connection Approver_ role, a custom scoped-down role is recommended. The role should be defined with the actions necessary to approve private endpoint connections on the target resource types. , Examples of such resource types are Azure Data Factory, Azure Databricks, and Azure Function Apps.
204205
205-
For creating Private Endpoint outbound rules to default workspace resources, the required permissions are automatically covered by the role assignments granted during workspace creation, so no additional action is needed.
206+
To create Private Endpoint outbound rules to default workspace resources, the required permissions are automatically covered by the role assignments granted during workspace creation, so no other action is needed.
206207
207208
## Configure a managed virtual network to allow internet outbound
208209
@@ -294,6 +295,7 @@ managed_network:
294295
---
295296

296297
::: zone-end
298+
297299
::: zone pivot="python-sdk"
298300

299301
To configure a managed virtual network that allows internet outbound communications, use the `ManagedNetwork` class to define a network with `IsolationMode.ALLOW_INTERNET_OUTBOUND`. You can then use the `ManagedNetwork` object to create a new workspace or update an existing one. To define _outbound rules_ to Azure services that the workspace relies on, use the `PrivateEndpointDestination` class to define a new private endpoint to the service.
@@ -364,6 +366,7 @@ ml_client.workspaces.begin_update(ws)
364366
---
365367

366368
::: zone-end
369+
367370
::: zone pivot="azure-portal"
368371

369372
# [Create a new workspace](#tab/new-workspace)
@@ -526,6 +529,7 @@ managed_network:
526529
---
527530

528531
::: zone-end
532+
529533
::: zone pivot="python-sdk"
530534

531535
To configure a managed virtual network that allows only approved outbound communications, use the `ManagedNetwork` class to define a network with `IsolationMode.ALLOw_ONLY_APPROVED_OUTBOUND`. You can then use the `ManagedNetwork` object to create a new workspace or update an existing one. To define _outbound rules_, use the following classes:
@@ -931,6 +935,7 @@ print(ws.managed_network.status)
931935
```
932936

933937
::: zone-end
938+
934939
::: zone pivot="azure-portal"
935940

936941
During workspace creation, select __Provision managed network proactively at creation__ to provision the managed network. Charges are incurred from network resources, such as private endpoints, once the virtual network is provisioned. This configuration option is only available during workspace creation.
@@ -953,6 +958,7 @@ az ml workspace update --name ws --resource-group rg --image-build-compute mycom
953958
```
954959

955960
::: zone-end
961+
956962
::: zone pivot="python-sdk"
957963

958964
The following example demonstrates how to update a workspace to use a compute cluster to build images:
@@ -981,6 +987,7 @@ ml_client.workspaces.begin_update(ws)
981987
```
982988

983989
::: zone-end
990+
984991
::: zone pivot="azure-portal"
985992

986993
There isn't a way to set the image build compute from the Azure portal. Instead, use the [Azure CLI](how-to-managed-network.md?pivots=cli#configure-image-builds) or [Python SDK](how-to-managed-network.md?pivots=python-sdk#configure-image-builds).
@@ -1010,6 +1017,7 @@ az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --reso
10101017
```
10111018

10121019
::: zone-end
1020+
10131021
::: zone pivot="python-sdk"
10141022

10151023
The following example demonstrates how to manage outbound rules for a workspace named `myworkspace`:
@@ -1032,6 +1040,7 @@ ml_client._workspace_outbound_rules.begin_remove(resource_group, ws_name, rule_n
10321040
```
10331041

10341042
::: zone-end
1043+
10351044
::: zone pivot="azure-portal"
10361045

10371046
1. Sign in to the [Azure portal](https://portal.azure.com), and select the Azure Machine Learning workspace that you want to enable managed virtual network isolation for.
@@ -1065,7 +1074,7 @@ For Azure Machine Learning to run normally, there are a set of required service
10651074
| `AzureResourceManager` | Outbound | Creation of Azure resources with Azure Machine Learning, Azure CLI, and Azure Machine Learning SDK. |
10661075
| `AzureFrontDoor.FirstParty` | Outbound | Access docker images provided by Microsoft. |
10671076
| `MicrosoftContainerRegistry` | Outbound | Access docker images provided by Microsoft. Setup of the Azure Machine Learning router for Azure Kubernetes Service. |
1068-
| `AzureMonitor` | Outbound | Used to log monitoring and metrics to Azure Monitor. Only needed if you haven't secured Azure Monitor for the workspace. This outbound is also used to log information for support incidents. |
1077+
| `AzureMonitor` | Outbound | Used to log monitoring and metrics to Azure Monitor. Only needed if the Azure Monitor for the workspace isn't secured. This outbound is also used to log information for support incidents. |
10691078
| `VirtualNetwork` | Outbound | Required when private endpoints are present in the virtual network or peered virtual networks. |
10701079

10711080
> [!NOTE]
@@ -1087,7 +1096,7 @@ To allow installation of __Python packages for training and deployment__, add ou
10871096
If you plan to use __Visual Studio Code__ with Azure Machine Learning, add outbound _FQDN_ rules to allow traffic to the following hosts:
10881097

10891098
> [!NOTE]
1090-
> This isn't a complete list of the hosts required for all Visual Studio Code resources on the internet, only the most commonly used. For example, if you need access to a GitHub repository or other host, you must identify and add the required hosts for that scenario. For a complete list of host names, see [Network Connections in Visual Studio Code](https://code.visualstudio.com/docs/setup/network).
1099+
> The following list isn't a complete list of the hosts required for all Visual Studio Code resources on the internet, only the most commonly used. For example, if you need access to a GitHub repository or other host, you must identify and add the required hosts for that scenario. For a complete list of host names, see [Network Connections in Visual Studio Code](https://code.visualstudio.com/docs/setup/network).
10911100

10921101
| __Host name__ | __Purpose__ |
10931102
| ---- | ---- |
@@ -1167,13 +1176,15 @@ When you create a private endpoint, you provide the _resource type_ and _subreso
11671176

11681177
When you create a private endpoint for Azure Machine Learning dependency resources, such as Azure Storage, Azure Container Registry, and Azure Key Vault, the resource can be in a different Azure subscription. However, the resource must be in the same tenant as the Azure Machine Learning workspace.
11691178

1170-
When configuring private endpoints for the workspace, they are only created when the first _compute is created_ or when managed virtual network provisioning is forced. For more information on forcing the managed virtual network provisioning, see [Manually provision the network](#manually-provision-a-managed-vnet).
1179+
Private endpoints for the workspace aren't creeated automatically. They're only created when the first _compute is created_ or when managed virtual network provisioning is forced. For more information on forcing the managed virtual network provisioning, see [Manually provision the network](#manually-provision-a-managed-vnet).
11711180

11721181
### Approval of private endpoints
11731182

1174-
To establish Private Endpoint connections in managed virtual networks using Azure Machine Learning, the workspace managed identity, whether system-assigned or user-assigned, must have permissions to approve the Private Endpoint connections on the target resources. Previously, this was done through automatic role assignments by the Azure Machine Learning service. However, there are security concerns about the automatic role assignment. To improve security, starting April 30th, 2025, we will discontinue this automatic permission grant logic. We recommend assigning the Azure AI Enterprise Network Connection Approver role or a custom role with the necessary Private Endpoint connection permissions on the target resource types and grant this role to the Azure Machine Learning workspace's managed identity to allow Azure Machine Learning services to approve Private Endpoint connections to the target Azure resources.
1183+
To establish Private Endpoint connections in managed virtual networks using Azure Machine Learning, the workspace managed identity, whether system-assigned or user-assigned, must have permissions to approve the Private Endpoint connections on the target resources. Previously, this assignment was done through automatic role assignments by the Azure Machine Learning service. However, there are security concerns about the automatic role assignment. To improve security, starting April 30th, 2025, this role assignment isn't automatic.
1184+
1185+
We recommend assigning the Azure AI Enterprise Network Connection Approver role, or a custom role with the necessary Private Endpoint connection permissions, on the target resource types. To allow Azure Machine Learning services to approve Private Endpoint connections to the target Azure resources, grant this role to the Azure Machine Learning workspace's managed identity.
11751186

1176-
Here's the list of private endpoint target resource types covered by covered by the Azure AI Enterprise Network Connection Approver role:
1187+
Here's the list of private endpoint target resource types covered by the Azure AI Enterprise Network Connection Approver role:
11771188
* Azure Application Gateway
11781189
* Azure Monitor
11791190
* Azure AI Search
@@ -1184,25 +1195,25 @@ Here's the list of private endpoint target resource types covered by covered by
11841195
* Azure Machine Learning registry
11851196
* Azure AI Foundry
11861197
* Azure Key Vault
1187-
* Azure CosmosDB
1198+
* Azure Cosmos DB
11881199
* Azure Database for MySQL
11891200
* Azure Database for PostgreSQL
11901201
* Azure AI Services
11911202
* Azure Cache for Redis
11921203
* Container Registry
11931204
* API Management
11941205

1195-
For creating Private Endpoint outbound rules to target resource types not covered by the Azure AI Enterprise Network Connection Approver role, such as Azure Data Factory, Azure Databricks, and Azure Function Apps, a custom scoped-down role is recommended, defined only by the actions necessary to approve private endpoint connections on the target resource types.
1206+
To create Private Endpoint outbound rules to target resource types not covered by the Azure AI Enterprise Network Connection Approver role, a custom scoped-down role is recommended. The rule should define the actions necessary to approve private endpoint connections on the target resource types. Examples of such resource types are Azure Data Factory, Azure Databricks, and Azure Function Apps.
11961207

1197-
For creating Private Endpoint outbound rules to default workspace resources, the required permissions are automatically covered by the role assignments granted during workspace creation, so no additional action is needed.
1208+
To create Private Endpoint outbound rules to default workspace resources, the required permissions are automatically covered by the role assignments granted during workspace creation, so no other action is needed.
11981209

11991210
## Select an Azure Firewall version for allowed only approved outbound
12001211

12011212
An Azure Firewall is deployed if an FQDN outbound rule is created while in the _allow only approved outbound_ mode. Charges for the Azure Firewall are included in your billing. By default, a __Standard__ version of AzureFirewall is created. Optionally, you can select to use a __Basic__ version. You can change the firewall version used as needed. To figure out which version is best for you, visit [Choose the right Azure Firewall version](/azure/firewall/choose-firewall-sku).
12021213

12031214
> [!IMPORTANT]
12041215
> The firewall isn't created until you add an outbound FQDN rule. For more information on pricing, see [Azure Firewall pricing](https://azure.microsoft.com/pricing/details/azure-firewall/) and view prices for the _standard_ version.
1205-
> URL-based filtering is only supported with Premium SKU Azure Firewall, not Basic or Standard SKU Azure Firewall. Managed virtual network does not support Premium SKU Azure Firewall.
1216+
> URL-based filtering is only supported with Premium SKU Azure Firewall, not Basic or Standard SKU Azure Firewall. Managed virtual network doesn't support Premium SKU Azure Firewall.
12061217

12071218
::: zone pivot="azure-portal"
12081219

@@ -1229,6 +1240,7 @@ tags: {}
12291240
```
12301241

12311242
::: zone-end
1243+
12321244
::: zone pivot="python-sdk"
12331245

12341246
To configure the firewall version from the Python SDK, set the `firewall_sku` property of the `ManagedNetwork` object. The following example demonstrates how to set the firewall SKU to `basic`:

0 commit comments

Comments
 (0)