Netwerkisolatie met beheerde online eindpunten
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Wanneer u een machine learning-model implementeert in een beheerd online-eindpunt, kunt u de communicatie met het online-eindpunt beveiligen met behulp van privé-eindpunten. In dit artikel leert u hoe een privé-eindpunt kan worden gebruikt om binnenkomende communicatie naar een beheerd online-eindpunt te beveiligen. U leert ook hoe een door een werkruimte beheerd virtueel netwerk kan worden gebruikt om veilige communicatie tussen implementaties en resources te bieden.
U kunt binnenkomende scoreaanvragen van clients naar een online-eindpunt beveiligen en uitgaande communicatie tussen een implementatie, de Azure-resources die worden gebruikt en privé-resources beveiligen. Beveiliging voor inkomende en uitgaande communicatie wordt afzonderlijk geconfigureerd. Zie Wat zijn eindpunten en implementaties voor meer informatie over eindpunten en implementaties.
In het volgende architectuurdiagram ziet u hoe communicatie via privé-eindpunten naar het beheerde online-eindpunt stroomt. Binnenkomende scoreaanvragen van het virtuele netwerk van een client stromen via het privé-eindpunt van de werkruimte naar het beheerde online-eindpunt. Uitgaande communicatie van implementaties naar services wordt verwerkt via privé-eindpunten van het beheerde virtuele netwerk van de werkruimte naar die service-exemplaren.
Notitie
- Dit artikel is gericht op netwerkisolatie met behulp van het beheerde virtuele netwerk van de werkruimte. Zie de bijlage voor een beschrijving van de verouderde methode voor netwerkisolatie, waarin Azure Machine Learning een beheerd virtueel netwerk maakt voor elke implementatie in een eindpunt.
- Elke implementatie is geïsoleerd van andere implementaties, ongeacht de inkomende en uitgaande communicatie die in dit artikel wordt besproken. Met andere woorden, zelfs met eindpunten/implementaties die internet binnenkomend/uitgaand toestaan, is er een netwerkisolatie tussen implementaties, waardoor elke implementatie niet rechtstreeks verbinding kan maken met andere implementaties.
Beperkingen
De markering
v1_legacy_mode
moet zijn uitgeschakeld (fase) in uw Azure Machine Learning-werkruimte. Als deze markering is ingeschakeld, kunt u geen beheerd online eindpunt maken. Raadpleeg Netwerkisolatie met v2-API voor meer informatie.Als uw Azure Machine Learning-werkruimte een privé-eindpunt heeft dat vóór 24 mei 2022 is gemaakt, moet u het privé-eindpunt van de werkruimte opnieuw maken voordat u uw online-eindpunten configureert voor het gebruik van een privé-eindpunt. Raadpleeg Een privé-eindpunt configureren voor een Azure Machine Learning-werkruimte voor meer informatie over het maken van een privé-eindpunt voor uw werkruimte.
Tip
Als u wilt bevestigen wanneer een werkruimte is gemaakt, kunt u de eigenschappen van de werkruimte controleren.
Ga in de Studio naar de
Directory + Subscription + Workspace
sectie (rechtsboven in de Studio) en selecteerView all properties in Azure Portal
. Selecteer de JSON-weergave in de rechterbovenhoek van de pagina Overzicht en kies vervolgens de nieuwste API-versie. Op deze pagina kunt u de waarde vanproperties.creationTime
.U kunt ook gebruiken
az ml workspace show
met CLI,my_ml_client.workspace.get("my-workspace-name")
met SDK ofcurl
in een werkruimte met REST API.Wanneer u netwerkisolatie gebruikt met online-eindpunten, kunt u werkruimteresources (Azure Container Registry (ACR), opslagaccount, Key Vault en Application Insights gebruiken uit een andere resourcegroep dan die van uw werkruimte. Deze resources moeten echter deel uitmaken van hetzelfde abonnement en dezelfde tenant als uw werkruimte.
Notitie
Netwerkisolatie die in dit artikel wordt beschreven, is van toepassing op gegevensvlakbewerkingen, dat wil gezegd bewerkingen die het gevolg zijn van scoreaanvragen (of het leveren van modellen). Besturingsvlakbewerkingen (zoals aanvragen voor het maken, bijwerken, verwijderen of ophalen van verificatiesleutels) worden via het openbare netwerk verzonden naar Azure Resource Manager.
Binnenkomende scoreaanvragen beveiligen
Beveiligde binnenkomende communicatie van een client naar een beheerd online-eindpunt is mogelijk met behulp van een privé-eindpunt voor de Azure Machine Learning-werkruimte. Dit privé-eindpunt in het virtuele netwerk van de client communiceert met de werkruimte van het beheerde online-eindpunt en is de methode waarmee het beheerde online-eindpunt binnenkomende scoreaanvragen van de client kan ontvangen.
Als u scoreaanvragen wilt beveiligen voor het online-eindpunt, zodat een client deze alleen kan openen via het privé-eindpunt van de werkruimte, stelt u de public_network_access
vlag voor het eindpunt in op disabled
. Nadat u het eindpunt hebt gemaakt, kunt u deze instelling bijwerken om, indien gewenst, openbare netwerktoegang in te schakelen.
Stel de vlag van public_network_access
het eindpunt in op disabled
:
az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled
Wanneer public_network_access
disabled
is, worden binnenkomende scoreaanvragen ontvangen met behulp van het privé-eindpunt van de werkruimte en kan het eindpunt niet worden bereikt vanuit openbare netwerken.
Als u dit public_network_access
enabled
instelt, kan het eindpunt ook binnenkomende scoreaanvragen van internet ontvangen.
Binnenkomende score beveiligen met openbare netwerktoegang vanaf specifieke IP-adressen
Azure Machine Learning-werkruimte biedt ondersteuning voor het inschakelen van openbare netwerktoegang vanuit specifieke IP-adressen of adresbereiken. Deze functie heeft enkele interacties met de vlag van public_network_access
het beheerde online-eindpunt waarvan u op de hoogte moet zijn wanneer u deze gebruikt met beheerde online-eindpunten. Zie Scenario: Beheerde online-eindpunten met toegang vanaf specifieke IP-adressen voor meer informatie.
Uitgaande toegang beveiligen met een beheerd virtueel netwerk in de werkruimte
Als u uitgaande communicatie van een implementatie naar services wilt beveiligen, moet u isolatie van beheerde virtuele netwerken inschakelen voor uw Azure Machine Learning-werkruimte, zodat Azure Machine Learning een beheerd virtueel netwerk voor de werkruimte kan maken. Alle beheerde online-eindpunten in de werkruimte (en beheerde rekenresources voor de werkruimte, zoals rekenclusters en rekeninstanties) gebruiken automatisch dit beheerde virtuele netwerk van de werkruimte en de implementaties onder de eindpunten delen de privé-eindpunten van het beheerde virtuele netwerk voor communicatie met de resources van de werkruimte.
Wanneer u uw werkruimte beveiligt met een beheerd virtueel netwerk, is de egress_public_access
vlag voor beheerde online-implementaties niet meer van toepassing. Vermijd het instellen van deze vlag bij het maken van de beheerde online-implementatie.
Voor uitgaande communicatie met een beheerd virtueel netwerk in een werkruimte, Azure Machine Learning:
- Hiermee maakt u privé-eindpunten voor het beheerde virtuele netwerk dat moet worden gebruikt voor communicatie met Azure-resources die worden gebruikt door de werkruimte, zoals Azure Storage, Azure Key Vault en Azure Container Registry.
- Hiermee hebben implementaties toegang tot het Microsoft Container Registry (MCR), wat handig kan zijn als u gecureerde omgevingen of MLflow-implementatie zonder code wilt gebruiken.
- Hiermee kunnen gebruikers uitgaande regels voor privé-eindpunten configureren voor privébronnen en uitgaande regels (servicetag of FQDN) configureren voor openbare resources. Zie Regels voor uitgaand verkeer beheren voor meer informatie over het beheren van uitgaande regels.
Bovendien kunt u twee isolatiemodi configureren voor uitgaand verkeer van het beheerde virtuele netwerk van de werkruimte, namelijk:
- Uitgaand internet toestaan om al het uitgaande internetverkeer van het beheerde virtuele netwerk toe te staan
- Sta alleen goedgekeurde uitgaande verbindingen toe om uitgaand verkeer te beheren met behulp van privé-eindpunten, uitgaande FQDN-regels en regels voor servicetags.
Stel dat het beheerde virtuele netwerk van uw werkruimte twee implementaties bevat onder een beheerd online-eindpunt. Beide implementaties kunnen de privé-eindpunten van de werkruimte gebruiken om mee te communiceren:
- De Azure Machine Learning-werkruimte
- De Azure Storage-blob die is gekoppeld aan de werkruimte
- Azure Container Registry voor de werkruimte
- De Azure Key Vault
- (Optioneel) aanvullende privébronnen die ondersteuning bieden voor privé-eindpunten.
Zie De architectuur van het beheerde virtuele netwerk in de werkruimte voor meer informatie over configuraties voor het beheerde virtuele netwerk van de werkruimte.
Scenario's voor netwerkisolatieconfiguratie
Uw Azure Machine Learning-werkruimte en het beheerde online-eindpunt hebben elk een public_network_access
vlag die u kunt gebruiken om hun binnenkomende communicatie te configureren. Uitgaande communicatie van een implementatie is daarentegen afhankelijk van het beheerde virtuele netwerk van de werkruimte.
Communicatie met het beheerde online-eindpunt
Stel dat een beheerd online-eindpunt een implementatie heeft die gebruikmaakt van een AI-model en u een app wilt gebruiken om scoreaanvragen naar het eindpunt te verzenden. U kunt als volgt bepalen welke netwerkisolatieconfiguratie moet worden gebruikt voor het beheerde online-eindpunt:
Voor binnenkomende communicatie:
Als de app openbaar beschikbaar is op internet, moet u het eindpunt inschakelen public_network_access
zodat deze binnenkomende scoreaanvragen van de app kan ontvangen.
Stel dat de app privé is, zoals een interne app binnen uw organisatie. In dit scenario wilt u dat het AI-model alleen binnen uw organisatie wordt gebruikt in plaats van het beschikbaar te maken voor internet. Daarom moet u het eindpunt public_network_access
uitschakelen, zodat het binnenkomende scoreaanvragen alleen kan ontvangen via het privé-eindpunt van de werkruimte.
Voor uitgaande communicatie (implementatie):
Stel dat uw implementatie toegang moet hebben tot persoonlijke Azure-resources (zoals de Azure Storage-blob, ACR en Azure Key Vault), of dat de implementatie geen toegang heeft tot internet. In dit geval moet u het beheerde virtuele netwerk van de werkruimte inschakelen met de alleen goedgekeurde uitgaande isolatiemodus. Met deze isolatiemodus kan uitgaande communicatie van de implementatie alleen naar goedgekeurde bestemmingen worden uitgevoerd, waardoor gegevensexfiltratie worden beschermd. Bovendien kunt u uitgaande regels voor de werkruimte toevoegen om toegang te verlenen tot meer privé- of openbare resources. Zie Een beheerd virtueel netwerk configureren om alleen goedgekeurde uitgaande verbindingen toe te staan voor meer informatie.
Als u echter wilt dat uw implementatie toegang heeft tot internet, kunt u het beheerde virtuele netwerk van de werkruimte gebruiken met de modus uitgaande internetisolatie toestaan . Naast toegang tot internet, kunt u de privé-eindpunten van het beheerde virtuele netwerk gebruiken voor toegang tot persoonlijke Azure-resources die u nodig hebt.
Als uw implementatie geen toegang nodig heeft tot persoonlijke Azure-resources en u de toegang tot internet niet hoeft te beheren, hoeft u geen door een werkruimte beheerd virtueel netwerk te gebruiken.
Inkomende communicatie met de Azure Machine Learning-werkruimte
U kunt de public_network_access
vlag van uw Azure Machine Learning-werkruimte gebruiken om de toegang tot binnenkomende werkruimten in of uit te schakelen.
Als u binnenkomende communicatie naar uw werkruimte beveiligt (door de vlag van public_network_access
de werkruimte uit te schakelen), wilt u ook binnenkomende communicatie naar uw beheerde online-eindpunt beveiligen.
In de volgende grafiek ziet u een typische werkstroom voor het beveiligen van binnenkomende communicatie naar uw Azure Machine Learning-werkruimte en uw beheerde online-eindpunt. Voor de beste beveiliging raden we u aan de public_network_access
vlaggen voor de werkruimte en het beheerde online-eindpunt uit te schakelen om ervoor te zorgen dat beide niet toegankelijk zijn via het openbare internet. Als de werkruimte geen privé-eindpunt heeft, kunt u er een maken en ervoor zorgen dat u de juiste DNS-resolutie opneemt. U kunt vervolgens toegang krijgen tot het beheerde online-eindpunt met behulp van het privé-eindpunt van de werkruimte.
Notitie
Beheerde online-eindpunten delen het privé-eindpunt van de werkruimte. Als u handmatig DNS-records toevoegt aan de privé-DNS-zone privatelink.api.azureml.ms
, moet een A-record met jokertekens *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms
worden toegevoegd om alle eindpunten onder de werkruimte naar het privé-eindpunt te routeren.
Zie Uw werkruimte gebruiken met een aangepaste DNS-server voor meer informatie over DNS-resolutie voor uw werkruimte en privé-eindpunt.
Bijlage
Uitgaande toegang beveiligen met verouderde netwerkisolatiemethode
Voor beheerde online-eindpunten kunt u ook uitgaande communicatie tussen implementaties en resources beveiligen met behulp van een door Azure Machine Learning beheerd virtueel netwerk voor elke implementatie in het eindpunt. De beveiligde uitgaande communicatie wordt ook verwerkt met behulp van privé-eindpunten voor die service-exemplaren.
Notitie
We raden u ten zeerste aan om de methode te gebruiken die wordt beschreven in uitgaande toegang beveiligen met een beheerd virtueel netwerk in de werkruimte in plaats van deze verouderde methode.
Als u de communicatie tussen een implementatie en externe resources wilt beperken, inclusief de Azure-resources die worden gebruikt, moet u ervoor zorgen dat:
De vlag van
egress_public_network_access
de implementatie isdisabled
. Deze vlag zorgt ervoor dat het downloaden van het model, de code en de installatiekopieën die nodig zijn voor de implementatie, worden beveiligd met een privé-eindpunt. Zodra u de implementatie hebt gemaakt, kunt u deegress_public_network_access
vlag niet bijwerken (in- of uitschakelen). Het wijzigen van de vlag tijdens het bijwerken van de implementatie mislukt met een fout.De werkruimte heeft een privékoppeling waarmee toegang tot Azure-resources via een privé-eindpunt mogelijk is.
De werkruimte heeft een
public_network_access
vlag die kan worden ingeschakeld of uitgeschakeld als u van plan bent een beheerde online-implementatie te gebruiken die gebruikmaakt van openbaar uitgaand verkeer, moet u ook de werkruimte configureren om openbare toegang toe te staan. Dit komt doordat uitgaande communicatie van de online implementatie naar de werkruimte-API is. Wanneer de implementatie is geconfigureerd voor het gebruik van openbaar uitgaand verkeer, moet de werkruimte die openbare communicatie kunnen accepteren (openbare toegang toestaan).
Wanneer u meerdere implementaties hebt en u de egress_public_network_access
taak disabled
configureert voor elke implementatie in een beheerd online-eindpunt, heeft elke implementatie een eigen onafhankelijk beheerd virtueel netwerk van Azure Machine Learning. Voor elk virtueel netwerk maakt Azure Machine Learning drie privé-eindpunten voor communicatie met de volgende services:
- De Azure Machine Learning-werkruimte
- De Azure Storage-blob die is gekoppeld aan de werkruimte
- Azure Container Registry voor de werkruimte
Als u bijvoorbeeld de egress_public_network_access
vlag disabled
instelt op twee implementaties van een beheerd online-eindpunt, worden er in totaal zes privé-eindpunten gemaakt. Elke implementatie gebruikt drie privé-eindpunten om te communiceren met de werkruimte, blob en containerregister.
Belangrijk
Azure Machine Learning biedt geen ondersteuning voor peering tussen het beheerde virtuele netwerk van een implementatie en het virtuele netwerk van uw client. Voor beveiligde toegang tot resources die nodig zijn voor de implementatie, gebruiken we privé-eindpunten om te communiceren met de resources.
In het volgende diagram ziet u binnenkomende scoreaanvragen van het virtuele netwerk van een client dat door het privé-eindpunt van de werkruimte stroomt naar het beheerde online-eindpunt. In het diagram ziet u ook twee onlineimplementaties, elk in een eigen door Azure Machine Learning beheerd virtueel netwerk. Het virtuele netwerk van elke implementatie heeft drie privé-eindpunten voor uitgaande communicatie met de Azure Machine Learning-werkruimte, de Azure Storage-blob die is gekoppeld aan de werkruimte en het Azure Container Registry voor de werkruimte.
De privé-eindpunten uitschakelen egress_public_network_access
en maken:
az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled
Als u het maken van de privé-eindpunten wilt bevestigen, controleert u eerst het opslagaccount en het containerregister dat is gekoppeld aan de werkruimte (zie Een configuratiebestand downloaden), zoekt u elke resource in Azure Portal en controleert u het Private endpoint connections
tabblad onder het Networking
menu.
Belangrijk
- Zoals eerder vermeld, is uitgaande communicatie van beheerde online-eindpuntimplementatie naar de werkruimte-API. Wanneer het eindpunt is geconfigureerd voor het gebruik van openbaar uitgaand verkeer (met andere woorden:
public_network_access
vlag voor het eindpunt is ingesteld openabled
), moet de werkruimte die openbare communicatie kunnen accepteren (public_network_access
vlag voor de werkruimte ingesteld openabled
). - Wanneer onlineimplementaties worden gemaakt met
egress_public_network_access
een vlag die is ingesteld opdisabled
, hebben ze alleen toegang tot de beveiligde resources (werkruimte, blob en containerregister). Als de implementatie bijvoorbeeld modelassets gebruikt die zijn geüpload naar andere opslagaccounts, mislukt het downloaden van het model. Zorg ervoor dat modelassets zich in het opslagaccount bevinden dat is gekoppeld aan de werkruimte. - Wanneer
egress_public_network_access
deze is ingestelddisabled
op, heeft de implementatie alleen toegang tot de aan de werkruimte gekoppelde resources die zijn beveiligd in het virtuele netwerk. Integendeel, wanneeregress_public_network_access
deze is ingesteldenabled
, heeft de implementatie alleen toegang tot de resources met openbare toegang, wat betekent dat deze geen toegang heeft tot de resources die zijn beveiligd in het virtuele netwerk.
De volgende tabel bevat de ondersteunde configuraties bij het configureren van binnenkomende en uitgaande communicatie voor een online eindpunt:
Configuratie | Inkomend (eindpunteigenschap) |
Uitgaand (implementatie-eigenschap) |
Ondersteund? |
---|---|---|---|
beveiligd inkomend met beveiligd uitgaand | public_network_access is uitgeschakeld |
egress_public_network_access is uitgeschakeld |
Ja |
beveiligd inkomend met openbaar uitgaand | public_network_access is uitgeschakeld |
egress_public_network_access is ingeschakeld. De werkruimte moet ook openbare toegang toestaan omdat de implementatie uitgaand is voor de werkruimte-API. |
Ja |
openbaar inkomend met beveiligd uitgaand | public_network_access is ingeschakeld |
egress_public_network_access is uitgeschakeld |
Ja |
openbaar inkomend met openbaar uitgaand | public_network_access is ingeschakeld |
egress_public_network_access is ingeschakeld. De werkruimte moet ook openbare toegang toestaan omdat de implementatie uitgaand is voor de werkruimte-API. |
Ja |