Configurare un endpoint privato per un'area di lavoro di Azure Machine Learning con SDK e l’interfaccia della riga di comando v1
APPLICABILE A:estensione ML dell'interfaccia della riga di comando (CLI) di Azure v1azureml Python SDKv1
Questo documento illustra come configurare un endpoint privato per l'area di lavoro di Azure Machine Learning. Per ulteriori informazioni sulla creazione di una rete virtuale per Azure Machine Learning, consultare Panoramica di isolamento e privacy della rete virtuale.
Collegamento privato di Azure consente di connettersi all'area di lavoro usando un endpoint privato. L'endpoint privato è un set di indirizzi IP privati all'interno della rete virtuale. Quindi è possibile limitare l'accesso all'area di lavoro solo tramite gli indirizzi IP privati. Un endpoint privato consente di ridurre il rischio di esfiltrazione di dati. Per altre informazioni sugli endpoint privati, vedere l'articolo Collegamento privato di Azure.
Avviso
La protezione di un'area di lavoro tramite endpoint privati non garantisce di per sé la sicurezza end-to-end. È necessario proteggere tutti i singoli componenti della soluzione. Ad esempio, se si usa un endpoint privato per l'area di lavoro, ma l'account di archiviazione di Azure non si trova dietro la rete virtuale, il traffico tra l'area di lavoro e l'archiviazione non usa la rete virtuale per la sicurezza.
Per ulteriori informazioni sulla protezione delle risorse usate da Azure Machine Learning, consultare i seguenti articoli:
Prerequisiti
- È necessario avere una rete virtuale esistente in cui creare l'endpoint privato.
- Disabilitare i criteri di rete per gli endpoint privati prima di aggiungere l'endpoint privato.
Limiti
Se si abilita l'accesso pubblico per un'area di lavoro protetta con un endpoint privato e si usa lo studio di Azure Machine Learning tramite Internet pubblico, alcune funzionalità, ad esempio la finestra di progettazione, potrebbero non riuscire ad accedere ai dati. Questo problema si verifica quando i dati vengono archiviati in un servizio protetto dalla rete virtuale, ad esempio un account di archiviazione di Azure.
Se si usa Mozilla Firefox, è possibile che si verifichino problemi durante il tentativo di accedere all'endpoint privato per l'area di lavoro. Questo problema può essere correlato al DNS su HTTPS in Mozilla Firefox. È consigliabile usare Microsoft Edge o Google Chrome come soluzione alternativa.
L'uso di un endpoint privato non influisce sul piano di controllo di Azure (operazioni di gestione), ad esempio l'eliminazione dell'area di lavoro o la gestione delle risorse di calcolo. Ad esempio, la creazione, l'aggiornamento o l'eliminazione della destinazione di calcolo. Queste operazioni vengono eseguite su Internet pubblico come di consueto. Le operazioni del piano dati, ad esempio tramite studio di Azure Machine Learning, API (incluse le pipeline pubblicate) o SDK, usano l'endpoint privato.
Quando si crea un'istanza di ambiente di calcolo o un cluster di elaborazione in un'area di lavoro con un endpoint privato, l'istanza di ambiente di calcolo e il cluster di elaborazione devono essere nella stessa area di Azure dell'area di lavoro.
Se si crea o collega un cluster del servizio Azure Kubernetes a un'area di lavoro con un endpoint privato, è necessario che il cluster si trovi nella stessa area dell'area di lavoro.
Se si usa un'area di lavoro con più endpoint privati, uno di questi deve trovarsi nella stessa rete virtuale del servizi di dipendenza seguenti:
- Account di archiviazione di Azure che fornisce la risorsa di archiviazione predefinita per l'area di lavoro
- Azure Key Vault per l'area di lavoro
- Registro Azure Container per l'area di lavoro.
Ad esempio, un'unica rete virtuale ('services') conterrà un endpoint privato per i servizi di dipendenza e l'area di lavoro. Questa configurazione consente le comunicazioni tra l'area di lavoro e i servizi. Un'altra rete virtuale ('clients') potrebbe contenere solo un endpoint privato per l'area di lavoro e può essere usata solo per le comunicazioni tra i computer di sviluppo client e l'area di lavoro.
Creare un'area di lavoro che usa un endpoint privato
Usare uno dei metodi seguenti per creare un'area di lavoro con un endpoint privato. Ognuno di questi metodi richiede una rete virtuale esistente:
Suggerimento
Per creare contemporaneamente un'area di lavoro, un endpoint privato e una rete virtuale, vedere Usare un modello di Azure Resource Manager per creare un'area di lavoro per Azure Machine Learning.
Azure Machine Learning Python SDK fornisce la classe PrivateEndpointConfig, che può essere usata con Workspace.create() per creare un'area di lavoro con un endpoint privato. Questa classe richiede una rete virtuale esistente.
SI APPLICA A: Python SDK azureml v1
from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig
pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.create(name='myworkspace',
subscription_id='<my-subscription-id>',
resource_group='myresourcegroup',
location='eastus2',
private_endpoint_config=pe,
private_endpoint_auto_approval=True,
show_output=True)
Aggiungere un endpoint privato a un'area di lavoro
Usare uno dei metodi seguenti per creare un endpoint privato a un'area di lavoro esistente:
Avviso
Le eventuali destinazioni di calcolo esistenti associate a questa area di lavoro, che non si trovano dietro la stessa rete virtuale in cui viene creato l'endpoint privato, non funzioneranno.
SI APPLICA A: Python SDK azureml v1
from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig
pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.from_config()
ws.add_private_endpoint(private_endpoint_config=pe, private_endpoint_auto_approval=True, show_output=True)
Per ulteriori informazioni sulle classi e sui metodi usati in questo esempio, consultare PrivateEndpointConfig e Workspace.add_private_endpoint.
Rimuovere un endpoint privato
È possibile rimuovere uno o tutti gli endpoint privati per un'area di lavoro. La rimozione di un endpoint privato comporta la rimozione dell'area di lavoro dalla rete virtuale a cui è stato associato. La rimozione dell'endpoint privato può impedire all'area di lavoro di accedere alle risorse in tale rete virtuale oppure alle risorse della rete virtuale di accedere all'area di lavoro. Ad esempio, la rete virtuale non consente l'accesso a o da Internet pubblico.
Avviso
La rimozione degli endpoint privati per un'area di lavoro non la rende accessibile pubblicamente. Per rendere l'area di lavoro accessibile pubblicamente, seguire la procedura descritta nella sezione Abilitare l'accesso pubblico.
Per rimuovere un endpoint privato, usare le informazioni seguenti:
Per rimuovere un endpoint privato, usare Workspace.delete_private_endpoint_connection. Il seguente esempio illustra come rimuovere un endpoint privato:
SI APPLICA A: Python SDK azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
# get the connection name
_, _, connection_name = ws.get_details()['privateEndpointConnections'][0]['id'].rpartition('/')
ws.delete_private_endpoint_connection(private_endpoint_connection_name=connection_name)
Abilitare l'accesso pubblico
In alcune situazioni, può essere necessario consentire a qualcuno di connettersi all'area di lavoro protetta tramite un endpoint pubblico, invece che attraverso la rete virtuale. Oppure può essere necessario rimuovere l'area di lavoro dalla rete virtuale e riabilitare l'accesso pubblico.
Importante
L'abilitazione dell'accesso pubblico non rimuove gli endpoint privati esistenti. Tutte le comunicazioni tra i componenti dietro la rete virtuale a cui si connettono gli endpoint privati rimangono protette. L'accesso pubblico viene abilitato solo all'area di lavoro, in aggiunta all'accesso privato tramite gli endpoint privati.
Avviso
Quando ci si connette tramite l'endpoint pubblico mentre l'area di lavoro usa un endpoint privato per comunicare con altre risorse:
- Alcune funzionalità di studio non riusciranno ad accedere ai dati.. Questo problema si verifica quando i dati vengono archiviati in un servizio protetto dalla rete virtuale. ad esempio un account di archiviazione di Azure.
- L'uso di Jupyter, JupyterLab, RStudio o Posit Workbench (in precedenza RStudio Workbench) in un'istanza di ambiente di calcolo, inclusi i notebook in esecuzione, non è supportato.
Per abilitare l'accesso pubblico, seguire questa procedura:
Suggerimento
Esistono due proprietà che è possibile configurare:
allow_public_access_when_behind_vnet
: usato da Python SDK e dall'interfaccia della riga di comando v2public_network_access
: usato da Python SDK e dall'interfaccia della riga di comando v2. Ogni proprietà esegue l'override dell'altra. Ad esempio, l'impostazione dipublic_network_access
sostituirà qualsiasi impostazione precedente suallow_public_access_when_behind_vnet
.
Microsoft consiglia di usare public_network_access
per abilitare o disabilitare l'accesso pubblico a un'area di lavoro.
Per abilitare l'accesso pubblico, usare Workspace.update e impostare allow_public_access_when_behind_vnet=True
.
SI APPLICA A: Python SDK azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
ws.update(allow_public_access_when_behind_vnet=True)
Connettersi in modo sicuro all'area di lavoro
Per connettersi a un'area di lavoro protetta dietro una rete virtuale, utilizzare uno dei metodi seguenti:
Gateway VPN di Azure - Connette le reti locali alla rete virtuale tramite una connessione privata. La connessione viene stabilita nella rete Internet pubblica. Ci sono due tipi di gateway VPN che è possibile usare:
- Da punto a sito: ogni computer client usa un client VPN per connettersi alla rete virtuale.
- Da sito a sito: un dispositivo VPN connette la rete virtuale alla rete locale.
ExpressRoute - Connette le reti locali al cloud tramite una connessione privata. La connessione viene stabilita usando un provider di connettività.
Azure Bastion - In questo scenario si crea una macchina virtuale di Azure (talvolta denominata jump box) nella rete virtuale. Si stabilisce quindi la connessione alla macchina virtuale usando Azure Bastion. Bastion consente di connettersi alla macchina virtuale usando una sessione RDP o SSH dal Web browser locale. Usare quindi il dispositivo jump box come ambiente di sviluppo. Poiché si trova all'interno della rete virtuale, può accedere direttamente all'area di lavoro. Per un esempio di utilizzo di una jump box, vedere Esercitazione - Creare un'area di lavoro sicura.
Importante
Quando si utilizza un gateway VPN o ExpressRoute, è necessario pianificare il funzionamento della risoluzione dei nomi tra le risorse locali e quelle presenti nella rete virtuale. Per altre informazioni, vedere Usare un server DNS personalizzato.
In caso di problemi di connessione all'area di lavoro, consultare Risolvere i problemi di connettività sicura dell'area di lavoro.
Più endpoint privati
Azure Machine Learning supporta più endpoint privati per un'area di lavoro. In genere vengono usati più endpoint privati per mantenere separati ambienti diversi. Di seguito sono riportati alcuni scenari resi possibili con l'uso di più endpoint privati:
Ambienti di sviluppo client in una rete virtuale separata.
Cluster del servizio Azure Kubernetes in una rete virtuale separata.
Altri servizi di Azure in una rete virtuale separata. Ad esempio, Azure Synapse e Azure Data Factory possono usare una rete virtuale gestita da Microsoft. In entrambi i casi, è possibile aggiungere un endpoint privato per l'area di lavoro alla rete virtuale gestita usata da tali servizi. Per ulteriori informazioni sull'uso di una rete virtuale gestita con questi servizi, consultare i seguenti articoli:
Importante
La protezione da esfiltrazione dei dati di Synapse non è supportata con Azure Machine Learning.
Importante
Ogni rete virtuale che contiene un endpoint privato per l'area di lavoro deve anche essere in grado di accedere all'account di archiviazione di Azure, ad Azure Key Vault e a Registro Azure Container usati dall'area di lavoro. Ad esempio, è possibile creare un endpoint privato per i servizi in ogni rete virtuale.
L'aggiunta di più endpoint privati prevede gli stessi passaggi descritti nella sezione Aggiungere un endpoint privato a un'area di lavoro.
Scenario: client isolati
Se si vogliono isolare i client di sviluppo, in modo che non abbiano accesso diretto alle risorse di calcolo usate da Azure Machine Learning, seguire questa procedura:
Nota
Questi passaggi presuppongono che si disponga di un'area di lavoro esistente, di un account di archiviazione di Azure, di Azure Key Vault e di Registro Azure Container. Ognuno di questi servizi ha endpoint privati in una rete virtuale esistente.
- Creare un'altra rete virtuale per i client. Questa rete virtuale potrebbe contenere macchine virtuali di Azure che fungono da client oppure un gateway VPN usato dai client locali per connettersi alla rete virtuale.
- Aggiungere un nuovo endpoint privato per l'account di archiviazione di Azure, Azure Key Vault e Registro Azure Container usati dall'area di lavoro. Questi endpoint privati devono esistere nella rete virtuale client.
- Se si dispone di un'altra risorsa di archiviazione usata dall'area di lavoro, aggiungere un nuovo endpoint privato per tale risorsa. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Aggiungere un nuovo endpoint privato all'area di lavoro. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Usare la procedura descritta nell'articolo Usare studio in una rete virtuale per consentire a studio di accedere agli account di archiviazione.
Il diagramma seguente illustra questa configurazione. Il carico di lavoro Workload contiene le risorse di calcolo create dall'area di lavoro per le attività di training e distribuzione. La rete virtuale Client contiene client o connessioni ExpressRoute/VPN client. Entrambe le reti virtuali contengono endpoint privati per l'area di lavoro, l'account di archiviazione di Azure, Azure Key Vault e Registro Azure Container usati dall'area di lavoro.
Scenario: servizio Azure Kubernetes isolato
Per creare un servizio Azure Kubernetes isolato usato dall'area di lavoro, seguire questa procedura:
Nota
Questi passaggi presuppongono che si disponga di un'area di lavoro esistente, di un account di archiviazione di Azure, di Azure Key Vault e di Registro Azure Container. Ognuno di questi servizi ha endpoint privati in una rete virtuale esistente.
- Creare un'istanza del servizio Azure Kubernetes. Durante la creazione, il servizio Azure Kubernetes crea una rete virtuale che contiene il cluster del servizio Azure Kubernetes.
- Aggiungere un nuovo endpoint privato per l'account di archiviazione di Azure, Azure Key Vault e Registro Azure Container usati dall'area di lavoro. Questi endpoint privati devono esistere nella rete virtuale client.
- Se si dispone di un'altra risorsa di archiviazione usata dall'area di lavoro, aggiungere un nuovo endpoint privato per tale risorsa. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Aggiungere un nuovo endpoint privato all'area di lavoro. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Collegare un cluster del servizio Azure Kubernetes all'area di lavoro di Azure Machine Learning. Per ulteriori informazioni, consultare Creare e collegare un cluster del servizio Azure Kubernetes.
Passaggi successivi
Per ulteriori informazioni sulla protezione dell'area di lavoro di Azure Machine Learning, consultare l'articolo Panoramica di isolamento e privacy della rete virtuale.
Se si prevede di usare una soluzione DNS personalizzata nella rete virtuale, consultare come usare un'area di lavoro con un server DNS personalizzato.