Isolamento della rete con endpoint online gestiti
SI APPLICA A:Estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)
Quando si distribuisce un modello di Machine Learning in un endpoint online gestito, è possibile proteggere la comunicazione con l'endpoint online utilizzando endpoint privati. Questo articolo illustra come usare un endpoint privato per proteggere le comunicazioni in ingresso verso un endpoint online gestito. Verranno anche fornite informazioni su come si usare una rete virtuale gestita dall'area di lavoro per fornire comunicazioni sicure tra le distribuzioni e le risorse.
È possibile proteggere le richieste di assegnazione dei punteggi in ingresso dai client a un endpoint online e proteggere le comunicazioni in uscita tra una distribuzione, le risorse di Azure utilizzate e le risorse private. La sicurezza per le comunicazioni in ingresso e in uscita viene configurata separatamente. Per altre informazioni su endpoint e distribuzioni, vedere Cosa sono gli endpoint e le distribuzioni.
Il diagramma dell'architettura seguente illustra come il flusso delle comunicazioni passa attraverso gli endpoint privati verso l'endpoint online gestito. Le richieste di assegnazione in ingresso dalla rete virtuale di un client passano attraverso l'endpoint privato dell'area di lavoro all'endpoint online gestito. Le comunicazioni in uscita dalle distribuzioni ai servizi vengono gestite tramite endpoint privati dalla rete virtuale gestita dell'area di lavoro alle istanze di servizio.
Nota
- Questo articolo è incentrato sull'isolamento della rete tramite la rete virtuale gestita dell'area di lavoro. Per una descrizione del metodo legacy per l'isolamento della rete, in cui Azure Machine Learning crea una rete virtuale gestita per ogni distribuzione in un endpoint, vedere l'Appendice.
- Ogni distribuzione è isolata da altre, indipendentemente dalle comunicazioni in ingresso e in uscita descritte in questo articolo. In altre parole, anche con endpoint/distribuzioni che consentono l'ingresso/uscita da Internet, esiste un isolamento di rete tra le distribuzioni che impedisce a qualsiasi distribuzione di connettersi direttamente ad altre.
Limiti
Il flag
v1_legacy_mode
deve essere disabilitato (false) nell'area di lavoro di Azure Machine Learning. Se è abilitato, non sarà possibile creare un endpoint online gestito. Per altre informazioni, vedere Isolamento di rete con l'API v2.Se l'area di lavoro di Azure Machine Learning ha un endpoint privato creato prima del 24 maggio 2022, è necessario ricreare l'endpoint privato dell'area di lavoro, prima di configurare gli endpoint online per utilizzare un endpoint privato. Per altre informazioni sulla creazione di un endpoint privato per l'area di lavoro, vedere Come configurare un endpoint privato per l'area di lavoro di Azure Machine Learning.
Suggerimento
Per verificare la data di creazione di un'area di lavoro, è possibile controllare le proprietà dell'area di lavoro.
In Studio passare alla sezione
Directory + Subscription + Workspace
(in alto a destra in Studio), quindi selezionareView all properties in Azure Portal
. Selezionare la vista JSON in alto a destra nella pagina "Panoramica", quindi scegliere la versione API più recente. Da questa pagina è possibile controllare il valore diproperties.creationTime
.In alternativa, usare
az ml workspace show
con CLI,my_ml_client.workspace.get("my-workspace-name")
con SDK, ocurl
in un'area di lavoro con API REST.Quando si usa l'isolamento di rete con gli endpoint online, è possibile usare le risorse associate all'area di lavoro (Registro Azure Container (ACR), l'account di archiviazione, Key Vault e Application Insights) da un gruppo di risorse diverso da quello dell'area di lavoro. Tuttavia, queste risorse devono appartenere alla stessa sottoscrizione e allo stesso tenant dell'area di lavoro.
Nota
L'isolamento di rete descritto in questo articolo si applica alle operazioni del piano dati, ovvero alle operazioni che derivano dalle richieste di punteggio (o dalla gestione del modello). Le operazioni del piano di controllo (ad esempio le richieste di creazione, aggiornamento, eliminazione o recupero delle chiavi di autenticazione) vengono inviate ad Azure Resource Manager tramite la rete pubblica.
Proteggere le richieste di assegnazione dei punteggi in ingresso
La comunicazione sicura in ingresso da un client a un endpoint online gestito è possibile tramite un endpoint privato per l'area di lavoro Azure Machine Learning. Questo endpoint privato nella rete virtuale del cliente comunica con l'area di lavoro dell'endpoint online gestito ed è il mezzo con cui l'endpoint online gestito può ricevere le richieste di assegnazione dei punteggi in ingresso dal cliente.
Per proteggere le richieste di assegnazione dei punteggi all'endpoint online, in modo che un client possa accedervi solo tramite l'endpoint privato dell'area di lavoro, impostare il flag public_network_access
per l'endpoint su disabled
. Dopo aver creato l'endpoint, è possibile aggiornare questa impostazione per abilitare l'accesso alla rete pubblica, se necessario.
Impostare il flag di public_network_access
dell'endpoint su disabled
:
az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled
Quando public_network_access
è disabled
, le richieste di assegnazione dei punteggi in ingresso vengono ricevute tramite l'endpoint privato dell'area di lavoro, che non può essere raggiunto dalle reti pubbliche.
In alternativa, se si imposta public_network_access
su enabled
, l'endpoint può ricevere richieste di punteggio in ingresso da Internet.
Proteggere l'accesso in uscita con la rete virtuale gestita dell'area di lavoro
Per proteggere le comunicazioni in uscita da una distribuzione ai servizi, è necessario abilitare l'isolamento della rete virtuale gestita per l'area di lavoro di Azure Machine Learning, in modo che Azure Machine Learning possa creare una rete virtuale gestita per l'area di lavoro. Tutti gli endpoint online gestiti nell'area di lavoro (e le risorse di calcolo gestite per l'area di lavoro, come i cluster di calcolo e le istanze di calcolo) usano automaticamente questa rete virtuale gestita dell'area di lavoro e le distribuzioni negli endpoint condividono gli endpoint privati della rete virtuale gestita per comunicare con le risorse dell'area di lavoro.
Quando si protegge l'area di lavoro con una rete virtuale gestita, il flag egress_public_access
per le distribuzioni online gestite non è più applicabile. Evitare di impostare questo flag durante la creazione della distribuzione online gestita.
Per la comunicazione in uscita con una rete virtuale gestita dall'area di lavoro, Azure Machine Learning:
- Crea endpoint privati per la rete virtuale gestita da usare per la comunicazione con le risorse Azure usate dall'area di lavoro, ad esempio Archiviazione di Azure, Azure Key Vault e Registro Azure Container.
- Consente alle distribuzioni di accedere a Registro Container Microsoft (MCR), che può essere utile quando si vogliono usare ambienti curati o la distribuzione senza codice di MLflow.
- Consente agli utenti di configurare le regole in uscita degli endpoint privati verso le risorse private e di configurare le regole di uscita (tag del servizio o FQDN) per le risorse pubbliche. Per altre informazioni su come gestire le regole in uscita, vedere Gestire le regole in uscita.
È possibile inoltre configurare due modalità di isolamento per il traffico in uscita dalla rete virtuale gestita dall'area di lavoro, ovvero:
- Consenti Internet in uscita, per consentire tutto il traffico Internet in uscita dalla rete virtuale gestita
- Consenti solo le uscite approvate, per controllare il traffico in uscita tramite endpoint privati, regole in uscita FQDN e regole in uscita del tag del servizio.
Ad esempio, se la rete virtuale gestita dell'area di lavoro contiene due distribuzioni sotto un endpoint online gestito, entrambe le distribuzioni possono usare gli endpoint privati dell'area di lavoro per comunicare con:
- Area di lavoro di Azure Machine Learning
- BLOB di Archiviazione di Azure associato all'area di lavoro
- Registro Azure Container per l'area di lavoro
- Azure Key Vault
- (Facoltativo) risorse private aggiuntive che supportano endpoint privati.
Per altre informazioni sulle configurazioni della rete virtuale gestita dell'area di lavoro, vedere Architettura della rete virtuale gestita..
Scenari per la configurazione dell'isolamento rete
L'area di lavoro di Azure Machine Learning e l'endpoint online gestito hanno ognuno un flag public_network_access
che può essere usato per configurare la comunicazione in ingresso. D'altra parte, la comunicazione in uscita da una distribuzione dipende dalla rete virtuale gestita dell'area di lavoro.
Comunicazione con l'endpoint online gestito
Si supponga che un endpoint online gestito abbia una distribuzione che usa un modello di intelligenza artificiale e che si voglia usare un'app per inviare richieste di assegnazione dei punteggi all'endpoint. È possibile decidere quale configurazione di isolamento rete usare per l'endpoint online gestito come indicato di seguito:
Per la comunicazione in ingresso:
Se l'app è disponibile pubblicamente su Internet, è necessario abilitare public_network_access
per l'endpoint in modo che possa ricevere richieste di assegnazione dei punteggi in ingresso dall'app.
Si supponga tuttavia che l'app sia privata, ad esempio un'applicazione interna all'organizzazione. In questo scenario, si vuole che il modello di intelligenza artificiale venga usato solo all'interno dell'organizzazione anziché esporlo a Internet. È quindi necessario disabilitare l'endpoint public_network_access
in modo che possa ricevere richieste di punteggio in ingresso solo tramite l'endpoint privato dell'area di lavoro.
Per la comunicazione in uscita (distribuzione):
Si supponga che la distribuzione debba accedere a risorse di Azure private (ad esempio BLOB di Archiviazione di Azure, Registro Azure Container e Azure Key Vault) o che non sia accettabile che l'installazione acceda a Internet. In questo caso, è necessario abilitare la rete virtuale gestita dell'area di lavoro con la modalità di isolamento consentire solo uscite approvate. Questa modalità di isolamento consente la comunicazione in uscita dalla distribuzione solo verso destinazioni approvate, evitando l'esfiltrazione di dati. È possibile inoltre aggiungere regole in uscita per l'area di lavoro, per consentire l'accesso a più risorse private o pubbliche. Per altre informazioni, vedere Configurare una rete virtuale gestita per consentire solo in uscite approvate.
Tuttavia, se si vuole che la distribuzione possa accedere a Internet, è possibile usare la rete virtuale gestita dell'area di lavoro con la modalità di isolamento Consenti Internet in uscita. Oltre a poter accedere a Internet, sarà possibile usare gli endpoint privati della rete virtuale gestita per accedere alle risorse di Azure private necessarie.
Infine, se la distribuzione non deve accedere a risorse di Azure private e non è necessario controllare l'accesso a Internet, non è necessario usare una rete virtuale gestita dall'area di lavoro.
Comunicazione in ingresso all'area di lavoro di Azure Machine Learning
È possibile usare il flag public_network_access
dell'area di lavoro di Azure Machine Learning per abilitare o disabilitare l'accesso all'area di lavoro in ingresso.
In genere, se si protegge la comunicazione in ingresso all'area di lavoro (disabilitando il flag public_network_access
dell'area di lavoro) si vuole anche proteggere la comunicazione in ingresso all'endpoint online gestito.
Il grafico seguente illustra un flusso di lavoro tipico per la protezione delle comunicazioni in ingresso all'area di lavoro di Azure Machine Learning e all'endpoint online gestito. Per una maggiore sicurezza, è consigliabile disabilitare i flag public_network_access
per l'area di lavoro e l'endpoint online gestito per assicurarsi che non sia possibile accedervi tramite Internet pubblico. Se l'area di lavoro non ha un endpoint privato, è possibile crearne uno, assicurandosi di includere una risoluzione DNS appropriata. È quindi possibile accedere all'endpoint online gestito usando l'endpoint privato dell'area di lavoro.
Nota
Gli endpoint online gestiti condividono l'endpoint privato dell'area di lavoro. Se si aggiungono manualmente record DNS alla zona DNS privata privatelink.api.azureml.ms
, è necessario aggiungere un record A con carattere jolly *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms
per instradare tutti gli endpoint nell'area di lavoro all'endpoint privato.
Per altre informazioni sulla risoluzione DNS per l'area di lavoro e l'endpoint privato, vedere Come usare l'area di lavoro con un server DNS personalizzato.
Appendice
Proteggere l'accesso in uscita con il metodo di isolamento rete legacy
Per gli endpoint online gestiti, è anche possibile proteggere la comunicazione in uscita tra le distribuzioni e le risorse usando una rete virtuale gestita da Azure Machine Learning per ogni distribuzione nell'endpoint. La comunicazione sicura in uscita viene gestita anche usando endpoint privati a tali istanze di servizio.
Nota
È consigliabile usare l'approccio descritto in Proteggere l'accesso in uscita con la rete virtuale gestita dell'area di lavoro anziché questo metodo legacy.
Per limitare la comunicazione tra una distribuzione e le risorse esterne, incluse le risorse di Azure usate, è necessario assicurarsi che:
Il flag di
egress_public_network_access
della distribuzione èdisabled
. Questo flag assicura che il download del modello, del codice e delle immagini necessarie per la distribuzione sia protetto da un endpoint privato. Dopo aver creato la distribuzione, non è possibile aggiornare (abilitare o disabilitare) il flagegress_public_network_access
. Il tentativo di modificare il flag durante l'aggiornamento della distribuzione ha esito negativo con un errore.L'area di lavoro ha un collegamento privato che consente l'accesso alle risorse di Azure tramite un endpoint privato.
L'area di lavoro ha un flag
public_network_access
che può essere abilitato o disabilitato; se si prevede di usare una distribuzione online gestita in uscita pubblica, è necessario configurare anche l'area di lavoro per consentire l'accesso pubblico. Questo perché la comunicazione in uscita dalla distribuzione online è verso l'API dell'area di lavoro. Quando la distribuzione è configurata per l'uso in uscita pubblica, l'area di lavoro deve essere in grado di accettare tale comunicazione pubblica (consentire l'accesso pubblico).
Quando si dispone di più distribuzioni e si configura egress_public_network_access
in disabled
per ogni distribuzione in un endpoint gestito online, ogni distribuzione ha la propria rete virtuale gestita indipendente di Azure Machine Learning. Per ogni rete virtuale, Azure Machine Learning crea tre endpoint privati per la comunicazione con i servizi seguenti:
- Area di lavoro di Azure Machine Learning
- BLOB di Archiviazione di Azure associato all'area di lavoro
- Registro Azure Container per l'area di lavoro
Ad esempio, se si imposta il flag egress_public_network_access
su disabled
per due distribuzioni di un endpoint online gestito, vengono creati in totale sei endpoint privati. Ogni distribuzione userà tre endpoint privati per comunicare con l'area di lavoro, il BLOB e il registro contenitori.
Importante
Azure Machine Learning non supporta il peering tra la rete virtuale gestita di una distribuzione e la rete virtuale del client. Per un accesso sicuro alle risorse necessarie alla distribuzione, vengono usati endpoint privati per comunicare con le risorse.
Il diagramma seguente mostra le richieste di assegnazione dei punteggi in ingresso dalla rete virtuale di un client che passano attraverso l'endpoint privato dell'area di lavoro verso l'endpoint online gestito. Il diagramma mostra anche due distribuzioni online, ognuna nella propria rete virtuale gestita da Azure Machine Learning. La rete virtuale di ogni distribuzione ha tre endpoint privati per la comunicazione in uscita con l'area di lavoro di Azure Machine Learning, il BLOB di Archiviazione di Azure associato all'area di lavoro e il Registro Azure Container per l'area di lavoro.
Per disabilitare egress_public_network_access
e creare gli endpoint privati:
az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled
Per confermare la creazione degli endpoint privati, controllare innanzitutto l'account di archiviazione e il registro dei contenitori associati all'area di lavoro (vedere Scaricare un file di configurazione), trovare ogni risorsa dal portale di Azure e controllare la scheda Private endpoint connections
nel menu Networking
.
Importante
- Come accennato in precedenza, la comunicazione in uscita dalla distribuzione di endpoint online gestiti è verso l'API dell'area di lavoro. Quando l'endpoint è configurato per l'uso in uscita pubblica ( in altre parole, il flag di
public_network_access
per l'endpoint è impostato suenabled
), l'area di lavoro deve essere in grado di accettare tale comunicazione pubblica (il flag dipublic_network_access
per l'area di lavoro impostato suenabled
). - Quando le distribuzioni online vengono create con il flag
egress_public_network_access
impostato sudisabled
, hanno accesso solo alle risorse protette (area di lavoro, BLOB e registro contenitori). Ad esempio, se la distribuzione usa gli asset del modello caricati in altri account di archiviazione, il download del modello avrà esito negativo. Verificare che gli asset del modello siano nell'account di archiviazione associato all'area di lavoro. - Quando
egress_public_network_access
è impostato sudisabled
, la distribuzione può accedere solo alle risorse associate all'area di lavoro protetta nella rete virtuale. Al contrario, quandoegress_public_network_access
è impostato suenabled
, la distribuzione può accedere solo alle risorse con accesso pubblico, ovvero non può accedere alle risorse protette nella rete virtuale.
Nella tabella seguente sono elencate le configurazioni supportate durante la configurazione delle comunicazioni in ingresso e in uscita per un endpoint online:
Impostazione | in ingresso (proprietà Endpoint) |
in uscita (proprietà di distribuzione) |
Supportata |
---|---|---|---|
ingresso sicuro con uscita sicura | public_network_access è disabilitato |
egress_public_network_access è disabilitato |
Sì |
ingresso sicuro con uscita pubblica | public_network_access è disabilitato |
egress_public_network_access è abilitatoL'area di lavoro deve anche consentire l'accesso pubblico, in quanto la distribuzione in uscita è verso l'API dell'area di lavoro. |
Sì |
ingresso pubblico con uscita sicura | public_network_access è abilitato |
egress_public_network_access è disabilitato |
Sì |
ingresso pubblico con uscita pubblica | public_network_access è abilitato |
egress_public_network_access è abilitatoL'area di lavoro deve anche consentire l'accesso pubblico, in quanto la distribuzione in uscita è verso l'API dell'area di lavoro. |
Sì |