Skip to content

Commit 92bd31d

Browse files
Merge pull request #196190 from Blackmist/dpv2-network-isolation
dpv2 network isolation
2 parents 3c0fe4e + f3a8a10 commit 92bd31d

File tree

5 files changed

+115
-4
lines changed

5 files changed

+115
-4
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
title: Network isolation change with our new API platform on Azure Resource Manager
3+
titleSuffix: Azure Machine Learning
4+
description: 'Explain network isolation changes with our new API platform on Azure Resource Manager and how to maintain network isolation'
5+
services: machine-learning
6+
ms.service: machine-learning
7+
ms.subservice: enterprise-readiness
8+
ms.topic: how-to
9+
ms.author: jhirono
10+
author: jhirono
11+
ms.reviewer: larryfr
12+
ms.date: 05/13/2022
13+
---
14+
15+
# Network Isolation Change with Our New API Platform on Azure Resource Manager
16+
17+
In this article, you'll learn about network isolation changes with our new v2 API platform on Azure Resource Manager (ARM) and its effect on network isolation.
18+
19+
## What is the new API platform on Azure Resource Manager (ARM)
20+
21+
There are two types of operations used by the v1 and v2 APIs, __Azure Resource Manager (ARM)__ and __Azure Machine Learning workspace__.
22+
23+
With the v1 API, most operations used the workspace. For v2, we've moved most operations to use public ARM.
24+
25+
| API version | Public ARM | Workspace |
26+
| ----- | ----- | ----- |
27+
| v1 | Workspace and compute create, update, and delete (CRUD) operations. | Other operations such as experiments. |
28+
| v2 | Most operations such as workspace, compute, datastore, dataset, job, environment, code, component, endpoints. | Remaining operations. |
29+
30+
31+
The v2 API provides a consistent API in one place. You can more easily use Azure role-based access control and Azure Policy for resources with the v2 API because it's based on Azure Resource Manager.
32+
33+
The Azure Machine Learning CLI v2 uses our new v2 API platform. New features such as [managed online endpoints](concept-endpoints.md) are only available using the v2 API platform.
34+
35+
## What are the network isolation changes with V2
36+
37+
As mentioned in the previous section, there are two types of operations; with ARM and with the workspace. With the __legacy v1 API__, most operations used the workspace. With the v1 API, adding a private endpoint to the workspace provided network isolation for everything except CRUD operations on the workspace or compute resources.
38+
39+
With the __new v2 API__, most operations use ARM. So enabling a private endpoint on your workspace doesn't provide the same level of network isolation. Operations that use ARM communicate over public networks, and include any metadata (such as your resource IDs) or parameters used by the operation. For example, the [create or update job](/rest/api/azureml/jobs/create-or-update) api sends metadata, and [parameters](/azure/machine-learning/reference-yaml-job-command).
40+
41+
> [!TIP]
42+
> * Public ARM operations do not surface data in your storage account on public networks.
43+
> * Your communication with public ARM is encrypted using TLS 1.2.
44+
45+
If you need time to evaluate the new v2 API before adopting it in your enterprise solutions, or have a company policy that prohibits sending communication over public networks, we'll provide a *v1_legacy_mode* parameter. When enabled, this parameter disables the v2 API for your workspace.
46+
47+
> [!IMPORTANT]
48+
> Enabling v1_legacy_mode may prevent you from using features provided by the v2 API. For example, some features of Azure Machine Learning studio may be unavailable.
49+
50+
## Scenarios and Required Actions
51+
52+
>[!WARNING]
53+
>The *v1_legacy_mode* parameter is not implemented yet. It will be implemented the week of May 15th, 2022.
54+
55+
* If you don't plan on using a private endpoint with your workspace, you don't need to enable parameter.
56+
57+
* If you're OK with operations communicating with public ARM, you don't need to enable the parameter.
58+
59+
* You only need to enable the parameter if you're using a private endpoint with the workspace _and_ don't want to allow operations with ARM over public networks.
60+
61+
Once we implement the parameter, it will be retroactively applied to existing workspaces using the following logic:
62+
63+
* If you have __an existing workspace with a private endpoint__, the flag will be __true__.
64+
65+
* If you have __an existing workspace without a private endpoint__ (public workspace), the flag will be __false__.
66+
67+
After the parameter has been implemented, the default value of the flag depends on the underlying REST API version used when you create a workspace (with a private endpoint):
68+
69+
* If the API version is __older__ than `2022-05-01`, then the flag is __true__ by default.
70+
* If the API version is `2022-05-01` or __newer__, then the flag is __false__ by default.
71+
72+
> [!IMPORTANT]
73+
> If you want to use the v2 API with your workspace, you must set the v1_legacy_mode parameter to false.
74+
75+
## How to update v1_legacy_mode parameter
76+
77+
>[!WARNING]
78+
>This parameter is not implemented yet. It will be implemented the week of May 15th, 2022.
79+
80+
To update v1_legacy_mode, use the following steps:
81+
82+
# [Python](#tab/python)
83+
84+
To disable v1_legacy_mode, use [Workspace.update](/python/api/azureml-core/azureml.core.workspace(class)#update-friendly-name-none--description-none--tags-none--image-build-compute-none--service-managed-resources-settings-none--primary-user-assigned-identity-none--allow-public-access-when-behind-vnet-none-) and set `v1_legacy_mode=false`.
85+
86+
```python
87+
from azureml.core import Workspace
88+
89+
ws = Workspace.from_config()
90+
ws.update(v1_legacy_mode=false)
91+
```
92+
93+
# [Azure CLI extension v1](#tab/azurecliextensionv1)
94+
95+
The Azure CLI [extension v1 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace update](/cli/azure/ml/workspace#az-ml-workspace-update) command. To enable the parameter for a workspace, add the parameter `--set v1-legacy-mode=true`.
96+
97+
---
98+
99+
## Next steps
100+
101+
* [Use a private endpoint with Azure Machine Learning workspace](how-to-configure-private-link.md).
102+
* [Create private link for managing Azure resources](/azure/azure-resource-manager/management/create-private-link-access-portal).

articles/machine-learning/how-to-configure-private-link.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Azure Private Link enables you to connect to your workspace using a private endp
2929
> * [Secure training environments](how-to-secure-training-vnet.md).
3030
> * [Secure inference environments](how-to-secure-inferencing-vnet.md).
3131
> * [Use Azure Machine Learning studio in a VNet](how-to-enable-studio-virtual-network.md).
32+
> * [API platform network isolation](how-to-configure-network-isolation-with-v2.md)
3233
3334
## Prerequisites
3435

@@ -77,7 +78,7 @@ ws = Workspace.create(name='myworkspace',
7778

7879
# [Azure CLI extension 2.0 preview](#tab/azurecliextensionv2)
7980

80-
When using the Azure CLI [extension 2.0 CLI preview for machine learning](how-to-configure-cli.md), a YAML document is used to configure the workspace. The following is an of creating a new workspace using a YAML configuration:
81+
When using the Azure CLI [extension 2.0 CLI preview for machine learning](how-to-configure-cli.md), a YAML document is used to configure the workspace. The following is an example of creating a new workspace using a YAML configuration:
8182

8283
> [!TIP]
8384
> When using private link, your workspace cannot use Azure Container Registry tasks compute for image building. The `image_build_compute` property in this configuration specifies a CPU compute cluster name to use for Docker image environment building. You can also specify whether the private link workspace should be accessible over the internet using the `public_network_access` property.
@@ -322,7 +323,7 @@ The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learn
322323
In some situations, you may want to allow someone to connect to your secured workspace over a public endpoint, instead of through the VNet. Or you may want to remove the workspace from the VNet and re-enable public access.
323324

324325
> [!IMPORTANT]
325-
> Enabling public access doesn't remove any private endpoints that exist. All communications between components behind the VNet that the private endpoint(s) connect to is still secured. It enables public access only to the workspace, in addition to the private access through any private endpoints.
326+
> Enabling public access doesn't remove any private endpoints that exist. All communications between components behind the VNet that the private endpoint(s) connect to are still secured. It enables public access only to the workspace, in addition to the private access through any private endpoints.
326327
327328
> [!WARNING]
328329
> When connecting over the public endpoint while the workspace uses a private endpoint to communicate with other resources:
@@ -439,3 +440,5 @@ If you want to create an isolated Azure Kubernetes Service used by the workspace
439440
* For more information on securing your Azure Machine Learning workspace, see the [Virtual network isolation and privacy overview](how-to-network-security-overview.md) article.
440441

441442
* If you plan on using a custom DNS solution in your virtual network, see [how to use a workspace with a custom DNS server](how-to-custom-dns.md).
443+
444+
* [API platform network isolation](how-to-configure-network-isolation-with-v2.md)

articles/machine-learning/how-to-network-security-overview.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Secure Azure Machine Learning workspace resources and compute environments using
2727
> * [Enable studio functionality](how-to-enable-studio-virtual-network.md)
2828
> * [Use custom DNS](how-to-custom-dns.md)
2929
> * [Use a firewall](how-to-access-azureml-behind-firewall.md)
30+
> * [API platform network isolation](how-to-configure-network-isolation-with-v2.md)
3031
>
3132
> For a tutorial on creating a secure workspace, see [Tutorial: Create a secure workspace](tutorial-create-secure-workspace.md) or [Tutorial: Create a secure workspace using a template](tutorial-create-secure-workspace-template.md).
3233
@@ -237,4 +238,5 @@ This article is part of a series on securing an Azure Machine Learning workflow.
237238
* [Secure the inference environment](how-to-secure-inferencing-vnet.md)
238239
* [Enable studio functionality](how-to-enable-studio-virtual-network.md)
239240
* [Use custom DNS](how-to-custom-dns.md)
240-
* [Use a firewall](how-to-access-azureml-behind-firewall.md)
241+
* [Use a firewall](how-to-access-azureml-behind-firewall.md)
242+
* [API platform network isolation](how-to-configure-network-isolation-with-v2.md)

articles/machine-learning/how-to-secure-workspace-vnet.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ In this article, you learn how to secure an Azure Machine Learning workspace and
2727
> * [Enable studio functionality](how-to-enable-studio-virtual-network.md)
2828
> * [Use custom DNS](how-to-custom-dns.md)
2929
> * [Use a firewall](how-to-access-azureml-behind-firewall.md)
30+
> * [API platform network isolation](how-to-configure-network-isolation-with-v2.md)
3031
>
3132
> For a tutorial on creating a secure workspace, see [Tutorial: Create a secure workspace](tutorial-create-secure-workspace.md) or [Tutorial: Create a secure workspace using a template](tutorial-create-secure-workspace-template.md).
3233
@@ -352,4 +353,5 @@ This article is part of a series on securing an Azure Machine Learning workflow.
352353
* [Use custom DNS](how-to-custom-dns.md)
353354
* [Use a firewall](how-to-access-azureml-behind-firewall.md)
354355
* [Tutorial: Create a secure workspace](tutorial-create-secure-workspace.md)
355-
* [Tutorial: Create a secure workspace using a template](tutorial-create-secure-workspace-template.md)
356+
* [Tutorial: Create a secure workspace using a template](tutorial-create-secure-workspace-template.md)
357+
* [API platform network isolation](how-to-configure-network-isolation-with-v2.md)

articles/machine-learning/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@
269269
- name: Configure required network traffic
270270
href: how-to-access-azureml-behind-firewall.md
271271
displayName: firewall, user-defined route, udr
272+
- name: Configure network isolation with v2
273+
href: how-to-configure-network-isolation-with-v2.md
272274
- name: Data protection
273275
items:
274276
- name: Failover & disaster recovery

0 commit comments

Comments
 (0)