Een Azure Machine Learning-werkruimte beveiligen met virtuele netwerken (v1)
VAN TOEPASSING OP: Azure CLI ml-extensie v1Python SDK azureml v1
In dit artikel leert u hoe u een Azure Machine Learning-werkruimte en de bijbehorende resources in een virtueel Azure-netwerk beveiligt.
Tip
U kunt beheerde virtuele netwerken van Azure Machine Learning gebruiken in plaats van de stappen in dit artikel. Met een beheerd virtueel netwerk verwerkt Azure Machine Learning de taak van netwerkisolatie voor uw werkruimte en beheerde berekeningen. U kunt ook privé-eindpunten toevoegen voor resources die nodig zijn voor de werkruimte, zoals een Azure Storage-account. Zie Werkruimte-beheerd netwerkisolatie voor meer informatie.
Dit artikel maakt deel uit van een reeks over het beveiligen van een Azure Machine Learning-werkstroom. Zie de andere artikelen in deze reeks:
- Overzicht van virtueel netwerk
- De trainingsomgeving beveiligen
- De deductieomgeving beveiligen
- Studio-functionaliteit inschakelen
- Aangepaste DNS gebruiken
- Een firewall gebruiken
- Netwerkisolatie van API-platform
Zie Zelfstudie: Een beveiligde werkruimte, Bicep-sjabloon of Terraform-sjabloon maken voor een zelfstudie over het maken van een beveiligde werkruimte.
In dit artikel leert u hoe u de volgende werkruimtebronnen in een virtueel netwerk inschakelt:
- Azure Machine Learning-werkruimte
- Azure Storage-accounts
- Azure Machine Learning-gegevensarchieven en gegevenssets
- Azure Key Vault
- Azure Container Registry
Vereisten
Lees het artikel Netwerkbeveiligingsoverzicht voor meer informatie over algemene scenario's voor virtuele netwerken en de algehele architectuur van virtuele netwerken.
Lees het artikel over aanbevolen procedures voor Azure Machine Learning voor bedrijfsbeveiliging voor meer informatie over aanbevolen procedures.
Een bestaand virtueel netwerk en subnet dat u met uw rekenresources kunt gebruiken.
Waarschuwing
Gebruik het IP-adresbereik 172.17.0.0/16 niet voor uw VNet. Dit is het standaardsubnetbereik dat wordt gebruikt door het Docker Bridge-netwerk en resulteert in fouten als deze worden gebruikt voor uw VNet. Andere bereiken kunnen ook conflict veroorzaken, afhankelijk van wat je wilt verbinden met het virtuele netwerk. Als je bijvoorbeeld van plan bent om je on-premises netwerk te verbinden met het VNet en je on-premises netwerk ook het bereik 172.16.0.0/16 gebruikt. Uiteindelijk is het aan u om uw netwerkinfrastructuur te plannen.
Als u resources wilt implementeren in een virtueel netwerk of subnet, moet uw gebruikersaccount machtigingen hebben voor de volgende acties in op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC):
- 'Microsoft.Network/*/read' in de resource van het virtuele netwerk. Deze machtiging is niet nodig voor arm-sjabloonimplementaties (Azure Resource Manager).
- 'Microsoft.Network/virtualNetworks/join/action' in de resource van het virtuele netwerk.
- 'Microsoft.Network/virtualNetworks/subnetten/join/action' in de subnetresource.
Zie de ingebouwde netwerkrollen voor meer informatie over Azure RBAC met netwerken
Azure Container Registry
Uw Azure Container Registry moet de Premium-versie zijn. Zie Veranderende SKU's voor meer informatie over het upgraden.
Als uw Azure Container Registry een privé-eindpunt gebruikt, moet het zich in hetzelfde virtuele netwerk bevinden als het opslagaccount en rekendoelen die worden gebruikt voor training of deductie. Als het een service-eindpunt gebruikt, moet het zich in hetzelfde virtuele netwerk en subnet bevinden als het opslagaccount en rekendoelen.
Uw Azure Machine Learning-werkruimte moet een Azure Machine Learning-rekencluster bevatten.
Beperkingen
Azure-opslagaccount
Als u van plan bent om Azure Machine Learning-studio te gebruiken en het opslagaccount zich ook in het VNet bevindt, zijn er extra validatievereisten:
- Als het opslagaccount een service-eindpunt gebruikt, moeten het privé-eindpunt van de werkruimte en het eindpunt van de opslagservice zich in hetzelfde subnet van het VNet bevinden.
- Als het opslagaccount een privé-eindpunt gebruikt, moeten het privé-eindpunt van de werkruimte en het privé-eindpunt van de opslag zich in hetzelfde VNet bevinden. In dit geval kunnen ze zich in verschillende subnetten bevinden.
Azure Container Instances
Wanneer uw Azure Machine Learning-werkruimte is geconfigureerd met een privé-eindpunt, wordt implementeren naar Azure Container Instances in een VNet niet ondersteund. Overweeg in plaats daarvan het gebruik van een beheerd online-eindpunt met netwerkisolatie.
Azure Container Registry
Wanneer ACR zich achter een virtueel netwerk bevindt, kan Azure Machine Learning het niet gebruiken om rechtstreeks Docker-installatiekopieën te bouwen. In plaats daarvan wordt het rekencluster gebruikt om de installatiekopieën te bouwen.
Belangrijk
Het rekencluster dat wordt gebruikt om Docker-installatiekopieën te bouwen, moet toegang hebben tot de pakketopslagplaatsen die worden gebruikt voor het trainen en implementeren van uw modellen. Mogelijk moet u netwerkbeveiligingsregels toevoegen die toegang tot openbare opslagplaatsen toestaan, persoonlijke Python-pakketten gebruiken of aangepaste Docker-installatiekopieën gebruiken die al de pakketten bevatten.
Waarschuwing
Als uw Azure Container Registry een privé-eindpunt of service-eindpunt gebruikt om te communiceren met het virtuele netwerk, kunt u geen beheerde identiteit gebruiken met een Azure Machine Learning-rekencluster.
Azure Monitor
Waarschuwing
Azure Monitor ondersteunt het gebruik van Azure Private Link om verbinding te maken met een VNet. U moet echter de open Private Link-modus gebruiken in Azure Monitor. Zie Private Link-toegangsmodi: Alleen privé versus Openen voor meer informatie.
Openbare netwerktoegang blokkeren
Azure Machine Learning vereist zowel binnenkomende als uitgaande toegang tot het openbare internet. De volgende tabellen bieden een overzicht van de vereiste toegang en welk doel het dient. Voor servicetags die eindigen .region
, vervangt u door region
de Azure-regio die uw werkruimte bevat. Bijvoorbeeld Storage.westus
:
Tip
Het vereiste tabblad bevat de vereiste configuratie voor inkomend en uitgaand verkeer. Het tabblad Situatie bevat optionele inkomende en uitgaande configuraties die vereist zijn voor specifieke configuraties die u mogelijk wilt inschakelen.
Richting | Protocol & poorten |
Servicetag | Doel |
---|---|---|---|
Uitgaand | TCP: 80, 443 | AzureActiveDirectory |
Verificatie met behulp van Microsoft Entra ID. |
Uitgaand | TCP: 443, 18881 UDP: 5831 |
AzureMachineLearning |
Azure Machine Learning Services gebruiken. Python intellisense in notebooks maakt gebruik van poort 18881. Het maken, bijwerken en verwijderen van een Azure Machine Learning-rekenproces maakt gebruik van poort 5831. |
Uitgaand | ELKE: 443 | BatchNodeManagement.region |
Communicatie met Azure Batch-back-end voor Azure Machine Learning-rekeninstanties/-clusters. |
Uitgaand | TCP: 443 | AzureResourceManager |
Het maken van Azure-resources met Azure Machine Learning, Azure CLI en Azure Machine Learning SDK. |
Uitgaand | TCP: 443 | Storage.region |
Bekijk gegevens die zijn opgeslagen in het Azure Storage-account voor het rekencluster en rekenproces. Zie Gegevensexfiltratiebeveiliging voor informatie over het voorkomen van gegevensexfiltratie via deze uitgaande gegevens. |
Uitgaand | TCP: 443 | AzureFrontDoor.FrontEnd * Niet nodig in Microsoft Azure beheerd door 21Vianet. |
Globaal toegangspunt voor Azure Machine Learning-studio. Afbeeldingen en omgevingen opslaan voor AutoML. Zie Gegevensexfiltratiebeveiliging voor informatie over het voorkomen van gegevensexfiltratie via deze uitgaande gegevens. |
Uitgaand | TCP: 443 | MicrosoftContainerRegistry.region Houd er rekening mee dat deze tag afhankelijk is van de AzureFrontDoor.FirstParty tag |
Toegang tot Docker-installatiekopieën van Microsoft. Installatie van de Azure Machine Learning-router voor Azure Kubernetes Service. |
Tip
Als u de IP-adressen nodig hebt in plaats van servicetags, gebruikt u een van de volgende opties:
- Download een lijst van Azure IP-bereiken en servicetags.
- Gebruik de azure CLI az network list-service-tags command.
- Gebruik de opdracht Azure PowerShell Get-AzNetworkServiceTag .
De IP-adressen kunnen periodiek worden gewijzigd.
Mogelijk moet u uitgaand verkeer naar Visual Studio Code- en niet-Microsoft-sites toestaan voor de installatie van pakketten die vereist zijn voor uw machine learning-project. De volgende tabel bevat veelgebruikte opslagplaatsen voor machine learning:
Hostnaam | Doel |
---|---|
anaconda.com *.anaconda.com |
Wordt gebruikt om standaardpakketten te installeren. |
*.anaconda.org |
Wordt gebruikt om opslagplaatsgegevens op te halen. |
pypi.org |
Wordt gebruikt om afhankelijkheden van de standaardindex weer te geven, indien aanwezig, en de index wordt niet overschreven door gebruikersinstellingen. Als de index wordt overschreven, moet u ook toestaan *.pythonhosted.org . |
cloud.r-project.org |
Wordt gebruikt bij het installeren van CRAN-pakketten voor R-ontwikkeling. |
*.pytorch.org |
Wordt gebruikt door enkele voorbeelden op basis van PyTorch. |
*.tensorflow.org |
Wordt gebruikt door enkele voorbeelden op basis van Tensorflow. |
code.visualstudio.com |
Vereist voor het downloaden en installeren van visual Studio Code-bureaublad. Dit is niet vereist voor Visual Studio Code Web. |
update.code.visualstudio.com *.vo.msecnd.net |
Wordt gebruikt voor het ophalen van Visual Studio Code-serverbits die zijn geïnstalleerd op het rekenproces via een installatiescript. |
marketplace.visualstudio.com vscode.blob.core.windows.net *.gallerycdn.vsassets.io |
Vereist voor het downloaden en installeren van Visual Studio Code-extensies. Deze hosts maken de externe verbinding mogelijk met compute-exemplaren die worden geleverd door de Azure ML-extensie voor Visual Studio Code. Zie Verbinding maken met een Azure Machine Learning-rekenproces in Visual Studio Code voor meer informatie. |
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* |
Wordt gebruikt voor het ophalen van websocket-server-bits, die zijn geïnstalleerd op het rekenproces. De WebSocket-server wordt gebruikt voor het verzenden van aanvragen van de Visual Studio Code-client (desktoptoepassing) naar de Visual Studio Code-server die wordt uitgevoerd op het rekenproces. |
Notitie
Wanneer u de Azure Machine Learning VS Code-extensie gebruikt, heeft het externe rekenproces toegang nodig tot openbare opslagplaatsen om de pakketten te installeren die vereist zijn voor de extensie. Als voor het rekenproces een proxy is vereist voor toegang tot deze openbare opslagplaatsen of internet, moet u de HTTP_PROXY
en HTTPS_PROXY
omgevingsvariabelen instellen en exporteren in het bestand van het ~/.bashrc
rekenproces. Dit proces kan tijdens het inrichten worden geautomatiseerd met behulp van een aangepast script.
Wanneer u Azure Kubernetes Service (AKS) gebruikt met Azure Machine Learning, staat u het volgende verkeer naar het AKS-VNet toe:
- Algemene vereisten voor inkomend/uitgaand verkeer voor AKS, zoals beschreven in het artikel Uitgaand verkeer beperken in Azure Kubernetes Service .
- Uitgaand naar mcr.microsoft.com.
- Wanneer u een model implementeert in een AKS-cluster, gebruikt u de richtlijnen in het artikel ML-modellen implementeren in Azure Kubernetes Service .
Zie Een firewall gebruiken met Azure Machine Learning voor meer informatie over het gebruik van een firewalloplossing.
De werkruimte beveiligen met een privé-eindpunt
Met Azure Private Link kunt u verbinding maken met uw werkruimte met behulp van een privé-eindpunt. Het privé-eindpunt is een set privé-IP-adressen binnen uw virtuele netwerk. Vervolgens kunt u de toegang tot uw werkruimte beperken tot alleen de privé-IP-adressen. Een privé-eindpunt helpt het risico op gegevensexfiltratie te verminderen.
Zie Een privé-eindpunt configureren voor meer informatie over het configureren van een privé-eindpunt voor uw werkruimte.
Waarschuwing
Het beveiligen van een werkruimte met privé-eindpunten zorgt niet voor end-to-end beveiliging zelf. U moet de stappen in de rest van dit artikel en de VNet-serie volgen om afzonderlijke onderdelen van uw oplossing te beveiligen. Als u bijvoorbeeld een privé-eindpunt voor de werkruimte gebruikt, maar uw Azure Storage-account zich niet achter het VNet bevindt, gebruikt verkeer tussen de werkruimte en opslag het VNet niet voor beveiliging.
Azure-opslagaccounts beveiligen
Azure Machine Learning ondersteunt opslagaccounts die zijn geconfigureerd voor het gebruik van een privé-eindpunt of service-eindpunt.
Selecteer in Azure Portal het Azure Storage-account.
Gebruik de informatie in Privé-eindpunten gebruiken voor Azure Storage om privé-eindpunten toe te voegen voor de volgende opslagbronnen:
- Blob
- Bestand
- Wachtrij: alleen nodig als u Van plan bent Om ParallelRunStep te gebruiken in een Azure Machine Learning-pijplijn.
- Tabel: alleen nodig als u ParallelRunStep wilt gebruiken in een Azure Machine Learning-pijplijn.
Tip
Wanneer u een opslagaccount configureert dat niet de standaardopslag is, selecteert u het type doelsubresource dat overeenkomt met het opslagaccount dat u wilt toevoegen.
Nadat u de privé-eindpunten voor de opslagresources hebt gemaakt, selecteert u het tabblad Firewalls en virtuele netwerken onder Netwerken voor het opslagaccount.
Selecteer Geselecteerde netwerken en selecteer vervolgens onder Resource-exemplaren de optie
Microsoft.MachineLearningServices/Workspace
Als het resourcetype. Selecteer uw werkruimte met de naam van het exemplaar. Zie Vertrouwde toegang op basis van door het systeem toegewezen beheerde identiteit voor meer informatie.Tip
U kunt ook Azure-services in de lijst met vertrouwde services toestaan selecteren om toegang te krijgen tot dit opslagaccount om toegang te verlenen vanuit vertrouwde services. Raadpleeg Firewalls en virtuele netwerken voor Azure Storage configureren voor meer informatie.
Selecteer Opslaan om de configuratie op te slaan.
Tip
Wanneer u een privé-eindpunt gebruikt, kunt u ook anonieme toegang uitschakelen. Zie anonieme toegang niet toestaan voor meer informatie.
Azure Key Vault beveiligen
Azure Machine Learning maakt gebruik van een gekoppeld Key Vault-exemplaar om de volgende referenties op te slaan:
- Het gekoppelde opslagaccount verbindingsreeks
- Wachtwoorden voor Azure Container Repository-exemplaren
- Verbindingsreeksen voor gegevensarchieven
Azure Key Vault kan worden geconfigureerd voor gebruik van een privé-eindpunt of service-eindpunt. Gebruik de volgende stappen om azure Machine Learning-experimenten te gebruiken met Azure Key Vault achter een virtueel netwerk:
Tip
Ongeacht of u een privé-eindpunt of service-eindpunt gebruikt, moet de sleutelkluis zich in hetzelfde netwerk bevinden als het privé-eindpunt van de werkruimte.
Zie Key Vault integreren met Azure Private Link voor meer informatie over het gebruik van een privé-eindpunt met Azure Key Vault.
Azure Container Registry (ACR) inschakelen
Tip
Als u geen bestaande Azure Container Registry hebt gebruikt bij het maken van de werkruimte, bestaat deze mogelijk niet. Standaard maakt de werkruimte geen ACR-exemplaar totdat deze er een nodig heeft. Als u het maken van een model wilt afdwingen, traint of implementeert u een model met behulp van uw werkruimte voordat u de stappen in deze sectie gebruikt.
Azure Container Registry kan worden geconfigureerd voor het gebruik van een privé-eindpunt. Gebruik de volgende stappen om uw werkruimte te configureren voor het gebruik van ACR wanneer deze zich in het virtuele netwerk bevindt:
Zoek de naam van azure Container Registry voor uw werkruimte met behulp van een van de volgende methoden:
VAN TOEPASSING OP: Azure CLI ml-extensie v1
Als u de Machine Learning-extensie v1 voor Azure CLI hebt geïnstalleerd, kunt u de
az ml workspace show
opdracht gebruiken om de werkruimtegegevens weer te geven.az ml workspace show -w yourworkspacename -g resourcegroupname --query 'containerRegistry'
Met deze opdracht wordt een waarde geretourneerd die vergelijkbaar is met
"/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}"
. Het laatste deel van de tekenreeks is de naam van het Azure Container Registry voor de werkruimte.Beperk de toegang tot uw virtuele netwerk met behulp van de stappen in Privé verbinden met een Azure Container Registry. Wanneer u het virtuele netwerk toevoegt, selecteert u het virtuele netwerk en het subnet voor uw Azure Machine Learning-resources.
Configureer de ACR voor de werkruimte om toegang door vertrouwde services toe te staan.
Maak een Azure Machine Learning-rekencluster. Dit cluster wordt gebruikt om Docker-installatiekopieën te bouwen wanneer ACR zich achter een VNet bevindt. Zie Een rekencluster maken voor meer informatie.
Gebruik een van de volgende methoden om de werkruimte te configureren voor het bouwen van Docker-installatiekopieën met behulp van het rekencluster.
Belangrijk
De volgende beperkingen gelden wanneer u een rekencluster gebruikt voor builds van installatiekopieën:
- Alleen een CPU-SKU wordt ondersteund.
- Als u een rekencluster gebruikt dat is geconfigureerd voor geen openbaar IP-adres, moet u het cluster op een of andere manier toegang geven tot het openbare internet. Internettoegang is vereist bij het openen van installatiekopieën die zijn opgeslagen in Het Microsoft Container Registry, pakketten die zijn geïnstalleerd op Pypi, Conda, enzovoort. U moet door de gebruiker gedefinieerde routering (UDR) configureren om toegang te krijgen tot een openbaar IP-adres voor toegang tot internet. U kunt bijvoorbeeld het openbare IP-adres van uw firewall gebruiken of u kunt Virtual Network NAT gebruiken met een openbaar IP-adres. Zie Hoe u veilig traint in een VNet voor meer informatie.
U kunt de
az ml workspace update
opdracht gebruiken om een build-rekenproces in te stellen. De opdracht is hetzelfde voor zowel de Azure CLI-extensies v1 als v2 voor machine learning. Vervang in de volgende opdracht doormyworkspace
de naam van uw werkruimte,myresourcegroup
door de resourcegroep die de werkruimte bevat enmycomputecluster
door de naam van het rekencluster:az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
Tip
Wanneer ACR zich achter een VNet bevindt, kunt u ook openbare toegang tot het netwerk uitschakelen.
Gegevensarchieven en gegevenssets
De volgende tabel bevat de services waarvoor u validatie moet overslaan:
Service | Validatie overslaan vereist? |
---|---|
Azure Blob Storage | Ja |
Azure-bestandsshare | Ja |
Azure Data Lake Store Gen1 | Nee |
Azure Data Lake Store Gen2 | Nee |
Azure SQL-database | Ja |
PostgreSql | Ja |
Notitie
Azure Data Lake Store Gen1 en Azure Data Lake Store Gen2 slaan standaard validatie over, dus u hoeft niets te doen.
Met het volgende codevoorbeeld maakt u een nieuw Azure Blob-gegevensarchief en stelt u deze in skip_validation=True
.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
datastore_name=blob_datastore_name,
container_name=container_name,
account_name=account_name,
account_key=account_key,
skip_validation=True ) // Set skip_validation to true
Gegevenssets gebruiken
De syntaxis voor het overslaan van gegevenssetvalidatie is vergelijkbaar voor de volgende typen gegevenssets:
- Bestand met scheidingstekens
- JSON
- Parquet
- SQL
- Bestand
Met de volgende code wordt een nieuwe JSON-gegevensset en sets gemaakt validate=False
.
json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths,
validate=False)
Azure Monitor en Application Insights beveiligen
Gebruik de volgende stappen om netwerkisolatie in te schakelen voor Azure Monitor en het Application Insights-exemplaar voor de werkruimte:
Open uw Application Insights-resource in Azure Portal. Het tabblad Overzicht heeft mogelijk of geen eigenschap Werkruimte. Als de eigenschap niet is ingesteld, voert u stap 2 uit. Als dit het geval is, kunt u rechtstreeks doorgaan naar stap 3.
Tip
Nieuwe werkruimten maken standaard een Application Insights-resource op basis van een werkruimte. Als uw werkruimte onlangs is gemaakt, hoeft u stap 2 niet uit te voeren.
Voer een upgrade uit van het Application Insights-exemplaar voor uw werkruimte. Zie Migreren naar Application Insights-resources op basis van een werkruimte voor stappen voor het upgraden.
Maak een Azure Monitor Private Link-bereik en voeg het Application Insights-exemplaar van stap 1 toe aan het bereik. Zie De privékoppeling van Azure Monitor configureren voor stappen voor meer informatie over hoe u dit doet.
Veilig verbinding maken met uw werkruimte
Gebruik een van de volgende methoden om verbinding te maken met een werkruimte die wordt beveiligd achter een VNet:
Azure VPN-gateway : verbindt on-premises netwerken met het VNet via een privéverbinding. Er wordt verbinding gemaakt via het openbare internet. Er zijn twee typen VPN-gateways die u kunt gebruiken:
- Punt-naar-site: elke clientcomputer gebruikt een VPN-client om verbinding te maken met het VNet.
- Site-naar-site: een VPN-apparaat verbindt het VNet met uw on-premises netwerk.
ExpressRoute : verbindt on-premises netwerken met de cloud via een privéverbinding. Verbinding wordt gemaakt met behulp van een connectiviteitsprovider.
Azure Bastion : in dit scenario maakt u een virtuele Azure-machine (ook wel een jump box genoemd) in het VNet. Vervolgens maakt u verbinding met de virtuele machine met behulp van Azure Bastion. Met Bastion kunt u verbinding maken met de virtuele machine met behulp van een RDP- of SSH-sessie vanuit uw lokale webbrowser. Vervolgens gebruikt u de jumpbox als uw ontwikkelomgeving. Omdat het zich in het VNet bevindt, heeft het rechtstreeks toegang tot de werkruimte. Zie Zelfstudie: Een beveiligde werkruimte maken voor een voorbeeld van het gebruik van een jumpbox.
Belangrijk
Wanneer u een VPN-gateway of ExpressRoute gebruikt, moet u plannen hoe naamomzetting werkt tussen uw on-premises resources en die in het VNet. Zie Een aangepaste DNS-server gebruiken voor meer informatie.
Als u problemen ondervindt bij het maken van verbinding met de werkruimte, raadpleegt u Problemen met beveiligde werkruimteconnectiviteit oplossen.
Werkruimtediagnose
U kunt diagnostische gegevens uitvoeren in uw werkruimte vanuit Azure Machine Learning-studio of de Python SDK. Nadat diagnostische gegevens zijn uitgevoerd, wordt een lijst met gedetecteerde problemen geretourneerd. Deze lijst bevat koppelingen naar mogelijke oplossingen. Zie Diagnostische gegevens over werkruimten gebruiken voor meer informatie.
Volgende stappen
Dit artikel maakt deel uit van een reeks over het beveiligen van een Azure Machine Learning-werkstroom. Zie de andere artikelen in deze reeks: