Skip to content

Commit 350f8d4

Browse files
authored
Merge pull request #214249 from Blackmist/npip-refresh
no public IP preview refresh
2 parents 3c77ca1 + 354468f commit 350f8d4

5 files changed

+36
-32
lines changed

articles/machine-learning/concept-compute-instance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ A compute instance is a fully managed cloud-based workstation optimized for your
3939
|Preconfigured for ML|Save time on setup tasks with pre-configured and up-to-date ML packages, deep learning frameworks, GPU drivers.|
4040
|Fully customizable|Broad support for Azure VM types including GPUs and persisted low-level customization such as installing packages and drivers makes advanced scenarios a breeze. You can also use setup scripts to automate customization |
4141

42-
* Secure your compute instance with **[No public IP (preview)](./how-to-secure-training-vnet.md#no-public-ip)**
42+
* Secure your compute instance with **[No public IP (preview)](./how-to-secure-training-vnet.md)**.
4343
* The compute instance is also a secure training compute target similar to [compute clusters](how-to-create-attach-compute-cluster.md), but it is single node.
4444
* You can [create a compute instance](how-to-create-manage-compute-instance.md?tabs=python#create) yourself, or an administrator can **[create a compute instance on your behalf](how-to-create-manage-compute-instance.md?tabs=python#create-on-behalf-of-preview)**.
4545
* You can also **[use a setup script (preview)](how-to-customize-compute-instance.md)** for an automated way to customize and configure the compute instance as per your needs.

articles/machine-learning/how-to-prevent-data-loss-exfiltration.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ms.date: 08/26/2022
1818

1919
Azure Machine Learning has several inbound and outbound dependencies. Some of these dependencies can expose a data exfiltration risk by malicious agents within your organization. This document explains how to minimize data exfiltration risk by limiting inbound and outbound requirements.
2020

21-
* __Inbound__: Azure Machine Learning compute instance and compute cluster have two inbound requirements: the `batchnodemanagement` (ports 29876-29877) and `azuremachinelearning` (port 44224) service tags. You can control this inbound traffic by using a network security group. It's difficult to disguise Azure service IPs, so there's low data exfiltration risk. You can also configure the compute to not use a public IP, which removes inbound requirements.
21+
* __Inbound__: Azure Machine Learning compute instance and compute cluster have two inbound requirements: the `batchnodemanagement` (ports 29876-29877) and `azuremachinelearning` (port 44224) service tags. You can control this inbound traffic by using a network security group (NSG) and service tags. It's difficult to disguise Azure service IPs, so there's low data exfiltration risk. You can also configure the compute to not use a public IP, which removes inbound requirements.
2222

2323
* __Outbound__: If malicious agents don't have write access to outbound destination resources, they can't use that outbound for data exfiltration. Azure Active Directory, Azure Resource Manager, Azure Machine Learning, and Microsoft Container Registry belong to this category. On the other hand, Storage and AzureFrontDoor.frontend can be used for data exfiltration.
2424

@@ -36,10 +36,6 @@ Azure Machine Learning has several inbound and outbound dependencies. Some of th
3636
* An Azure Machine Learning workspace with a private endpoint that connects to the VNet.
3737
* The storage account used by the workspace must also connect to the VNet using a private endpoint.
3838

39-
## Limitations
40-
41-
* Data exfiltration prevention isn't supported with an Azure Machine Learning compute cluster or compute instance configured for __no public IP__.
42-
4339
## 1. Opt in to the preview
4440

4541
> [!IMPORTANT]
@@ -50,27 +46,28 @@ Use the form at [https://forms.office.com/r/1TraBek7LV](https://forms.office.com
5046
> [!TIP]
5147
> It may take one to two weeks to allowlist your subscription.
5248
53-
## 2. Allow inbound & outbound network traffic
49+
## 2. Allow inbound and outbound network traffic
5450

5551
### Inbound
5652

5753
> [!IMPORTANT]
5854
> The following information __modifies__ the guidance provided in the [Inbound traffic](how-to-secure-training-vnet.md#inbound-traffic) section of the "Secure training environment with virtual networks" article.
5955
60-
__Inbound__ traffic from the service tag `BatchNodeManagement.<region>` or equivalent IP addresses is __not required__.
56+
When using Azure Machine Learning __compute instance__ _with a public IP address_, allow inbound traffic from Azure Batch management (service tag `BatchNodeManagement.<region>`). A compute instance _with no public IP_ (preview) __doesn't__ require this inbound communication.
6157

62-
### Outbound
58+
### Outbound
6359

6460
> [!IMPORTANT]
6561
> The following information is __in addition__ to the guidance provided in the [Secure training environment with virtual networks](how-to-secure-training-vnet.md) and [Configure inbound and outbound network traffic](how-to-access-azureml-behind-firewall.md) articles.
6662
6763
Select the configuration that you're using:
6864

69-
# [Network security group](#tab/nsg)
65+
# [Service tag/NSG](#tab/servicetag)
7066

71-
__Allow__ outbound traffic over __TCP port 443__ to the following service tags. Replace `<region>` with the Azure region that contains your compute cluster or instance:
67+
__Allow__ outbound traffic over __TCP port 443__ to the following __service tags__. Replace `<region>` with the Azure region that contains your compute cluster or instance:
7268

7369
* `BatchNodeManagement.<region>`
70+
* `AzureMachineLearning`
7471
* `Storage.<region>` - A Service Endpoint Policy will be applied in a later step to limit outbound traffic.
7572

7673
# [Firewall](#tab/firewall)
@@ -88,6 +85,8 @@ __Allow__ outbound traffic over __TCP port 443__ to the following FQDNs. Replace
8885
8986
---
9087

88+
For more information, see [How to secure training environments](how-to-secure-training-vnet.md) and [Configure inbound and outbound network traffic](how-to-access-azureml-behind-firewall.md).
89+
9190
## 3. Enable storage endpoint for the subnet
9291

9392
1. From the [Azure portal](https://portal.azure.com), select the __Azure Virtual Network__ for your Azure ML workspace.
@@ -131,7 +130,7 @@ When using Azure ML curated environments, make sure to use the latest environmen
131130
132131
1. When using `mcr.microsoft.com`, you must also allow outbound configuration to the following resources. Select the configuration option that you're using:
133132

134-
# [Network security group](#tab/nsg)
133+
# [Service tag/NSG](#tab/servicetag)
135134

136135
__Allow__ outbound traffic over __TCP port 443__ to the following service tags. Replace `<region>` with the Azure region that contains your compute cluster or instance.
137136

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ In this article you learn how to secure the following training compute resources
7171
* A compute cluster can dynamically scale. If there aren't enough unassigned IP addresses, the cluster will be partially allocated.
7272
* A compute instance only requires one IP address.
7373

74-
* To create a compute cluster or instance [without a public IP address](#no-public-ip) (a preview feature), your workspace must use a private endpoint to connect to the VNet. For more information, see [Configure a private endpoint for Azure Machine Learning workspace](how-to-configure-private-link.md).
74+
* To create a compute cluster or instance without a public IP address (a preview feature), your workspace must use a private endpoint to connect to the VNet. For more information, see [Configure a private endpoint for Azure Machine Learning workspace](how-to-configure-private-link.md).
7575
* If you plan to secure the virtual network by restricting traffic, see the [Required public internet access](#required-public-internet-access) section.
7676
* The subnet used to deploy compute cluster/instance shouldn't be delegated to any other service. For example, it shouldn't be delegated to ACI.
7777

@@ -119,6 +119,18 @@ In this article you learn how to secure the following training compute resources
119119
120120
* If you create a compute instance and plan to use the no public IP address configuration, your Azure Machine Learning workspace's managed identity must be assigned the __Reader__ role for the virtual network that contains the workspace. For more information on assigning roles, see [Steps to assign an Azure role](../role-based-access-control/role-assignments-steps.md).
121121

122+
> [!IMPORTANT]
123+
> Using the __no public IP__ configuration requires you to opt-in to this preview. Before opting in, you must have created a workspace and a compute instance on the subscription you plan to use. You can delete the compute instance and/or workspace after creating them.
124+
>
125+
> Use the form at [https://forms.office.com/r/0Rw6mXTT07](https://forms.office.com/r/0Rw6mXTT07) to opt in to this Azure Machine Learning preview. Microsoft will contact you once your subscription has been allowlisted to the preview. It may take one to two weeks to allowlist your subscription. Opting-in provides the following benefits:
126+
> - Additional regions are available for use with no public IP configuration
127+
> - [Data exfiltration protection](how-to-prevent-data-loss-exfiltration.md).
128+
> - No networking costs from load balancer, public IP, or private link service.
129+
>
130+
> If you have been using compute instances configured for no public IP without opting-in to the preview using the form, you will need to delete and recreate them after your subscription has been allowlisted to take advantage of the new architecture and region availability. For existing compute clusters configured for no public IP, once the cluster has been reduced to 0 nodes (requires the minimum nodes to be configured as 0), it will take advantage of the new architecture the next time nodes are allocated after the subscription is allowlisted.
131+
132+
[!INCLUDE [no-public-ip-info](../../includes/machine-learning-no-public-ip-availibility.md)]
133+
122134
* If you have configured Azure Container Registry for your workspace behind the virtual network, you must use a compute cluster to build Docker images. If you use a compute cluster configured for no public IP address, you must provide some method for the cluster to access the public internet. Internet access is required when accessing images stored on the Microsoft Container Registry, packages installed on Pypi, Conda, etc. For more information, see [Enable Azure Container Registry](how-to-secure-workspace-vnet.md#enable-azure-container-registry-acr).
123135

124136
* If the Azure Storage Accounts for the workspace are also in the virtual network, use the following guidance on subnet limitations:
@@ -169,7 +181,7 @@ For more information on using Azure Databricks in a virtual network, see [Deploy
169181

170182
For information on using a firewall solution, see [Use a firewall with Azure Machine Learning](how-to-access-azureml-behind-firewall.md).
171183

172-
## <a name="compute-cluster"></a>Compute clusters
184+
## Compute cluster
173185

174186
Use the following steps to create a compute cluster in the Azure Machine Learning studio:
175187

@@ -197,7 +209,7 @@ When the creation process finishes, you train your model by using the cluster in
197209

198210
[!INCLUDE [low-pri-note](../../includes/machine-learning-low-pri-vm.md)]
199211

200-
### <a name="no-public-ip-amlcompute"></a>No public IP for compute clusters (preview)
212+
### No public IP for compute clusters (preview)
201213

202214
When you enable **No public IP**, your compute cluster doesn't use a public IP for communication with any dependencies. Instead, it communicates solely within the virtual network using Azure Private Link ecosystem and service/private endpoints, eliminating the need for a public IP entirely. No public IP removes access and discoverability of compute cluster nodes from the internet thus eliminating a significant threat vector. **No public IP** clusters help comply with no public IP policies many enterprises have.
203215

@@ -216,8 +228,6 @@ You can use a service endpoint or private endpoint for your Azure container regi
216228
To create a no public IP address compute cluster (a preview feature) in studio, set **No public IP** checkbox in the virtual network section.
217229
You can also create no public IP compute cluster through an ARM template. In the ARM template set enableNodePublicIP parameter to false.
218230

219-
[!INCLUDE [no-public-ip-info](../../includes/machine-learning-no-public-ip-availibility.md)]
220-
221231
**Troubleshooting**
222232

223233
* If you get this error message during creation of cluster `The specified subnet has PrivateLinkServiceNetworkPolicies or PrivateEndpointNetworkEndpoints enabled`, follow the instructions from [Disable network policies for Private Link service](../private-link/disable-private-link-service-network-policy.md) and [Disable network policies for Private Endpoint](../private-link/disable-private-endpoint-network-policy.md).
@@ -230,7 +240,7 @@ You can also create no public IP compute cluster through an ARM template. In the
230240

231241
For steps on how to create a compute instance deployed in a virtual network, see [Create and manage an Azure Machine Learning compute instance](how-to-create-manage-compute-instance.md).
232242

233-
### <a name="no-public-ip"></a>No public IP for compute instances (preview)
243+
### No public IP for compute instances (preview)
234244

235245
When you enable **No public IP**, your compute instance doesn't use a public IP for communication with any dependencies. Instead, it communicates solely within the virtual network using Azure Private Link ecosystem and service/private endpoints, eliminating the need for a public IP entirely. No public IP removes access and discoverability of compute instance node from the internet thus eliminating a significant threat vector. Compute instances will also do packet filtering to reject any traffic from outside virtual network. **No public IP** instances are dependent on [Azure Private Link](how-to-configure-private-link.md) for Azure Machine Learning workspace.
236246

@@ -250,8 +260,6 @@ Next steps:
250260
* [Use custom DNS](how-to-custom-dns.md)
251261
* [Use a firewall](how-to-access-azureml-behind-firewall.md)
252262

253-
[!INCLUDE [no-public-ip-info](../../includes/machine-learning-no-public-ip-availibility.md)]
254-
255263
## Inbound traffic
256264

257265
[!INCLUDE [udr info for computes](../../includes/machine-learning-compute-user-defined-routes.md)]

includes/machine-learning-compute-user-defined-routes.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@
22
author: Blackmist
33
ms.service: machine-learning
44
ms.topic: include
5-
ms.date: 04/12/2022
5+
ms.date: 10/12/2022
66
ms.author: larryfr
77
---
88

9-
When using Azure Machine Learning __compute instance__ (with a public IP) or __compute cluster__, allow inbound traffic from Azure Batch management and Azure Machine Learning services. Compute instance with no public IP (preview) does not require this inbound communication. A Network Security Group allowing this traffic is dynamically created for you, however you may need to also create user-defined routes (UDR) if you have a firewall. When creating a UDR for this traffic, you can use either **IP Addresses** or **service tags** to route the traffic.
10-
119
> [!IMPORTANT]
12-
> Using service tags with user-defined routes is now GA. For more information, see [Virtual Network routing](../articles/virtual-network/virtual-networks-udr-overview.md#service-tags-for-user-defined-routes).
13-
14-
15-
> [!TIP]
16-
> While a compute instance without a public IP (a preview feature) does not need a UDR for this inbound traffic, you will still need these UDRs if you also use a compute cluster or a compute instance with a public IP.
10+
> A compute instance or compute cluster without a public IP (a preview feature) does not need inbound traffic from Azure Batch management and Azure Machine Learning services. However, if you have multiple computes and some of them use a public IP address, you will need to allow this traffic.
1711
12+
When using Azure Machine Learning __compute instance__ or __compute cluster__ (_with a public IP address_), allow inbound traffic from Azure Batch management and Azure Machine Learning services. A compute instance or compute cluster _with no public IP_ (preview) __doesn't__ require this inbound communication. A Network Security Group allowing this traffic is dynamically created for you, however you may need to also create user-defined routes (UDR) if you have a firewall. When creating a UDR for this traffic, you can use either **IP Addresses** or **service tags** to route the traffic.
1813

1914
# [IP Address routes](#tab/ipaddress)
2015

includes/machine-learning-no-public-ip-availibility.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
author: sdgilley
33
ms.service: machine-learning
44
ms.topic: include
5-
ms.date: 11/30/2021
5+
ms.date: 10/12/2022
66
ms.author: sgilley
77
---
88

99
> [!NOTE]
10-
> Support for compute instances without public IP addresses is currently available and in public preview for the following regions: France Central, East Asia, West Central US, South Central US, West US 2, East US, East US 2, North Europe, West Europe, Central US, North Central US, West US, Australia East, Japan East, Japan West.
11-
>
12-
> Support for compute clusters without public IP addresses is currently available and in public preview for the following regions: France Central, East Asia, West Central US, South Central US, West US 2, East US, North Europe, East US 2, Central US, West Europe, North Central US, West US, Australia East, Japan East, Japan West.
10+
> Once your Azure subscription has been allowlisted for the no public IP preview, support for compute instances and compute clusters without public IP addresses is currently available and in public preview for the following regions:
11+
> **Public**: France Central, East Asia, South East Asia, West Central US, South Central US, West US 2, West US 3, East US, East US 2, North Europe, West Europe, Central US, North Central US, West US, Australia East, Australia Southeast, Japan East, Japan West, Brazil Southeast, Brazil South, Canada Central, Canada East, Central India, South India, Korea Central, Korea South, Sweden Central, Sweden South, Switzerland North, Switzerland West, UK West, UK South, UAE North, Germany West Central, Norway East, South Africa North.
12+
> **Government**: USGov Arizona, USGov Virginia, USGov Texas.
13+
> **Azure China**: China North 3.
1314
>
15+
> If you have been using the no public IP preview without using the opt-in form, you can use the following regions: France Central, East Asia, West Central US, South Central US, West US 2, East US, North Europe, East US 2, Central US, West Europe, North Central US, West US, Australia East, Japan East, Japan West.

0 commit comments

Comments
 (0)